From b95143e7e81b7a0c688f0eb94d09236fa14c737f Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:12:43 -0400 Subject: [PATCH 01/76] Here we go, this is gonna be a process --- interp/src/main.rs | 79 ++++++++++------------------------------------ 1 file changed, 16 insertions(+), 63 deletions(-) diff --git a/interp/src/main.rs b/interp/src/main.rs index 77f877d0d7..5245576ab8 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -41,8 +41,8 @@ pub struct Opts { #[argh(option, short = 'l', default = "Path::new(\"..\").into()")] pub lib_path: PathBuf, - /// path to optional datafile used to initialze memories. If it is not - /// provided memories will be initialzed with zeros + /// path to optional datafile used to initialize memories. If it is not + /// provided memories will be initialized with zeros #[argh(option, long = "data", short = 'd')] pub data_file: Option, @@ -66,10 +66,6 @@ pub struct Opts { #[argh(switch, short = 'q', long = "--quiet")] quiet: bool, - /// serializes values using base64 encoding - #[argh(switch, long = "raw")] - raw: bool, - #[argh(subcommand)] comm: Option, } @@ -79,23 +75,12 @@ pub struct Opts { enum Command { Interpret(CommandInterpret), Debug(CommandDebug), - Flat(FlatInterp), } #[derive(FromArgs)] #[argh(subcommand, name = "interpret")] -/// Interpret the given program directly -struct CommandInterpret {} - -#[derive(FromArgs)] -#[argh(subcommand, name = "debug")] -/// Interpret the given program with the interactive debugger -struct CommandDebug {} - -#[derive(FromArgs)] -#[argh(subcommand, name = "flat")] /// tests the flattened interpreter -struct FlatInterp { +struct CommandInterpret { /// dump registers as memories #[argh(switch, long = "dump-registers")] dump_registers: bool, @@ -104,6 +89,11 @@ struct FlatInterp { dump_all_memories: bool, } +#[derive(FromArgs)] +#[argh(subcommand, name = "debug")] +/// Interpret the given program with the interactive debugger +struct CommandDebug {} + #[inline] fn print_res( res: InterpreterResult, @@ -157,53 +147,13 @@ fn main() -> InterpreterResult<()> { pm.execute_plan(&mut ctx, &["validate".to_string()], &[], &[], false)?; } - let command = opts.comm.unwrap_or(Command::Interpret(CommandInterpret {})); + let command = opts.comm.unwrap_or(Command::Interpret(CommandInterpret { + dump_registers: false, + dump_all_memories: false, + })); match &command { - comm @ (Command::Interpret(_) | Command::Debug(_)) => { - let entry_point = ctx.entrypoint; - let metadata = ctx.metadata; - - let components: iir::ComponentCtx = Rc::new( - ctx.components - .into_iter() - .map(|x| Rc::new(x.into())) - .collect(), - ); - - let main_component = components - .iter() - .find(|&cm| cm.name == entry_point) - .ok_or(InterpreterError::MissingMainComponent)?; - - let mut mems = interp::MemoryMap::inflate_map(&opts.data_file)?; - - let env = InterpreterState::init_top_level( - &components, - main_component, - &mut mems, - &config, - )?; - - let res = if matches!(comm, Command::Interpret(_)) { - ComponentInterpreter::interpret_program(env, main_component) - } else { - let map = if let Some(map_res) = - metadata.map(SourceMap::from_string) - { - Some(map_res?) - } else { - None - }; - - let cidb = - Debugger::new(&components, main_component, map, env)?; - cidb.main_loop() - }; - - print_res(res, opts.raw) - } - Command::Flat(configs) => { + Command::Interpret(configs) => { let i_ctx = interp::flatten::flat_ir::translate(&ctx); let data_dump = opts .data_file @@ -226,5 +176,8 @@ fn main() -> InterpreterResult<()> { output.serialize(&mut stdout())?; Ok(()) } + Command::Debug(_configs) => { + todo!() + } } } From c4fb2f72ddaf2ede42b6c0cb7fe698e28f95dea9 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:16:55 -0400 Subject: [PATCH 02/76] hoist the serialization flags --- interp/src/configuration.rs | 18 ++++++++++++++++++ interp/src/main.rs | 35 ++++++++++++++++------------------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/interp/src/configuration.rs b/interp/src/configuration.rs index 05cdb5cfa1..6cad252985 100644 --- a/interp/src/configuration.rs +++ b/interp/src/configuration.rs @@ -11,6 +11,10 @@ pub struct Config { pub allow_par_conflicts: bool, /// suppresses warnings pub quiet: bool, + /// dump registers as single entry memories + pub dump_registers: bool, + /// dumps all memories rather than just external ones + pub dump_all_memories: bool, } #[derive(Default)] @@ -19,6 +23,8 @@ pub struct ConfigBuilder { error_on_overflow: Option, allow_par_conflicts: Option, quiet: Option, + dump_registers: Option, + dump_all_memories: Option, } impl ConfigBuilder { @@ -47,6 +53,16 @@ impl ConfigBuilder { self } + pub fn dump_registers(mut self, value: bool) -> Self { + self.dump_registers = Some(value); + self + } + + pub fn dump_all_memories(mut self, value: bool) -> Self { + self.dump_all_memories = Some(value); + self + } + pub fn build(self) -> Config { Config { allow_par_conflicts: self.allow_par_conflicts.unwrap_or_default(), @@ -55,6 +71,8 @@ impl ConfigBuilder { allow_invalid_memory_access: self .allow_invalid_memory_access .unwrap_or_default(), + dump_registers: self.dump_registers.unwrap_or_default(), + dump_all_memories: self.dump_all_memories.unwrap_or_default(), } } } diff --git a/interp/src/main.rs b/interp/src/main.rs index 5245576ab8..46753ed808 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -66,8 +66,15 @@ pub struct Opts { #[argh(switch, short = 'q', long = "--quiet")] quiet: bool, + /// dump registers as single entry memories + #[argh(switch, long = "dump-registers")] + dump_registers: bool, + /// dumps all memories rather than just external ones + #[argh(switch, long = "all-memories")] + dump_all_memories: bool, + #[argh(subcommand)] - comm: Option, + mode: Option, } #[derive(FromArgs)] @@ -80,14 +87,7 @@ enum Command { #[derive(FromArgs)] #[argh(subcommand, name = "interpret")] /// tests the flattened interpreter -struct CommandInterpret { - /// dump registers as memories - #[argh(switch, long = "dump-registers")] - dump_registers: bool, - /// dumps all memories rather than just external ones - #[argh(switch, long = "all-memories")] - dump_all_memories: bool, -} +struct CommandInterpret {} #[derive(FromArgs)] #[argh(subcommand, name = "debug")] @@ -128,6 +128,8 @@ fn main() -> InterpreterResult<()> { .allow_invalid_memory_access(opts.allow_invalid_memory_access) .error_on_overflow(opts.error_on_overflow) .allow_par_conflicts(opts.allow_par_conflicts) + .dump_registers(opts.dump_registers) + .dump_all_memories(opts.dump_all_memories) .build(); interp::logging::initialize_logger(config.quiet); @@ -147,13 +149,10 @@ fn main() -> InterpreterResult<()> { pm.execute_plan(&mut ctx, &["validate".to_string()], &[], &[], false)?; } - let command = opts.comm.unwrap_or(Command::Interpret(CommandInterpret { - dump_registers: false, - dump_all_memories: false, - })); + let command = opts.mode.unwrap_or(Command::Interpret(CommandInterpret {})); match &command { - Command::Interpret(configs) => { + Command::Interpret(_) => { let i_ctx = interp::flatten::flat_ir::translate(&ctx); let data_dump = opts .data_file @@ -168,15 +167,13 @@ fn main() -> InterpreterResult<()> { sim.run_program()?; - let output = sim.dump_memories( - configs.dump_registers, - configs.dump_all_memories, - ); + let output = sim + .dump_memories(config.dump_registers, config.dump_all_memories); output.serialize(&mut stdout())?; Ok(()) } - Command::Debug(_configs) => { + Command::Debug(_) => { todo!() } } From 1544621eee7f89b006260b7d008682cb8aff94b1 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:23:45 -0400 Subject: [PATCH 03/76] cleanup the serialization code --- interp/src/serialization/formatting.rs | 165 +++++++++++++ interp/src/serialization/mod.rs | 8 +- interp/src/serialization/old.rs | 328 ------------------------- 3 files changed, 170 insertions(+), 331 deletions(-) create mode 100644 interp/src/serialization/formatting.rs delete mode 100644 interp/src/serialization/old.rs diff --git a/interp/src/serialization/formatting.rs b/interp/src/serialization/formatting.rs new file mode 100644 index 0000000000..d036a178bf --- /dev/null +++ b/interp/src/serialization/formatting.rs @@ -0,0 +1,165 @@ +use fraction::Fraction; +use serde::Serialize; +use std::fmt::{Debug, Display}; + +use crate::{ + flatten::flat_ir::cell_prototype::MemoryDimensions, utils::PrintCode, + values::Value, +}; + +/// An enum wrapping over a tuple representing the shape of a multi-dimensional +/// array +#[derive(Clone)] +pub enum Shape { + D1(usize), + D2(usize, usize), + D3(usize, usize, usize), + D4(usize, usize, usize, usize), +} + +impl Shape { + fn is_1d(&self) -> bool { + matches!(self, Shape::D1(_)) + } + + pub(crate) fn dim_str(&self) -> String { + match self { + Shape::D1(_) => String::from("1D"), + Shape::D2(_, _) => String::from("2D"), + Shape::D3(_, _, _) => String::from("3D"), + Shape::D4(_, _, _, _) => String::from("4D"), + } + } + + /// returns the total number of entries in the memory, i.e. it's size based + /// on the dimensions of it. + pub fn size(&self) -> usize { + match self { + Shape::D1(d0) => *d0, + Shape::D2(d0, d1) => d0 * d1, + Shape::D3(d0, d1, d2) => d0 * d1 * d2, + Shape::D4(d0, d1, d2, d3) => d0 * d1 * d2 * d3, + } + } +} +impl From for Shape { + fn from(u: usize) -> Self { + Shape::D1(u) + } +} +impl From<(usize,)> for Shape { + fn from(u: (usize,)) -> Self { + Shape::D1(u.0) + } +} +impl From<(usize, usize)> for Shape { + fn from(u: (usize, usize)) -> Self { + Shape::D2(u.0, u.1) + } +} + +impl From<(usize, usize, usize)> for Shape { + fn from(u: (usize, usize, usize)) -> Self { + Shape::D3(u.0, u.1, u.2) + } +} + +impl From<(usize, usize, usize, usize)> for Shape { + fn from(u: (usize, usize, usize, usize)) -> Self { + Shape::D4(u.0, u.1, u.2, u.3) + } +} + +impl From<&MemoryDimensions> for Shape { + fn from(value: &MemoryDimensions) -> Self { + match value { + MemoryDimensions::D1 { d0_size, .. } => { + Shape::D1(*d0_size as usize) + } + MemoryDimensions::D2 { + d0_size, d1_size, .. + } => Shape::D2(*d0_size as usize, *d1_size as usize), + MemoryDimensions::D3 { + d0_size, + d1_size, + d2_size, + .. + } => Shape::D3( + *d0_size as usize, + *d1_size as usize, + *d2_size as usize, + ), + MemoryDimensions::D4 { + d0_size, + d1_size, + d2_size, + d3_size, + .. + } => Shape::D4( + *d0_size as usize, + *d1_size as usize, + *d2_size as usize, + *d3_size as usize, + ), + } + } +} + +/// A wrapper enum used during serialization. It represents either an unsigned integer, +/// or a signed integer and is serialized as the underlying integer. This also allows +/// mixed serialization of signed and unsigned values +#[derive(Serialize, Clone)] +#[serde(untagged)] +pub enum Entry { + U(u64), + I(i64), + Frac(Fraction), + Value(Value), +} + +impl From for Entry { + fn from(u: u64) -> Self { + Self::U(u) + } +} + +impl From for Entry { + fn from(i: i64) -> Self { + Self::I(i) + } +} + +impl From for Entry { + fn from(f: Fraction) -> Self { + Self::Frac(f) + } +} + +impl Entry { + pub fn from_val_code(val: &Value, code: &PrintCode) -> Self { + match code { + PrintCode::Unsigned => val.as_u64().into(), + PrintCode::Signed => val.as_i64().into(), + PrintCode::UFixed(f) => val.as_ufp(*f).into(), + PrintCode::SFixed(f) => val.as_sfp(*f).into(), + PrintCode::Binary => Entry::Value(val.clone()), + } + } +} + +impl Display for Entry { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Entry::U(v) => write!(f, "{}", v), + Entry::I(v) => write!(f, "{}", v), + Entry::Frac(v) => write!(f, "{}", v), + Entry::Value(v) => write!(f, "{}", v), + } + } +} + +impl Debug for Entry { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self) + } +} diff --git a/interp/src/serialization/mod.rs b/interp/src/serialization/mod.rs index a654302050..751af4c444 100644 --- a/interp/src/serialization/mod.rs +++ b/interp/src/serialization/mod.rs @@ -1,3 +1,5 @@ -pub mod data_dump; -mod old; -pub use old::*; +mod data_dump; +mod formatting; + +pub use data_dump::*; +pub use formatting::*; diff --git a/interp/src/serialization/old.rs b/interp/src/serialization/old.rs deleted file mode 100644 index 498d37d478..0000000000 --- a/interp/src/serialization/old.rs +++ /dev/null @@ -1,328 +0,0 @@ -use fraction::Fraction; -use itertools::Itertools; -use serde::Serialize; -use std::fmt::{Debug, Display}; - -use crate::{ - flatten::flat_ir::cell_prototype::MemoryDimensions, primitives::Primitive, - structures::state_views::FullySerialize, utils::PrintCode, values::Value, -}; - -/// An enum wrapping over a tuple representing the shape of a multi-dimensional -/// array -#[derive(Clone)] -pub enum Shape { - D1(usize), - D2(usize, usize), - D3(usize, usize, usize), - D4(usize, usize, usize, usize), -} - -impl Shape { - fn is_1d(&self) -> bool { - matches!(self, Shape::D1(_)) - } - - pub(crate) fn dim_str(&self) -> String { - match self { - Shape::D1(_) => String::from("1D"), - Shape::D2(_, _) => String::from("2D"), - Shape::D3(_, _, _) => String::from("3D"), - Shape::D4(_, _, _, _) => String::from("4D"), - } - } - - /// returns the total number of entries in the memory, i.e. it's size based - /// on the dimensions of it. - pub fn size(&self) -> usize { - match self { - Shape::D1(d0) => *d0, - Shape::D2(d0, d1) => d0 * d1, - Shape::D3(d0, d1, d2) => d0 * d1 * d2, - Shape::D4(d0, d1, d2, d3) => d0 * d1 * d2 * d3, - } - } -} -impl From for Shape { - fn from(u: usize) -> Self { - Shape::D1(u) - } -} -impl From<(usize,)> for Shape { - fn from(u: (usize,)) -> Self { - Shape::D1(u.0) - } -} -impl From<(usize, usize)> for Shape { - fn from(u: (usize, usize)) -> Self { - Shape::D2(u.0, u.1) - } -} - -impl From<(usize, usize, usize)> for Shape { - fn from(u: (usize, usize, usize)) -> Self { - Shape::D3(u.0, u.1, u.2) - } -} - -impl From<(usize, usize, usize, usize)> for Shape { - fn from(u: (usize, usize, usize, usize)) -> Self { - Shape::D4(u.0, u.1, u.2, u.3) - } -} - -impl From<&MemoryDimensions> for Shape { - fn from(value: &MemoryDimensions) -> Self { - match value { - MemoryDimensions::D1 { d0_size, .. } => { - Shape::D1(*d0_size as usize) - } - MemoryDimensions::D2 { - d0_size, d1_size, .. - } => Shape::D2(*d0_size as usize, *d1_size as usize), - MemoryDimensions::D3 { - d0_size, - d1_size, - d2_size, - .. - } => Shape::D3( - *d0_size as usize, - *d1_size as usize, - *d2_size as usize, - ), - MemoryDimensions::D4 { - d0_size, - d1_size, - d2_size, - d3_size, - .. - } => Shape::D4( - *d0_size as usize, - *d1_size as usize, - *d2_size as usize, - *d3_size as usize, - ), - } - } -} - -/// A wrapper enum used during serialization. It represents either an unsigned integer, -/// or a signed integer and is serialized as the underlying integer. This also allows -/// mixed serialization of signed and unsigned values -#[derive(Serialize, Clone)] -#[serde(untagged)] -pub enum Entry { - U(u64), - I(i64), - Frac(Fraction), - Value(Value), -} - -impl From for Entry { - fn from(u: u64) -> Self { - Self::U(u) - } -} - -impl From for Entry { - fn from(i: i64) -> Self { - Self::I(i) - } -} - -impl From for Entry { - fn from(f: Fraction) -> Self { - Self::Frac(f) - } -} - -impl Entry { - pub fn from_val_code(val: &Value, code: &PrintCode) -> Self { - match code { - PrintCode::Unsigned => val.as_u64().into(), - PrintCode::Signed => val.as_i64().into(), - PrintCode::UFixed(f) => val.as_ufp(*f).into(), - PrintCode::SFixed(f) => val.as_sfp(*f).into(), - PrintCode::Binary => Entry::Value(val.clone()), - } - } -} - -impl Display for Entry { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Entry::U(v) => write!(f, "{}", v), - Entry::I(v) => write!(f, "{}", v), - Entry::Frac(v) => write!(f, "{}", v), - Entry::Value(v) => write!(f, "{}", v), - } - } -} - -impl Debug for Entry { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}", self) - } -} - -#[derive(Clone)] -pub enum Serializable { - Empty, - Val(Entry), - Array(Vec, Shape), - Full(FullySerialize), -} - -impl Serializable { - pub fn has_state(&self) -> bool { - !matches!(self, Serializable::Empty) - } -} - -impl Display for Serializable { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Serializable::Empty => write!(f, ""), - Serializable::Val(v) => write!(f, "{}", v), - Serializable::Array(arr, shape) => { - write!(f, "{}", format_array(arr, shape)) - } - full @ Serializable::Full(_) => { - write!(f, "{}", serde_json::to_string(full).unwrap()) - } - } - } -} - -impl Serialize for Serializable { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - match self { - Serializable::Empty => serializer.serialize_unit(), - Serializable::Val(u) => u.serialize(serializer), - Serializable::Array(arr, shape) => { - let arr: Vec<&Entry> = arr.iter().collect(); - if shape.is_1d() { - return arr.serialize(serializer); - } - // there's probably a better way to write this - match shape { - Shape::D2(_d0, d1) => { - let mem = arr - .iter() - .chunks(*d1) - .into_iter() - .map(|x| x.into_iter().collect::>()) - .collect::>(); - mem.serialize(serializer) - } - Shape::D3(_d0, d1, d2) => { - let mem = arr - .iter() - .chunks(d1 * d2) - .into_iter() - .map(|x| { - x.into_iter() - .chunks(*d2) - .into_iter() - .map(|y| y.into_iter().collect::>()) - .collect::>() - }) - .collect::>(); - mem.serialize(serializer) - } - Shape::D4(_d0, d1, d2, d3) => { - let mem = arr - .iter() - .chunks(d2 * d1 * d3) - .into_iter() - .map(|x| { - x.into_iter() - .chunks(d2 * d3) - .into_iter() - .map(|y| { - y.into_iter() - .chunks(*d3) - .into_iter() - .map(|z| { - z.into_iter() - .collect::>() - }) - .collect::>() - }) - .collect::>() - }) - .collect::>(); - mem.serialize(serializer) - } - Shape::D1(_) => unreachable!(), - } - } - Serializable::Full(s) => s.serialize(serializer), - } - } -} - -impl Serialize for dyn Primitive { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - self.serialize(None).serialize(serializer) - } -} - -fn format_array(arr: &[Entry], shape: &Shape) -> String { - match shape { - Shape::D2(_d0, d1) => { - let mem = arr - .iter() - .chunks(*d1) - .into_iter() - .map(|x| x.into_iter().collect::>()) - .collect::>(); - format!("{:?}", mem) - } - Shape::D3(_d0, d1, d2) => { - let mem = arr - .iter() - .chunks(d1 * d2) - .into_iter() - .map(|x| { - x.into_iter() - .chunks(*d2) - .into_iter() - .map(|y| y.into_iter().collect::>()) - .collect::>() - }) - .collect::>(); - format!("{:?}", mem) - } - Shape::D4(_d0, d1, d2, d3) => { - let mem = arr - .iter() - .chunks(d2 * d1 * d3) - .into_iter() - .map(|x| { - x.into_iter() - .chunks(d2 * d3) - .into_iter() - .map(|y| { - y.into_iter() - .chunks(*d3) - .into_iter() - .map(|z| z.into_iter().collect::>()) - .collect::>() - }) - .collect::>() - }) - .collect::>(); - format!("{:?}", mem) - } - Shape::D1(_) => { - format!("{:?}", arr) - } - } -} From 5418a2d4173777745c4b9a2fa421ffb0ea537f73 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:26:01 -0400 Subject: [PATCH 04/76] fix the error namespace --- interp/src/errors.rs | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/interp/src/errors.rs b/interp/src/errors.rs index 13bf6a641e..0e37787d06 100644 --- a/interp/src/errors.rs +++ b/interp/src/errors.rs @@ -203,9 +203,7 @@ pub enum InterpreterError { UndefinedReadAddr(String), #[error(transparent)] - SerializationError( - #[from] crate::serialization::data_dump::SerializationError, - ), + SerializationError(#[from] crate::serialization::SerializationError), } impl InterpreterError { @@ -238,29 +236,6 @@ impl From for InterpreterError { } } -impl From> - for InterpreterError -{ - fn from( - err: crate::structures::stk_env::CollisionError< - *const calyx_ir::Port, - crate::values::Value, - >, - ) -> Self { - // when the error is first raised, the IR has not yet been deconstructed, so this - // dereference is safe - let port: &ir::Port = unsafe { &*err.0 }; - let parent_name = port.get_parent_name(); - let port_name = port.name; - Self::ParOverlap { - port_id: port_name, - parent_id: parent_name, - v1: err.1, - v2: err.2, - } - } -} - impl From for InterpreterError { fn from(err: std::str::Utf8Error) -> Self { CalyxError::invalid_file(err.to_string()).into() From 36cfc3bcb42964ffcc661f5f86f80cf13292c4d2 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:27:12 -0400 Subject: [PATCH 05/76] namespace issues continue --- interp/src/flatten/structures/environment/env.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 6fdfa03284..00873e10ef 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -26,7 +26,7 @@ use crate::{ }, }, logging, - serialization::data_dump::{DataDump, Dimensions}, + serialization::{DataDump, Dimensions}, values::Value, }; use ahash::HashMap; From 3e4861c700e2ee8f0c66a5dc2fc37c1ad44cf8fa Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:31:22 -0400 Subject: [PATCH 06/76] move utils --- interp/src/flatten/primitives/mod.rs | 1 + interp/src/flatten/primitives/prim_trait.rs | 11 ------- interp/src/flatten/primitives/utils.rs | 34 +++++++++++++++++++++ 3 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 interp/src/flatten/primitives/utils.rs diff --git a/interp/src/flatten/primitives/mod.rs b/interp/src/flatten/primitives/mod.rs index 167a017ba3..935e2add53 100644 --- a/interp/src/flatten/primitives/mod.rs +++ b/interp/src/flatten/primitives/mod.rs @@ -4,6 +4,7 @@ pub mod combinational; pub(crate) mod macros; pub mod prim_trait; pub mod stateful; +pub mod utils; pub(crate) use builder::build_primitive; pub use prim_trait::Primitive; diff --git a/interp/src/flatten/primitives/prim_trait.rs b/interp/src/flatten/primitives/prim_trait.rs index 405d2cc210..c8f4737d39 100644 --- a/interp/src/flatten/primitives/prim_trait.rs +++ b/interp/src/flatten/primitives/prim_trait.rs @@ -2,7 +2,6 @@ use crate::{ debugger::PrintCode, errors::InterpreterResult, flatten::{flat_ir::base::GlobalPortIdx, structures::environment::PortMap}, - serialization::Serializable, values::Value, }; @@ -115,16 +114,6 @@ pub trait Primitive { true } - /// Serialize the state of this primitive, if any. - fn serialize(&self, _code: Option) -> Serializable { - Serializable::Empty - } - - // more efficient to override this with true in stateful cases - fn has_serializable_state(&self) -> bool { - self.serialize(None).has_state() - } - fn dump_memory_state(&self) -> Option> { None } diff --git a/interp/src/flatten/primitives/utils.rs b/interp/src/flatten/primitives/utils.rs new file mode 100644 index 0000000000..e8d9fc22a1 --- /dev/null +++ b/interp/src/flatten/primitives/utils.rs @@ -0,0 +1,34 @@ +use ibig::{ibig, UBig}; +use ibig::{ubig, IBig}; + +pub(crate) fn floored_division(left: &IBig, right: &IBig) -> IBig { + let div = left / right; + + if left.signum() != ibig!(-1) && right.signum() != ibig!(-1) { + div + } else if (div.signum() == (-1).into() || div.signum() == 0.into()) + && (left != &(&div * right)) + { + div - 1_i32 + } else { + div + } +} + +/// Implementation of integer square root via a basic binary search algorithm +/// based on wikipedia psuedocode +pub(crate) fn int_sqrt(i: &UBig) -> UBig { + let mut lower: UBig = ubig!(0); + let mut upper: UBig = i + ubig!(1); + let mut temp: UBig; + + while lower != (&upper - ubig!(1)) { + temp = (&lower + &upper) / ubig!(2); + if &(&temp * &temp) <= i { + lower = temp + } else { + upper = temp + } + } + lower +} From 947ed2c16cfe380d0454e3f010b3f0c94cc5619f Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:33:51 -0400 Subject: [PATCH 07/76] ugh okay need this stuff back actually --- interp/src/flatten/primitives/prim_trait.rs | 11 ++ interp/src/serialization/formatting.rs | 153 ++++++++++++++++++++ 2 files changed, 164 insertions(+) diff --git a/interp/src/flatten/primitives/prim_trait.rs b/interp/src/flatten/primitives/prim_trait.rs index c8f4737d39..405d2cc210 100644 --- a/interp/src/flatten/primitives/prim_trait.rs +++ b/interp/src/flatten/primitives/prim_trait.rs @@ -2,6 +2,7 @@ use crate::{ debugger::PrintCode, errors::InterpreterResult, flatten::{flat_ir::base::GlobalPortIdx, structures::environment::PortMap}, + serialization::Serializable, values::Value, }; @@ -114,6 +115,16 @@ pub trait Primitive { true } + /// Serialize the state of this primitive, if any. + fn serialize(&self, _code: Option) -> Serializable { + Serializable::Empty + } + + // more efficient to override this with true in stateful cases + fn has_serializable_state(&self) -> bool { + self.serialize(None).has_state() + } + fn dump_memory_state(&self) -> Option> { None } diff --git a/interp/src/serialization/formatting.rs b/interp/src/serialization/formatting.rs index d036a178bf..77a3611c9e 100644 --- a/interp/src/serialization/formatting.rs +++ b/interp/src/serialization/formatting.rs @@ -1,4 +1,5 @@ use fraction::Fraction; +use itertools::Itertools; use serde::Serialize; use std::fmt::{Debug, Display}; @@ -163,3 +164,155 @@ impl Debug for Entry { write!(f, "{}", self) } } + +#[derive(Clone)] +pub enum Serializable { + Empty, + Val(Entry), + Array(Vec, Shape), +} + +impl Serializable { + pub fn has_state(&self) -> bool { + !matches!(self, Serializable::Empty) + } +} + +impl Display for Serializable { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Serializable::Empty => write!(f, ""), + Serializable::Val(v) => write!(f, "{}", v), + Serializable::Array(arr, shape) => { + write!(f, "{}", format_array(arr, shape)) + } + full @ Serializable::Full(_) => { + write!(f, "{}", serde_json::to_string(full).unwrap()) + } + } + } +} + +impl Serialize for Serializable { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + match self { + Serializable::Empty => serializer.serialize_unit(), + Serializable::Val(u) => u.serialize(serializer), + Serializable::Array(arr, shape) => { + let arr: Vec<&Entry> = arr.iter().collect(); + if shape.is_1d() { + return arr.serialize(serializer); + } + // there's probably a better way to write this + match shape { + Shape::D2(_d0, d1) => { + let mem = arr + .iter() + .chunks(*d1) + .into_iter() + .map(|x| x.into_iter().collect::>()) + .collect::>(); + mem.serialize(serializer) + } + Shape::D3(_d0, d1, d2) => { + let mem = arr + .iter() + .chunks(d1 * d2) + .into_iter() + .map(|x| { + x.into_iter() + .chunks(*d2) + .into_iter() + .map(|y| y.into_iter().collect::>()) + .collect::>() + }) + .collect::>(); + mem.serialize(serializer) + } + Shape::D4(_d0, d1, d2, d3) => { + let mem = arr + .iter() + .chunks(d2 * d1 * d3) + .into_iter() + .map(|x| { + x.into_iter() + .chunks(d2 * d3) + .into_iter() + .map(|y| { + y.into_iter() + .chunks(*d3) + .into_iter() + .map(|z| { + z.into_iter() + .collect::>() + }) + .collect::>() + }) + .collect::>() + }) + .collect::>(); + mem.serialize(serializer) + } + Shape::D1(_) => unreachable!(), + } + } + Serializable::Full(s) => s.serialize(serializer), + } + } +} + +fn format_array(arr: &[Entry], shape: &Shape) -> String { + match shape { + Shape::D2(_d0, d1) => { + let mem = arr + .iter() + .chunks(*d1) + .into_iter() + .map(|x| x.into_iter().collect::>()) + .collect::>(); + format!("{:?}", mem) + } + Shape::D3(_d0, d1, d2) => { + let mem = arr + .iter() + .chunks(d1 * d2) + .into_iter() + .map(|x| { + x.into_iter() + .chunks(*d2) + .into_iter() + .map(|y| y.into_iter().collect::>()) + .collect::>() + }) + .collect::>(); + format!("{:?}", mem) + } + Shape::D4(_d0, d1, d2, d3) => { + let mem = arr + .iter() + .chunks(d2 * d1 * d3) + .into_iter() + .map(|x| { + x.into_iter() + .chunks(d2 * d3) + .into_iter() + .map(|y| { + y.into_iter() + .chunks(*d3) + .into_iter() + .map(|z| z.into_iter().collect::>()) + .collect::>() + }) + .collect::>() + }) + .collect::>(); + format!("{:?}", mem) + } + Shape::D1(_) => { + format!("{:?}", arr) + } + } +} From 92c25ea736fae99eddb363bf2903f606a2bf6bdb Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:49:53 -0400 Subject: [PATCH 08/76] yeet some tests --- interp/src/tests/mod.rs | 2 - interp/src/tests/primitives.rs | 1645 -------------------------------- interp/src/tests/stk_env.rs | 431 --------- 3 files changed, 2078 deletions(-) delete mode 100644 interp/src/tests/primitives.rs delete mode 100644 interp/src/tests/stk_env.rs diff --git a/interp/src/tests/mod.rs b/interp/src/tests/mod.rs index 5bce178a53..118c01aa36 100644 --- a/interp/src/tests/mod.rs +++ b/interp/src/tests/mod.rs @@ -1,3 +1 @@ -mod primitives; -mod stk_env; mod values; diff --git a/interp/src/tests/primitives.rs b/interp/src/tests/primitives.rs deleted file mode 100644 index 7a8d80ddad..0000000000 --- a/interp/src/tests/primitives.rs +++ /dev/null @@ -1,1645 +0,0 @@ -#[allow(unused)] -use crate::port_bindings; -#[allow(unused)] -use crate::primitives::{combinational as comb, stateful as stfl, Primitive}; -#[allow(unused)] -use crate::values::Value; -#[allow(unused)] -use calyx_ir as ir; - -#[test] -fn mult_flickering_go() { - let mut mult = - stfl::StdMultPipe::::from_constants(32, "".into(), false); - port_bindings![binds; - go -> (0, 1), - reset -> (0, 1), - left -> (2, 32), - right -> (7, 32) - ]; - mult.validate_and_execute(&binds).unwrap(); - port_bindings![binds; - go -> (1, 1), - reset -> (0, 1), - left -> (3, 32), - right -> (7, 32) - ]; - mult.validate_and_execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.validate_and_execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.validate_and_execute(&binds).unwrap(); - let mut output_vals = mult.do_tick().unwrap().into_iter(); //should output done and 21, not 14 - assert_eq!(output_vals.len(), 2); - let out = output_vals.next().unwrap().1; - assert_eq!(out.as_u64(), 21); - let done = output_vals.next().unwrap().1; - assert_eq!(done.as_u64(), 1); - output_vals = mult.do_tick().unwrap().into_iter(); - assert_eq!(output_vals.len(), 2); -} - -#[test] -fn test_std_mult_pipe() { - let mut mult = - stfl::StdMultPipe::::from_constants(32, "".into(), false); - port_bindings![binds; - go -> (1, 1), - reset -> (0, 1), - left -> (2, 32), - right -> (7, 32) - ]; - //each execute needs to be followed by a do_tick() for the input to be - //captured - mult.validate_and_execute(&binds).unwrap(); - let output_vals = mult.do_tick().unwrap(); //internal q: [14, N] - assert_eq!(output_vals.len(), 2); - - port_bindings![binds; - go -> (1, 1), - reset -> (0, 1), - left -> (5, 32), - right -> (7, 32) - ]; - mult.validate_and_execute(&binds).unwrap(); - mult.do_tick().unwrap(); - - mult.validate_and_execute(&binds).unwrap(); - let mut output_vals = mult.do_tick().unwrap().into_iter(); //should output done and 14, internal queue: [35, N] - assert_eq!(output_vals.len(), 2); - let out = output_vals.next().unwrap().1; - assert_eq!(out.as_u64(), 14); - let done = output_vals.next().unwrap().1; - assert_eq!(done.as_u64(), 1); - mult.validate_and_execute(&binds).unwrap(); - //now tick 3 more times; get empty vec, 35, empty vec - output_vals = mult.do_tick().unwrap().into_iter(); //should output empty vec - assert_eq!(output_vals.len(), 2); - mult.validate_and_execute(&binds).unwrap(); - output_vals = mult.do_tick().unwrap().into_iter(); //should output done and 35 - assert_eq!(output_vals.len(), 2); - let out = output_vals.next().unwrap().1; - assert_eq!(out.as_u64(), 35); - let done = output_vals.next().unwrap().1; - assert_eq!(done.as_u64(), 1); - mult.validate_and_execute(&binds).unwrap(); - output_vals = mult.do_tick().unwrap().into_iter(); //should output empty vec - assert_eq!(output_vals.len(), 2); -} - -#[test] -fn test_std_div_pipe() { - let mut div = - stfl::StdDivPipe::::from_constants(32, "".into(), false); - port_bindings![binds; - go -> (1, 1), - reset -> (0, 1), - left -> (20, 32), - right -> (7, 32) //20/7 = 2 r. 6 - ]; - //each execute needs to be followed by a do_tick() for the input to be - //captured - div.validate_and_execute(&binds).unwrap(); - let output_vals = div.do_tick().unwrap(); //internal q: [(2, 6), N] - assert_eq!(output_vals.len(), 3); - port_bindings![binds; - go -> (1, 1), - reset -> (0, 1), - left -> (20, 32), - right -> (6, 32) //20/6 = 3 r. 2 - ]; - div.validate_and_execute(&binds).unwrap(); - - // I don't think that as written this works correctly. If the go "flickers" on - // for a portion of the cycle but does not remain high (i.e. is not high by - // the time do_tick is called) then the multiplier should not run. - // based on the above comment, b/c go is now low, nothing should be written - // to the queue! - div.validate_and_execute(&binds).unwrap(); - let output_vals = div.do_tick().unwrap(); //internal q: [N, (2, 6)] - assert_eq!(output_vals.len(), 3); - - port_bindings![binds; - go -> (1, 1), - reset -> (0, 1), - left -> (20, 32), - right -> (5, 32) //20/5 = 4 r. 0 - ]; - - div.validate_and_execute(&binds).unwrap(); - let mut output_vals = div.do_tick().unwrap().into_iter(); - - assert_eq!(output_vals.len(), 3); - let out_quotient = output_vals.next().unwrap(); - assert_eq!(out_quotient.0, "out_quotient"); - assert_eq!(out_quotient.1.as_u64(), 2); - let out_remainder = output_vals.next().unwrap(); - assert_eq!(out_remainder.0, "out_remainder"); - assert_eq!(out_remainder.1.as_u64(), 6); - let done = output_vals.next().unwrap().1; - assert_eq!(done.as_u64(), 1); - //internal q: [(4, 0), N] - div.validate_and_execute(&binds).unwrap(); - output_vals = div.do_tick().unwrap().into_iter(); //give none - assert_eq!(output_vals.len(), 3); - - div.validate_and_execute(&binds).unwrap(); - div.do_tick().unwrap(); - - //internal q: [N, (4, 0)] - output_vals = div.do_tick().unwrap().into_iter(); //out_q : 4, out_r: 0 - assert_eq!(output_vals.len(), 3); - let out_quotient = output_vals.next().unwrap(); - assert_eq!(out_quotient.0, "out_quotient"); - assert_eq!(out_quotient.1.as_u64(), 4); - let out_remainder = output_vals.next().unwrap(); - assert_eq!(out_remainder.0, "out_remainder"); - assert_eq!(out_remainder.1.as_u64(), 0); - //let done = output_vals.next().unwrap().1; - //none (empty output vec) - output_vals = div.do_tick().unwrap().into_iter(); //should output done and 14 - assert_eq!(output_vals.len(), 3); -} - -#[test] -fn test_std_reg_imval() { - let mut reg1 = stfl::mem::StdReg::from_constants(6, "".into()); - //see that unitialized register, executed w/ write_en low, - //returns 0, and no DONE - port_bindings![binds; - r#in -> (16, 6), - write_en -> (0, 1), - reset -> (0, 1) - ]; - let output_vals = reg1.validate_and_execute(&binds).unwrap(); - assert_eq!(0, output_vals.len()); //output_vals should be empty from execute - let output_vals = reg1.do_tick().unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(2, output_vals.len()); - //should be a 0 and a 0 ([out] and [done]) - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - let d = output_vals.next().unwrap().1; - assert_eq!(d.as_u64(), 0); - //now have write_en high and see output from do_tick() is 16, 1 - port_bindings![binds; - r#in -> (16, 6), - write_en -> (1, 1), - reset -> (0, 1) - ]; - let output_vals = reg1.validate_and_execute(&binds).unwrap(); - assert_eq!(0, output_vals.len()); //output_vals should be empty from execute - let output_vals = reg1.do_tick().unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - //should be a 16 and a 1 ([out] and [done]) - let (out, done_val) = - (output_vals.next().unwrap(), output_vals.next().unwrap()); - let rd = out.1; - assert_eq!(rd.as_u64(), 16); - let d = done_val.1; - assert_eq!(d.as_u64(), 1); - //now try to overwrite but w/ write_en low, and see 16 and 0 is returned - port_bindings![binds; - r#in -> (16, 6), - write_en -> (0, 1), - reset -> (0, 1) - ]; - let output_vals = reg1.validate_and_execute(&binds).unwrap(); - assert_eq!(0, output_vals.len()); //output_vals should be empty from execute - let output_vals = reg1.do_tick().unwrap(); - ////should be a 16 and a 0 ([out] and [done]) - assert_eq!(2, output_vals.len()); - let mut output_vals = output_vals.into_iter(); - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 16); - let d = output_vals.next().unwrap().1; - assert_eq!(d.as_u64(), 0); -} - -#[test] -fn test_comb_mem_d1() { - let mut mem = stfl::mem::StdMemD1::from_constants(6, 10, 4, "".into()); - //see that unitialized mem, executed w/ write_en low, - //returns 0, and no DONE - port_bindings![binds; - write_data -> (16, 6), - write_en -> (0, 1), - addr0 -> (4, 4) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - let output_vals = mem.do_tick().unwrap(); //this should have low done - assert_eq!(output_vals.len(), 2); - let d = &output_vals[1].1; - assert_eq!(d.as_u64(), 0); - - //now have write_en high and see output of execute is 0, and output of write is 16 - port_bindings![binds; - write_data -> (16, 6), - write_en -> (1, 1), - addr0 -> (4, 4) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - //now that we are ticking, update should be written (and returned) - let output_vals = mem.do_tick().unwrap(); //this should have read_data and done, cuz write_en was hgih - assert_eq!(output_vals.len(), 2); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - let rd = output_vals.next().unwrap(); - let d = output_vals.next().unwrap(); - assert_eq!(rd.1.as_u64(), 16); - assert_eq!(d.1.as_u64(), 1); - //now try to overwrite but w/ write_en low, and see 16 and 0 is returned - port_bindings![binds; - write_data -> (3, 6), - write_en -> (0, 1), - addr0 -> (4, 4) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - assert_eq!(1, output_vals.len()); //we should get read_data combinationally from [addr0] - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - //should be a 16 and a 0 ([out] and [done]) - assert_eq!(output_vals.len(), 1); - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 16); - let output_vals = mem.do_tick().unwrap(); - let d = &output_vals[1].1; - assert_eq!(d.as_u64(), 0); -} - -#[test] -fn test_comb_mem_d2() { - let mut mem = stfl::mem::StdMemD2::from_constants(6, 4, 4, 2, 2, "".into()); - //see that unitialized mem, executed w/ write_en low, - //returns 0, and no DONE - port_bindings![binds; - write_data -> (16, 6), - write_en -> (0, 1), - addr0 -> (3, 2), - addr1 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - let output_vals = mem.do_tick().unwrap(); //this should have low done - assert_eq!(output_vals.len(), 2); - let d = &output_vals[1].1; //done signal - assert_eq!(d.as_u64(), 0); - //now have write_en high and see output of execute is 0, and output of write is 16 - port_bindings![binds; - write_data -> (16, 6), - write_en -> (1, 1), - addr0 -> (3, 2), - addr1 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - //now that we are ticking, update should be written (and returned) - let output_vals = mem.do_tick().unwrap(); //this should have read_data and done, cuz write_en was hgih - assert_eq!(output_vals.len(), 2); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - let rd = output_vals.next().unwrap(); - let d = output_vals.next().unwrap(); - assert_eq!(rd.1.as_u64(), 16); - assert_eq!(d.1.as_u64(), 1); - //now try to overwrite but w/ write_en low, and see 16 and 0 is returned - port_bindings![binds; - write_data -> (3, 6), - write_en -> (0, 1), - addr0 -> (3, 2), - addr1 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - assert_eq!(1, output_vals.len()); //we should get read_data combinationally from [addr0] - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 16); -} - -#[test] -fn test_comb_mem_d3() { - let mut mem = - stfl::mem::StdMemD3::from_constants(6, 4, 4, 4, 2, 2, 2, "".into()); - //see that unitialized mem, executed w/ write_en low, - //returns 0, and no DONE - port_bindings![binds; - write_data -> (16, 6), - write_en -> (0, 1), - addr0 -> (3, 2), - addr1 -> (3, 2), - addr2 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - let output_vals = mem.do_tick().unwrap(); //this should have done as 0 - assert_eq!(output_vals.len(), 2); - let d = &output_vals[1].1; //done; - assert_eq!(d.as_u64(), 0); - - //now have write_en high and see output of execute is 0, and output of write is 16 - port_bindings![binds; - write_data -> (16, 6), - write_en -> (1, 1), - addr0 -> (3, 2), - addr1 -> (3, 2), - addr2 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - //now that we are ticking, update should be written (and returned) - let output_vals = mem.do_tick().unwrap(); //this should have read_data and done, cuz write_en was hgih - assert_eq!(output_vals.len(), 2); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - let rd = output_vals.next().unwrap(); - let d = output_vals.next().unwrap(); - assert_eq!(rd.1.as_u64(), 16); - assert_eq!(d.1.as_u64(), 1); - //now try to overwrite but w/ write_en low, and see 16 and 0 is returned - port_bindings![binds; - write_data -> (3, 6), - write_en -> (0, 1), - addr0 -> (3, 2), - addr1 -> (3, 2), - addr2 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - assert_eq!(1, output_vals.len()); //we should get read_data combinationally from [addr0] - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - //should be a 16 and a 1 ([out] and [done]) - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 16); -} - -#[test] -fn test_comb_mem_d4() { - let mut mem = stfl::mem::StdMemD4::from_constants( - 6, - 4, - 4, - 4, - 4, - 2, - 2, - 2, - 2, - "".into(), - ); - //see that unitialized mem, executed w/ write_en low, - //returns 0, and no DONE - port_bindings![binds; - write_data -> (16, 6), - write_en -> (0, 1), - addr0 -> (3, 2), - addr1 -> (3, 2), - addr2 -> (3, 2), - addr3 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - let output_vals = mem.do_tick().unwrap(); //this should have low done - assert_eq!(output_vals.len(), 2); - let d = &output_vals[1].1; - assert_eq!(d.as_u64(), 0); - - //now have write_en high and see output of execute is 0, and output of write is 16 - port_bindings![binds; - write_data -> (16, 6), - write_en -> (1, 1), - addr0 -> (3, 2), - addr1 -> (3, 2), - addr2 -> (3, 2), - addr3 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - assert_eq!(1, output_vals.len()); //should just have data @ addr0, which is a 0 - //should be a 0 - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 0); - assert_eq!(out.0, "read_data"); - //now that we are ticking, update should be written (and returned) - let output_vals = mem.do_tick().unwrap(); //this should have read_data and done, cuz write_en was hgih - assert_eq!(output_vals.len(), 2); - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - let rd = output_vals.next().unwrap(); - let d = output_vals.next().unwrap(); - assert_eq!(rd.1.as_u64(), 16); - assert_eq!(d.1.as_u64(), 1); - //now try to overwrite but w/ write_en low, and see 16 and 0 is returned - port_bindings![binds; - write_data -> (3, 6), - write_en -> (0, 1), - addr0 -> (3, 2), - addr1 -> (3, 2), - addr2 -> (3, 2), - addr3 -> (3, 2) - ]; - let output_vals = mem.validate_and_execute(&binds).unwrap(); - assert_eq!(1, output_vals.len()); //we should get read_data combinationally from [addr0] - println!("output_vals: {:?}", output_vals); - let mut output_vals = output_vals.into_iter(); - //should be a 16 and a 1 ([out] and [done]) - let out = output_vals.next().unwrap(); - let rd = out.1; - assert_eq!(rd.as_u64(), 16); -} - -/* #[test] -fn test_std_const() { -let val_31 = Value::try_from_init(31, 5).unwrap(); -let const_31 = comb::StdConst::from_constants(5, val_31, "".into()); -assert_eq!(const_31.read_val().as_u64(), 31); //can rust check this equality? -assert_eq!(const_31.read_u64(), 31); -} -#[test] -#[should_panic] -fn test_std_const_panic() { -let val = Value::try_from_init(75, 7).unwrap(); -comb::StdConst::from_constants(5, val, "".into()); -} */ -#[test] -fn test_std_lsh() { - // lsh with overflow - // [11111] (31) -> [11100] (28) - let mut lsh = comb::StdLsh::from_constants(5, "".into()); - port_bindings![binds; - left -> (31, 5), - right -> (2, 5) - ]; - let out = lsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - println!("lsh of 31 by 2: {}", out); - assert_eq!(out.as_u64(), 28); - - // lsh without overflow - // lsh [010000] (16) by 1 -> [100000] (32) - let mut lsh = comb::StdLsh::from_constants(6, "".into()); - port_bindings![binds; - left -> (16, 6), - right -> (1, 6) - ]; - let out = lsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 32); -} - -#[test] -fn test_std_lsh_above64() { - // lsh with overflow - let mut lsh = comb::StdLsh::from_constants(275, "".into()); - port_bindings![binds; - left -> (31, 275), - right -> (275, 275) - ]; - let out = lsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 0); - - // lsh without overflow - // lsh [010000] (16) by 1 -> [100000] (32) - let mut lsh = comb::StdLsh::from_constants(381, "".into()); - port_bindings![binds; - left -> (16, 381), - right -> (1, 381) - ]; - let out = lsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 32); -} - -#[test] -fn test_std_rsh() { - // Not sure how to catagorize this - // [1111] (15) -> [0011] (3) - let mut rsh = comb::StdRsh::from_constants(4, "".into()); - port_bindings![binds; - left -> (15, 4), - right -> (2, 4) - ]; - let out = rsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 3); - // Division by 2 - // [1000] (8) -> [0100] ( 4) - port_bindings![binds; - left -> (8, 4), - right -> (1, 4) - ]; - let out = rsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 4); -} - -#[test] -fn test_std_rsh_above64() { - let mut rsh = comb::StdRsh::from_constants(275, "".into()); - port_bindings![binds; - left -> (8, 275), - right -> (4, 275) - ]; - let out = rsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 0); - let mut rsh = comb::StdRsh::from_constants(381, "".into()); - port_bindings![binds; - left -> (40, 381), - right -> (3, 381) - ]; - let out = rsh - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(out.as_u64(), 5); -} - -#[test] -fn test_std_add() { - // without overflow - // add [0011] (3) and [1010] (10) -> [1101] (13) - let mut add = comb::StdAdd::from_constants(4, "".into(), false); - port_bindings![binds; - left -> (3, 4), - right -> (10, 4) - ]; - let res_add = add - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_add.as_u64(), 13); - // with overflow - // add [1010] (10) and [0110] (6) -> [0000] (0) - port_bindings![binds; - left -> (10, 4), - right -> (6, 4) - ]; - let res_add = add - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_add.as_u64(), 0); -} - -#[test] -fn test_std_add_above64() { - // without overflow - let mut add = comb::StdAdd::from_constants(165, "".into(), false); - port_bindings![binds; - left -> (17, 165), - right -> (35, 165) - ]; - let res_add = add - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_add.as_u64(), 52); -} - -#[test] -#[should_panic] -fn test_std_add_panic() { - let mut add = comb::StdAdd::from_constants(7, "".into(), false); - port_bindings![binds; - left -> (81, 7), - right -> (10, 4) - ]; - add.validate_and_execute(&binds).unwrap(); -} -#[test] -fn test_std_sub() { - // without overflow - // sub [0110] (6) from [1010] (10) -> [0100] (4) - let mut sub = comb::StdSub::from_constants(4, "".into(), false); - port_bindings![binds; - left -> (10, 4), - right -> (6, 4) - ]; - let res_sub = sub - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_sub.as_u64(), 4); - // with overflow (would produce a negative #, depending on how program thinks abt this...) - // sub [1011] (11) from [1010] (10) -> [1010] + [0101] = [1111] which is -1 in 2bc and 15 unsigned - // for some reason producing [0101] ? that's just 'right + 1 - port_bindings![binds; - left -> (10, 4), - right -> (11, 4) - ]; - let res_sub = sub - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_sub.as_u64(), 15); - // sub [1111] (15) from [1000] (8) -> [1000] + [0001] which is [1001] -7 in 2c but 9 in unsigned - - port_bindings![binds; - left -> (8, 4), - right -> (15, 4) - ]; - let res_sub = sub - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_sub.as_u64(), 9); -} - -#[test] -fn test_std_sub_above64() { - // without overflow - let mut sub = comb::StdSub::from_constants(1605, "".into(), false); - port_bindings![binds; - left -> (57, 1605), - right -> (35, 1605) - ]; - let res_sub = sub - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_sub.as_u64(), 22); -} - -#[test] -#[should_panic] -fn test_std_sub_panic() { - let mut sub = comb::StdAdd::from_constants(5, "".into(), false); - port_bindings![binds; - left -> (52, 6), - right -> (16, 5) - ]; - sub.validate_and_execute(&binds).unwrap(); -} -#[test] -fn test_std_slice() { - // 101 in binary is [1100101], take first 4 bits -> [0101] = 5 - let to_slice = Value::from(101, 7); - let mut std_slice = comb::StdSlice::from_constants(7, 4, "".into()); - let res_slice = std_slice - .validate_and_execute(&[("in".into(), &to_slice)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); //note that once we implement execute_unary, have to change this - assert_eq!(res_slice.as_u64(), 5); - // Slice the entire bit - let to_slice = Value::from(548, 10); - let mut std_slice = comb::StdSlice::from_constants(10, 10, "".into()); - let res_slice = std_slice - .validate_and_execute(&[("in".into(), &to_slice)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_slice.as_u64(), 548); -} -#[test] -#[should_panic] -fn test_std_slice_panic() { - let to_slice = Value::from(3, 2); - let mut std_slice = comb::StdSlice::from_constants(7, 4, "".into()); - std_slice - .validate_and_execute(&[("in".into(), &to_slice)]) - .unwrap(); -} -#[test] -fn test_std_pad() { - // Add 2 zeroes, should keep the same value - let to_pad = Value::from(101, 7); - let mut std_pad = comb::StdPad::from_constants(7, 9, "".into()); - let res_pad = std_pad - .validate_and_execute(&[("in".into(), &to_pad)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_pad.as_u64(), 101); - // hard to think of another test case but just to have 2: - let to_pad = Value::from(1, 7); - let res_pad = std_pad - .validate_and_execute(&[("in".into(), &to_pad)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_pad.as_u64(), 1); -} -#[test] -#[should_panic] -fn test_std_pad_panic() { - let to_pad = Value::from(21, 5); - let mut std_pad = comb::StdPad::from_constants(3, 9, "".into()); - std_pad - .validate_and_execute(&[("in".into(), &to_pad)]) - .unwrap(); -} -/// Logical Operators -#[test] -fn test_std_not() { - // ![1010] (!10) -> [0101] (5) - let not0 = Value::from(10, 4); - let mut std_not = comb::StdNot::from_constants(4, "".into()); - let res_not = std_not - .validate_and_execute(&[("in".into(), ¬0)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_not.as_u64(), 5); - // ![0000] (!0) -> [1111] (15) - let not0 = Value::from(0, 4); - let res_not = std_not - .validate_and_execute(&[("in".into(), ¬0)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_not.as_u64(), 15); -} - -#[test] -#[should_panic] -fn test_std_not_panic() { - //input too short - let not0 = Value::from(0, 4); - let mut std_not = comb::StdNot::from_constants(5, "".into()); - std_not - .validate_and_execute(&[("in".into(), ¬0)]) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); -} - -#[test] -fn test_std_and() { - //101: [1100101], 78: [1001110] & -> [1000100] which is 68 - let mut std_and = comb::StdAnd::from_constants(7, "".into()); - port_bindings![binds; - left -> (101, 7), - right -> (78, 7) - ]; - let res_and = std_and - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_and.as_u64(), 68); - //[1010] (10) & [0101] (5) is [0000] - - let mut std_and = comb::StdAnd::from_constants(4, "".into()); - port_bindings![binds; - left -> (10, 4), - right -> (5, 4) - ]; - let res_and = std_and - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_and.as_u64(), 0); -} - -#[test] -#[should_panic] -fn test_std_and_panic() { - let mut std_and = comb::StdAnd::from_constants(7, "".into()); - port_bindings![binds; - left -> (91, 7), - right -> (43, 6) - ]; - std_and - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); -} - -#[test] -fn test_std_or() { - //[101] (5) or [011] (3) is [111] (7) - let mut std_or = comb::StdOr::from_constants(3, "".into()); - port_bindings![binds; - left -> (5, 3), - right -> (3, 3) - ]; - let res_or = std_or - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_or.as_u64(), 7); - //anything or zero is itself - //[001] (1) or [000] (0) is [001] (1) - port_bindings![binds; - left -> (1, 3), - right -> (0, 3) - ]; - let res_or = std_or - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_or.as_u64(), left.as_u64()); -} - -#[test] -#[should_panic] -fn test_std_or_panic() { - let mut std_or = comb::StdOr::from_constants(5, "".into()); - port_bindings![binds; - left -> (16, 5), - right -> (78, 7) - ]; - std_or - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); -} -#[test] -fn test_std_xor() { - //[101] (5) XOR [011] (3) is [110] (6) - let mut std_xor = comb::StdXor::from_constants(3, "".into()); - port_bindings![binds; - left -> (5, 3), - right -> (3, 3) - ]; - let res_xor = std_xor - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_xor.as_u64(), 6); - //anything xor itself is 0 - port_bindings![binds; - left -> (5, 3), - right -> (5, 3) - ]; - assert_eq!( - std_xor - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} -#[test] -#[should_panic] -fn test_std_xor_panic() { - let mut std_xor = comb::StdXor::from_constants(6, "".into()); - port_bindings![binds; - left -> (56, 6), - right -> (92, 7) - ]; - std_xor - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); -} -/// Comparison Operators -// is there any point in testing this more than once? -// no weird overflow or anything. maybe test along with -// equals -#[test] -fn test_std_gt() { - let mut std_gt = comb::StdGt::from_constants(16, "".into()); - port_bindings![binds; - left -> (7 ,16), - right -> (3, 16) - ]; - let res_gt = std_gt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_gt.as_u64(), 1); - //7 > 7 ? no! - port_bindings![binds; - left -> (7, 16), - right -> (7, 16) - ]; - assert_eq!( - std_gt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} - -#[test] -fn test_std_gt_above64() { - let mut std_gt = comb::StdGt::from_constants(716, "".into()); - port_bindings![binds; - left -> (18446744073709551615_u64, 716), - right -> (14333, 716) - ]; - let res_gt = std_gt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_gt.as_u64(), 1); - //7 > 7 ? no! - let mut std_gt = comb::StdGt::from_constants(423, "".into()); - port_bindings![binds; - left -> (7, 423), - right -> (7, 423) - ]; - assert_eq!( - std_gt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} -#[test] -#[should_panic] -fn test_std_gt_panic() { - let mut std_gt = comb::StdGt::from_constants(3, "".into()); - port_bindings![binds; - left -> (9, 4), - right -> (3, 2) - ]; - std_gt.validate_and_execute(&binds).unwrap(); -} -#[test] -fn test_std_lt() { - let mut std_lt = comb::StdLt::from_constants(16, "".into()); - port_bindings![binds; - left -> (7, 16), - right -> (3, 16) - ]; - let res_lt = std_lt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_lt.as_u64(), 0); - // 7 < 7 ? no! - port_bindings![binds; - left -> (7, 16), - right -> (7, 16) - ]; - assert_eq!( - std_lt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} - -#[test] -fn test_std_lt_above64() { - //7298791842 < 17298791842 - let mut std_lt = comb::StdLt::from_constants(2706, "".into()); - port_bindings![binds; - left -> (72987918, 2706), - right -> (18446744073709551615_u64, 2706) - ]; - let res_lt = std_lt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_lt.as_u64(), 1); - //3_000_000 < 3_000_000 ? no! - let mut std_lt = comb::StdLt::from_constants(2423, "".into()); - port_bindings![binds; - left -> (3_000_000, 2423), - right -> (3_000_000, 2423) - ]; - assert_eq!( - std_lt - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} - -#[test] -#[should_panic] -fn test_std_lt_panic() { - let mut std_lt = comb::StdLt::from_constants(5, "".into()); - port_bindings![binds; - left -> (58, 6), - right -> (12, 4) - ]; - std_lt.validate_and_execute(&binds).unwrap(); -} -#[test] -fn test_std_eq() { - let mut std_eq = comb::StdEq::from_constants(16, "".into()); - port_bindings![binds; - left -> (4, 16), - right -> (4, 16) - ]; - let res_eq = std_eq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_eq.as_u64(), 1); - // 4 = 5 ? no! - port_bindings![binds; - left -> (4, 16), - right -> (5, 16) - ]; - assert_eq!( - std_eq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} - -#[test] -fn test_std_eq_above64() { - let mut std_eq = comb::StdEq::from_constants(716, "".into()); - port_bindings![binds; - left -> (18446744073709551615_u64, 716), - right -> (18446744073709551615_u64, 716) - ]; - let res_eq = std_eq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_eq.as_u64(), 1); - // 123456 =12377456 ? no! - let mut std_eq = comb::StdEq::from_constants(421113, "".into()); - port_bindings![binds; - left -> (123456, 421113), - right -> (12377456, 421113) - ]; - assert_eq!( - std_eq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 0 - ); -} - -#[test] -#[should_panic] -fn test_std_eq_panic() { - let mut std_eq = comb::StdEq::from_constants(5, "".into()); - port_bindings![binds; - left -> (42, 6), - right -> (42, 6) - ]; - std_eq.validate_and_execute(&binds).unwrap(); -} -#[test] -fn test_std_neq() { - let mut std_neq = comb::StdNeq::from_constants(16, "".into()); - port_bindings![binds; - left -> (4, 16), - right -> (4, 16) - ]; - let res_neq = std_neq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - //4 != 4 ? no! - assert!(res_neq.as_u64() == 0); - // 4 != 5? yes! - port_bindings![binds; - left -> (4, 16), - right -> (5, 16) - ]; - assert_eq!( - std_neq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 1 - ); -} - -#[test] -fn test_std_neq_above64() { - let mut std_neq = comb::StdNeq::from_constants(4321, "".into()); - port_bindings![binds; - left -> (18446744073709551615_u64, 4321), - right -> (18446744073709551615_u64, 4321) - ]; - let res_neq = std_neq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - //max != max ? no! - assert!(res_neq.as_u64() == 0); - port_bindings![binds; - left -> (18446744073709551615_u64, 4321), - right -> (18446744073709500000_u64, 4321) - ]; - assert_eq!( - std_neq - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 1 - ); -} - -#[test] -#[should_panic] -fn test_std_neq_panic() { - let mut std_neq = comb::StdNeq::from_constants(5, "".into()); - port_bindings![binds; - left -> (45, 6), - right -> (4, 3) - ]; - std_neq.validate_and_execute(&binds).unwrap(); -} - -#[test] -fn test_std_ge() { - let mut std_ge = comb::StdGe::from_constants(8, "".into()); - port_bindings![binds; - left -> (35, 8), - right -> (165, 8) - ]; - let res_ge = std_ge - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - //35 >= 165 ? no! - assert_eq!(res_ge.as_u64(), 0); - // 35 >= 35 ? yes - port_bindings![binds; - left -> (35, 8), - right -> (35, 8) - ]; - assert_eq!( - std_ge - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 1 - ); -} - -#[test] -fn test_std_ge_above64() { - let mut std_ge = comb::StdGe::from_constants(716, "".into()); - port_bindings![binds; - left -> (18446744073709551615_u64, 716), - right -> (14333, 716) - ]; - let res_ge = std_ge - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_ge.as_u64(), 1); - // 35 >= 35 ? yes - let mut std_ge = comb::StdGe::from_constants(423, "".into()); - port_bindings![binds; - left -> (35, 423), - right -> (35, 423) - ]; - assert_eq!( - std_ge - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 1 - ); -} - -#[test] -#[should_panic] -fn test_std_ge_panic() { - let mut std_ge = comb::StdGe::from_constants(6, "".into()); - port_bindings![binds; - left -> (40, 6), - right -> (75, 7) - ]; - std_ge.validate_and_execute(&binds).unwrap(); -} -#[test] -fn test_std_le() { - let mut std_le = comb::StdLe::from_constants(4, "".into()); - port_bindings![binds; - left -> (12, 4), - right -> (8, 4) - ]; - let res_le = std_le - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - //12 <= 4 ? no! - assert_eq!(res_le.as_u64(), 0); - //12 <= 12? yes! - port_bindings![binds; - left -> (12, 4), - right -> (12, 4) - ]; - assert_eq!( - std_le - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 1 - ); -} - -#[test] -fn test_std_le_above64() { - //72987918 <= 9729879 - let mut std_le = comb::StdLe::from_constants(2706, "".into()); - port_bindings![binds; - left -> (72_987_918, 2706), - right -> (93_729_879, 2706) - ]; - let res_le = std_le - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - assert_eq!(res_le.as_u64(), 1); - //3_000_000 <= 3_000_000 ? yes! - let mut std_le = comb::StdLe::from_constants(2423, "".into()); - port_bindings![binds; - left -> (3_000_000, 2423), - right -> (3_000_000, 2423) - ]; - assert_eq!( - std_le - .validate_and_execute(&binds) - .unwrap() - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap() - .as_u64(), - 1 - ); -} - -#[test] -#[should_panic] -fn test_std_le_panic() { - let mut std_le = comb::StdLe::from_constants(6, "".into()); - port_bindings![binds; - left -> (93, 7), - right -> (68, 7) - ]; - std_le.validate_and_execute(&binds).unwrap(); -} - -#[cfg(test)] -mod property_tests { - use crate::port_bindings; - use crate::primitives::combinational; - use crate::primitives::stateful; - use crate::primitives::Primitive; - - use proptest::prelude::*; - - macro_rules! extract_output { - ($input:ident, $target:literal) => { - ($input) - .iter() - .find(|(x, _y)| x == $target) - .map(|(_x, y)| y) - .unwrap() - }; - } - - proptest! { - #[test] - fn std_add(in_left: u128, in_right: u128) { - let mut adder = combinational::StdAdd::from_constants(128, "".into(), false); - port_bindings![binds; - left -> (in_left, 128), - right -> (in_right, 128) - ]; - - let out_res = adder.execute(&binds).unwrap(); - let out = extract_output!(out_res, "out"); - assert_eq!(out.as_u128(), u128::wrapping_add(in_left, in_right)) - } - - #[test] - fn std_sub(in_left: u128, in_right: u128) { - let mut sub = combinational::StdSub::from_constants(128, "".into(), false); - port_bindings![binds; - left -> (in_left, 128), - right -> (in_right, 128) - ]; - - let out_res = sub.execute(&binds).unwrap(); - let out = extract_output!(out_res, "out"); - assert_eq!(out.as_u128(), u128::wrapping_sub(in_left, in_right)) - } - - #[test] - fn std_mult(in_left: u64, in_right: u64){ - let mut mult = stateful::StdMultPipe::::from_constants(64, "".into(), false); - port_bindings![binds; - reset -> (0, 1), - left -> (in_left, 64), - right -> (in_right, 64), - go -> (1,1) - ]; - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - let output = mult.do_tick().unwrap(); - let out = extract_output!(output, "out"); - assert_eq!(out.as_u64(),u64::wrapping_mul(in_left, in_right)) - } - - #[test] - fn std_smult(in_left: i64, in_right: i64){ - let mut mult = stateful::StdMultPipe::::from_constants(64, "".into(), false); - port_bindings![binds; - reset -> (0, 1), - left -> (in_left, 64), - right -> (in_right, 64), - go -> (1,1) - ]; - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - let output = mult.do_tick().unwrap(); - let out = extract_output!(output, "out"); - assert_eq!(out.as_i64(), i64::wrapping_mul(in_left, in_right)) - } - - #[test] - fn std_div(in_left: u64, in_right in (1..u64::MAX)) { - let mut mult = stateful::StdDivPipe::::from_constants(64, "".into(), false); - port_bindings![binds; - left -> (in_left, 64), - right -> (in_right, 64), - go -> (1,1), - reset -> (0, 1) - ]; - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - let output = mult.do_tick().unwrap(); - let out = extract_output!(output, "out_quotient"); - let remainder = extract_output!(output, "out_remainder"); - assert_eq!(out.as_u64(), in_left / in_right); - assert_eq!(remainder.as_u64(), in_left.rem_euclid(in_right)); - } - - #[test] - fn std_sdiv(in_left: i64, in_right in (i64::MIN..i64::MAX).prop_filter("non-zero", |v| *v != 0_i64)) { - let mut mult = stateful::StdDivPipe::::from_constants(64, "".into(), false); - port_bindings![binds; - left -> (in_left, 64), - reset -> (0, 1), - right -> (in_right, 64), - go -> (1,1) - ]; - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - mult.do_tick().unwrap(); - mult.execute(&binds).unwrap(); - let output = mult.do_tick().unwrap(); - let out = extract_output!(output, "out_quotient"); - // let remainder = extract_output!(output, "out_remainder"); - assert_eq!(out.as_i64(),i64::wrapping_div(in_left, in_right)); - // assert_eq!(remainder.as_i64(), in_left.rem_euclid(in_right)); - } - } -} diff --git a/interp/src/tests/stk_env.rs b/interp/src/tests/stk_env.rs deleted file mode 100644 index 09168f9640..0000000000 --- a/interp/src/tests/stk_env.rs +++ /dev/null @@ -1,431 +0,0 @@ -#[cfg(test)] -use crate::structures::stk_env::StackMap; -#[allow(unused)] -use std::collections::HashMap; - -#[test] -fn smoosher_get_empty() { - let smoosher = StackMap::::new(); - assert_eq!(None, smoosher.get(&4)); -} - -#[test] -fn smoosher_get_set() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", 2); - assert_eq!(*smoosher.get(&"hey").unwrap(), 2); -} - -#[test] -fn smoosher_get_set_2_scopes() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", 2); - smoosher.set("alma", 18); - assert_eq!(*smoosher.get(&"hey").unwrap(), 2); - smoosher.new_scope(); - smoosher.set("hey", 3); - //test a binding shadowed from the top scope - assert_eq!(*smoosher.get(&"hey").unwrap(), 3); - //test a binding found not on top scope - assert_eq!(*smoosher.get(&"alma").unwrap(), 18); -} - -#[test] -fn smoosher_smoosh_basic() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", 2); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("hey", 3); - smoosher.set("bruh", 3); - let smoosher = smoosher.smoosh(1); - //test bindings have been maintained - assert_eq!(*smoosher.get(&"bruh").unwrap(), 3); - assert_eq!(*smoosher.get(&"alma").unwrap(), 18); - //test the right "hey" was written - assert_eq!(*smoosher.get(&"hey").unwrap(), 3); -} -#[test] -fn smoosher_smoosh_many_lvls() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", 2); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("hey", 3); - smoosher.set("bruh", 3); - smoosher.new_scope(); - smoosher.set("hey", 7); - smoosher.new_scope(); - smoosher.set("hey", 8); - smoosher.new_scope(); - smoosher.set("hey", 9); - let smoosher = smoosher.smoosh(4); - //test bindings have been maintained - assert_eq!(*smoosher.get(&"bruh").unwrap(), 3); - assert_eq!(*smoosher.get(&"alma").unwrap(), 18); - //test the right "hey" was written - assert_eq!(*smoosher.get(&"hey").unwrap(), 9); -} - -#[test] -fn smoosher_merge_basic() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.set("jonathan", 14); - smoosher.set("jenny", 2); - //the below fork adds a new scope to [smoosher] - let mut smoosher2 = smoosher.fork(); - smoosher2.set("alma", 19); - smoosher.set("jonathan", 15); - let smoosher_merged = StackMap::merge(smoosher, smoosher2); - assert_eq!(*smoosher_merged.get(&"alma").unwrap(), 19); - assert_eq!(*smoosher_merged.get(&"jonathan").unwrap(), 15); -} - -//tests that we can merge different branch length. should fail now -#[test] -fn smoosher_merge_complex() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.set("jonathan", 14); - smoosher.set("jenny", 2); - //the below fork adds a new scope to [smoosher] - let mut smoosher2 = smoosher.fork(); - smoosher2.set("alma", 19); - //add another 2 scopes to smoosher, see if that can be merged - smoosher.set("jonathan", 15); - smoosher.new_scope(); - smoosher.set("jenny", 3); - let smoosher_merged = StackMap::merge(smoosher, smoosher2); - assert_eq!(*smoosher_merged.get(&"alma").unwrap(), 19); - assert_eq!(*smoosher_merged.get(&"jonathan").unwrap(), 15); - assert_eq!(*smoosher_merged.get(&"jenny").unwrap(), 3); -} - -#[test] -fn smoosher_list_b_vars() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("jonathan", 14); - smoosher.new_scope(); - smoosher.set("joseph", 19); - smoosher.set("ari", 12); - //assert lbv 0 is joseph and ari - //assert lbv1 is joseph, ari, jonathan - let hs0 = StackMap::list_bound_vars(&smoosher, 0); - let hs1 = StackMap::list_bound_vars(&smoosher, 1); - assert!(hs0.contains(&"joseph")); - assert!(hs0.contains(&"ari")); - assert!(!hs0.contains(&"jonathan")); - assert!(!hs0.contains(&"alma")); - //now test from 1 level deep - assert!(hs1.contains(&"joseph")); - assert!(hs1.contains(&"ari")); - assert!(hs1.contains(&"jonathan")); - assert!(!hs1.contains(&"alma")); -} - -#[test] -fn smoosher_to_hm() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("jonathan", 14); - smoosher.new_scope(); - smoosher.set("joseph", 19); - smoosher.new_scope(); - smoosher.set("joseph", 436); - smoosher.set("ari", 12); - let hm = smoosher.to_hm(); - //that type annotation seems a bit wack - assert_eq!(hm.len(), 4); - assert_eq!(**hm.get(&"alma").unwrap(), 18); - assert_eq!(**hm.get(&"jonathan").unwrap(), 14); - assert_eq!(**hm.get(&"joseph").unwrap(), 436); - assert_eq!(**hm.get(&"ari").unwrap(), 12); -} - -#[test] -fn smoosher_from() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("jonathan", 14); - smoosher.new_scope(); - smoosher.set("joseph", 19); - smoosher.new_scope(); - smoosher.set("joseph", 436); - smoosher.set("ari", 12); - let hm: HashMap<&&str, &i32> = HashMap::from(&smoosher); - //that type annotation seems a bit wack - assert_eq!(hm.len(), 4); - assert_eq!(**hm.get(&"alma").unwrap(), 18); - assert_eq!(**hm.get(&"jonathan").unwrap(), 14); - assert_eq!(**hm.get(&"joseph").unwrap(), 436); - assert_eq!(**hm.get(&"ari").unwrap(), 12); -} - -#[test] -fn smoosher_diff_2() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("joseph", 19); - smoosher.new_scope(); - smoosher.set("jonathan", 14); - smoosher.new_scope(); - smoosher.set("jonathan", 15); - smoosher.new_scope(); - smoosher.set("alma", 19); - smoosher.set("joseph", 19); - //there are 5 scopes, check diff 2 and see that the resulting hm - //has alma, jonathan, but not joseph. - let diff_2 = smoosher.diff(2); - assert!(diff_2.contains_key(&"alma")); - assert!(diff_2.contains_key(&"jonathan")); - assert!(!diff_2.contains_key(&"joseph")); -} - -#[test] -fn smoosher_diff_other() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", 18); - smoosher.new_scope(); - smoosher.set("joseph", 19); - smoosher.new_scope(); - smoosher.set("jonathan", 14); - let mut smoosher2 = StackMap::new(); - smoosher2.set("jonathan", 15); - smoosher2.new_scope(); - smoosher2.set("alma", 19); - smoosher2.set("joseph", 19); - let diff_2 = smoosher.diff_other(&smoosher2); - assert!(diff_2.contains_key(&"alma")); - assert_eq!(**diff_2.get(&"alma").unwrap(), 18); - assert!(diff_2.contains_key(&"jonathan")); - assert_eq!(**diff_2.get(&"jonathan").unwrap(), 14); - assert!(!diff_2.contains_key(&"joseph")); -} - -mod values_stk_env_test { - #[allow(unused)] - use crate::structures::stk_env::StackMap; - #[allow(unused)] - use crate::values::Value; - - #[test] - fn smoosher_val_get_set() { - let mut sm = StackMap::new(); - let val = Value::from(8, 4); - sm.set("reg_out", val); - assert_eq!(sm.get(&"reg_out").unwrap().as_u64(), 8); - } - - #[test] - fn smoosher_get_set_2_scopes() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", Value::from(2, 32)); - smoosher.set("alma", Value::from(18, 32)); - assert_eq!(smoosher.get(&"hey").unwrap().as_u64(), 2); - smoosher.new_scope(); - smoosher.set("hey", Value::from(3, 32)); - //test a binding shadowed from the top scope - assert_eq!(smoosher.get(&"hey").unwrap().as_u64(), 3); - //test a binding found not on top scope - assert_eq!(smoosher.get(&"alma").unwrap().as_u64(), 18); - } - - #[test] - fn value_eq_get_set() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", Value::from(2, 32)); - smoosher.set("alma", Value::from(18, 32)); - assert_eq!(*smoosher.get(&"hey").unwrap(), Value::from(2, 32)); - smoosher.new_scope(); - smoosher.set("hey", Value::from(3, 32)); - //test a binding shadowed from the top scope - assert_eq!(*smoosher.get(&"hey").unwrap(), Value::from(3, 32)); - //test a binding found not on top scope - assert_eq!(*smoosher.get(&"alma").unwrap(), Value::from(18, 32)); - } - - #[test] - fn smoosher_smoosh_basic() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", Value::from(2, 32)); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("hey", Value::from(3, 32)); - smoosher.set("bruh", Value::from(3, 32)); - let smoosher = smoosher.smoosh(1); - //test bindings have been maintained - assert_eq!(smoosher.get(&"bruh").unwrap().as_u64(), 3); - assert_eq!(smoosher.get(&"alma").unwrap().as_u64(), 18); - //test the right "hey" was written - assert_eq!(smoosher.get(&"hey").unwrap().as_u64(), 3); - } - #[test] - fn smoosher_smoosh_many_lvls() { - let mut smoosher = StackMap::new(); - smoosher.set("hey", Value::from(2, 32)); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("hey", Value::from(3, 32)); - smoosher.set("bruh", Value::from(3, 32)); - smoosher.new_scope(); - smoosher.set("hey", Value::from(7, 32)); - smoosher.new_scope(); - smoosher.set("hey", Value::from(8, 32)); - smoosher.new_scope(); - smoosher.set("hey", Value::from(9, 32)); - let smoosher = smoosher.smoosh(4); - //test bindings have been maintained - assert_eq!(smoosher.get(&"bruh").unwrap().as_u64(), 3); - assert_eq!(smoosher.get(&"alma").unwrap().as_u64(), 18); - //test the right "hey" was written - assert_eq!(smoosher.get(&"hey").unwrap().as_u64(), 9); - } - - #[test] - fn smoosher_merge_basic() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.set("jonathan", Value::from(14, 32)); - smoosher.set("jenny", Value::from(2, 32)); - //the below fork adds a new scope to [smoosher] - let mut smoosher2 = smoosher.fork(); - smoosher2.set("alma", Value::from(19, 32)); - smoosher.set("jonathan", Value::from(15, 32)); - let smoosher_merged = StackMap::merge(smoosher, smoosher2); - assert_eq!(smoosher_merged.get(&"alma").unwrap().as_u64(), 19); - assert_eq!(smoosher_merged.get(&"jonathan").unwrap().as_u64(), 15); - } - - //tests that we can merge different branch length. should fail now - #[test] - fn smoosher_merge_complex() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.set("jonathan", Value::from(14, 32)); - smoosher.set("jenny", Value::from(2, 32)); - //the below fork adds a new scope to [smoosher] - let mut smoosher2 = smoosher.fork(); - smoosher2.set("alma", Value::from(19, 32)); - //add another 2 scopes to smoosher, see if that can be merged - smoosher.set("jonathan", Value::from(15, 32)); - smoosher.new_scope(); - smoosher.set("jenny", Value::from(3, 32)); - let smoosher_merged = StackMap::merge(smoosher, smoosher2); - assert_eq!(smoosher_merged.get(&"alma").unwrap().as_u64(), 19); - assert_eq!(smoosher_merged.get(&"jonathan").unwrap().as_u64(), 15); - assert_eq!(smoosher_merged.get(&"jenny").unwrap().as_u64(), 3); - } - - #[test] - fn smoosher_list_b_vars() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("jonathan", Value::from(14, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(19, 32)); - smoosher.set("ari", Value::from(12, 32)); - //assert lbv 0 is joseph and ari - //assert lbv1 is joseph, ari, jonathan - let hs0 = StackMap::list_bound_vars(&smoosher, 0); - let hs1 = StackMap::list_bound_vars(&smoosher, 1); - assert!(hs0.contains(&"joseph")); - assert!(hs0.contains(&"ari")); - assert!(!hs0.contains(&"jonathan")); - assert!(!hs0.contains(&"alma")); - //now test from 1 level deep - assert!(hs1.contains(&"joseph")); - assert!(hs1.contains(&"ari")); - assert!(hs1.contains(&"jonathan")); - assert!(!hs1.contains(&"alma")); - } - - #[test] - fn smoosher_to_hm() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("jonathan", Value::from(14, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(19, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(436, 32)); - smoosher.set("ari", Value::from(12, 32)); - let hm = smoosher.to_hm(); - //that type annotation seems a bit wack - assert_eq!(hm.len(), 4); - assert_eq!(hm.get(&"alma").unwrap().as_u64(), 18); - assert_eq!(hm.get(&"jonathan").unwrap().as_u64(), 14); - assert_eq!(hm.get(&"joseph").unwrap().as_u64(), 436); - assert_eq!(hm.get(&"ari").unwrap().as_u64(), 12); - } - - #[test] - fn value_smoosher_hm_from() { - use std::collections::HashMap; - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("jonathan", Value::from(14, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(19, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(436, 32)); - smoosher.set("ari", Value::from(12, 32)); - let hm: HashMap<&&str, &Value> = HashMap::from(&smoosher); - //that type annotation seems a bit wack - assert_eq!(hm.len(), 4); - assert_eq!(hm.get(&"alma").unwrap().as_u64(), 18); - assert_eq!(hm.get(&"jonathan").unwrap().as_u64(), 14); - assert_eq!(hm.get(&"joseph").unwrap().as_u64(), 436); - assert_eq!(hm.get(&"ari").unwrap().as_u64(), 12); - } - - #[test] - fn smoosher_diff_2() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(19, 32)); - smoosher.new_scope(); - smoosher.set("jonathan", Value::from(14, 32)); - smoosher.new_scope(); - smoosher.set("jonathan", Value::from(15, 32)); - smoosher.new_scope(); - smoosher.set("alma", Value::from(19, 32)); - smoosher.set("joseph", Value::from(19, 32)); - //there are 5 scopes, check diff 2 and see that the resulting hm - //has alma, jonathan, but not joseph. - let diff_2 = smoosher.diff(2); - assert!(diff_2.contains_key(&"alma")); - assert!(diff_2.contains_key(&"jonathan")); - assert!(!diff_2.contains_key(&"joseph")); - } - - #[test] - fn smoosher_diff_other() { - let mut smoosher = StackMap::new(); - smoosher.set("alma", Value::from(18, 32)); - smoosher.new_scope(); - smoosher.set("joseph", Value::from(19, 32)); - smoosher.new_scope(); - smoosher.set("jonathan", Value::from(14, 32)); - let mut smoosher2 = StackMap::new(); - smoosher2.set("jonathan", Value::from(15, 32)); - smoosher2.new_scope(); - smoosher2.set("alma", Value::from(19, 32)); - smoosher2.set("joseph", Value::from(19, 32)); - let diff_2 = smoosher.diff_other(&smoosher2); - assert!(diff_2.contains_key(&"alma")); - assert_eq!(diff_2.get(&"alma").unwrap().as_u64(), 18); - assert!(diff_2.contains_key(&"jonathan")); - assert_eq!(diff_2.get(&"jonathan").unwrap().as_u64(), 14); - assert!(!diff_2.contains_key(&"joseph")); - } -} From 1dcd8f127f491f91e382c1827baf95304e4e3059 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:50:32 -0400 Subject: [PATCH 09/76] fixing stuff --- interp/src/flatten/flat_ir/cell_prototype.rs | 2 +- interp/src/flatten/primitives/builder.rs | 2 +- .../src/flatten/primitives/combinational.rs | 3 +- .../src/flatten/primitives/stateful/math.rs | 10 ++-- interp/src/flatten/primitives/utils.rs | 52 +++++++++++++++++++ 5 files changed, 61 insertions(+), 8 deletions(-) diff --git a/interp/src/flatten/flat_ir/cell_prototype.rs b/interp/src/flatten/flat_ir/cell_prototype.rs index 627e112f62..dce481e579 100644 --- a/interp/src/flatten/flat_ir/cell_prototype.rs +++ b/interp/src/flatten/flat_ir/cell_prototype.rs @@ -2,7 +2,7 @@ use calyx_ir::{self as cir, BoolAttr}; use smallvec::SmallVec; use crate::{ - primitives::prim_utils::get_params, serialization::data_dump::Dimensions, + flatten::primitives::utils::get_params, serialization::Dimensions, }; use super::prelude::ComponentIdx; diff --git a/interp/src/flatten/primitives/builder.rs b/interp/src/flatten/primitives/builder.rs index 111f953fdb..5b864fbcbf 100644 --- a/interp/src/flatten/primitives/builder.rs +++ b/interp/src/flatten/primitives/builder.rs @@ -9,7 +9,7 @@ use crate::{ }, structures::context::Context, }, - serialization::data_dump::DataDump, + serialization::DataDump, values::Value, }; diff --git a/interp/src/flatten/primitives/combinational.rs b/interp/src/flatten/primitives/combinational.rs index e5c774421b..5158fecc4f 100644 --- a/interp/src/flatten/primitives/combinational.rs +++ b/interp/src/flatten/primitives/combinational.rs @@ -7,11 +7,10 @@ use crate::{ flat_ir::prelude::{AssignedValue, GlobalPortIdx, PortValue}, primitives::{ all_defined, comb_primitive, declare_ports, ports, - prim_trait::UpdateStatus, Primitive, + prim_trait::UpdateStatus, utils::floored_division, Primitive, }, structures::environment::PortMap, }, - primitives::stateful::floored_division, values::Value, }; diff --git a/interp/src/flatten/primitives/stateful/math.rs b/interp/src/flatten/primitives/stateful/math.rs index ff9b074013..97b001fd76 100644 --- a/interp/src/flatten/primitives/stateful/math.rs +++ b/interp/src/flatten/primitives/stateful/math.rs @@ -1,10 +1,12 @@ use ibig::ops::RemEuclid; use crate::{ - flatten::{flat_ir::prelude::*, primitives::declare_ports}, - primitives::{ - prim_utils::ShiftBuffer, - stateful::{floored_division, int_sqrt}, + flatten::{ + flat_ir::prelude::*, + primitives::{ + declare_ports, + utils::{floored_division, int_sqrt, ShiftBuffer}, + }, }, values::InputNumber, }; diff --git a/interp/src/flatten/primitives/utils.rs b/interp/src/flatten/primitives/utils.rs index e8d9fc22a1..dce9c9da8d 100644 --- a/interp/src/flatten/primitives/utils.rs +++ b/interp/src/flatten/primitives/utils.rs @@ -1,3 +1,5 @@ +use std::collections::VecDeque; + use ibig::{ibig, UBig}; use ibig::{ubig, IBig}; @@ -32,3 +34,53 @@ pub(crate) fn int_sqrt(i: &UBig) -> UBig { } lower } + +/// A shift buffer of a fixed size +pub struct ShiftBuffer { + buffer: VecDeque>, +} + +impl Default for ShiftBuffer { + fn default() -> Self { + let mut buffer = VecDeque::with_capacity(N); + for _ in 0..N { + buffer.push_front(None) + } + Self { buffer } + } +} + +impl ShiftBuffer { + /// Shifts an element on to the front of the buffer and returns the element + /// on the end of the buffer. + pub fn shift(&mut self, element: Option) -> Option { + let out = self.buffer.pop_back().flatten(); + self.buffer.push_front(element); + out + } + + /// Removes all instantiated elements in the buffer and replaces them with + /// empty slots + pub fn reset(&mut self) { + for x in self.buffer.iter_mut() { + *x = None + } + } +} + +/// An internal macro which is used to extract parameter values from an +/// association list input. Structured as a declaration list +macro_rules! get_params { + ($inputs:ident; $( $param:ident : $id_name:expr ),+ ) => { + $( let mut $param = None; )+ + for (id, v) in $inputs { + match id.as_ref() { + $($id_name => {$param = Some(v);}), + + _ => {} + } + } + $(let $param: u64 = *$param.expect(format!("Missing parameter: {}", $id_name).as_ref()); )+ + } +} + +pub(crate) use get_params; From d305eb77b70574f8a68fcbe5224527d28d112f3f Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:51:23 -0400 Subject: [PATCH 10/76] purge things --- interp/src/structures/environment.rs | 736 ---------------- interp/src/structures/mod.rs | 4 - interp/src/structures/names.rs | 242 ------ interp/src/structures/state_views.rs | 365 -------- interp/src/structures/stk_env.rs | 1202 -------------------------- 5 files changed, 2549 deletions(-) delete mode 100644 interp/src/structures/environment.rs delete mode 100644 interp/src/structures/names.rs delete mode 100644 interp/src/structures/state_views.rs delete mode 100644 interp/src/structures/stk_env.rs diff --git a/interp/src/structures/environment.rs b/interp/src/structures/environment.rs deleted file mode 100644 index 51e51f2c24..0000000000 --- a/interp/src/structures/environment.rs +++ /dev/null @@ -1,736 +0,0 @@ -//! Environment for interpreter. - -use super::names::{ - ComponentQualifiedInstanceName, GroupQIN, InstanceName, - QualifiedInstanceName, -}; -use super::stk_env::StackMap; -use crate::configuration::Config; -use crate::debugger::name_tree::ActiveTreeNode; -use crate::errors::{InterpreterError, InterpreterResult}; -use crate::interpreter::{ComponentInterpreter, Interpreter}; -use crate::interpreter_ir as iir; -use crate::primitives::{combinational, stateful, Primitive}; -use crate::structures::state_views::StateView; -use crate::{ - utils::{AsRaw, MemoryMap}, - values::Value, -}; -use calyx_ir::{self as ir, RRC}; -use std::collections::{HashMap, HashSet}; -use std::iter::once; -use std::rc::Rc; - -/// A raw pointer reference to a cell. Can only be used as a key, but cannot be -/// used to access the cell itself. -type ConstCell = *const ir::Cell; - -/// A raw pointer reference to a port. As with cell, it is only suitable for use -/// as a key and cannot be used to access the port itself. -type ConstPort = *const ir::Port; - -/// A map defining primitive implementations for Cells. As it is keyed by -/// ConstCell the lifetime of the keys is independent of the actual cells. -pub(crate) type PrimitiveMap = RRC>>; - -/// A map defining values for ports. As it is keyed by ConstPort, the lifetime of -/// the keys is independent of the ports. However as a result it is flat, rather -/// than hierarchical which simplifies the access interface. -type PortValMap = StackMap; - -/// The environment to interpret a Calyx program. -pub struct InterpreterState { - /// Clock count - pub clk: u64, - - /// Mapping from cells to prims. - pub cell_map: PrimitiveMap, - - /// Use raw pointers for hashmap: ports to values - // This is a Smoosher (see stk_env.rs) - pub port_map: PortValMap, - - /// An rc handle to a vec of components - pub context: iir::ComponentCtx, - - /// The name of the component this environment is for. Used for printing the - /// environment state. - pub component: Rc, - - /// A hash set which contains pointers to the cells which are sub-components - /// rather than primitives - pub sub_comp_set: Rc>, - - /// flag which tells the environment to allow certain par conflicts on - /// merging - allow_par_conflicts: bool, -} - -/// Helper functions for the environment. -impl InterpreterState { - /// Construct an environment - /// ctx : A context from the IR - pub fn init_top_level( - ctx: &iir::ComponentCtx, - target: &Rc, - mems: &mut Option, - configs: &Config, - ) -> InterpreterResult { - // only for the main component - let qin = - ComponentQualifiedInstanceName::new_single(target, target.name); - let (map, set) = - Self::construct_cell_map(target, ctx, mems, &qin, configs)?; - - Ok(Self { - context: Rc::clone(ctx), - clk: 0, - port_map: InterpreterState::construct_port_map(target), - cell_map: map, - component: target.clone(), - sub_comp_set: Rc::new(set), - allow_par_conflicts: configs.allow_par_conflicts, - }) - } - - /// A constructor for the interpreter-state of sub-components. The main - /// difference from [InterpreterState::init_top_level] is that this - /// constructor expects the qualified instance name of the parent component, - /// in addition to the other details. - pub fn init( - ctx: &iir::ComponentCtx, - target: &Rc, - mems: &mut Option, - qin: &ComponentQualifiedInstanceName, - configs: &Config, - ) -> InterpreterResult { - let (map, set) = - Self::construct_cell_map(target, ctx, mems, qin, configs)?; - - Ok(Self { - context: Rc::clone(ctx), - clk: 0, - port_map: InterpreterState::construct_port_map(target), - cell_map: map, - component: target.clone(), - sub_comp_set: Rc::new(set), - allow_par_conflicts: configs.allow_par_conflicts, - }) - } - - /// Insert a new value for the given constant port into the environment - pub fn insert>(&mut self, port: P, value: Value) { - self.port_map.set(port.as_raw(), value); - } - - /// An internal helper function which is used to generate a `Box` from the source tree definition. This is only for creating - /// primitive cells. - fn make_primitive( - prim_name: ir::Id, - params: &ir::Binding, - cell_name: ir::Id, - mems: &mut Option, - qin_name: &ComponentQualifiedInstanceName, - configs: &Config, - ) -> InterpreterResult> { - let cell_qin = QualifiedInstanceName::new(qin_name, cell_name).as_id(); - Ok(match prim_name.as_ref() { - "std_const" => { - Box::new(combinational::StdConst::new(params, cell_qin)) - } - // unsigned and signed basic arith - "std_add" | "std_sadd" => Box::new(combinational::StdAdd::new( - params, - cell_qin, - configs.error_on_overflow, - )), - "std_sub" | "std_ssub" => Box::new(combinational::StdSub::new( - params, - cell_qin, - configs.error_on_overflow, - )), - // fp basic arith - "std_fp_sadd" | "std_fp_add" => { - Box::new(combinational::StdFpAdd::new( - params, - cell_qin, - configs.error_on_overflow, - )) - } - "std_fp_ssub" | "std_fp_sub" => { - Box::new(combinational::StdFpSub::new( - params, - cell_qin, - configs.error_on_overflow, - )) - } - // unsigned arith - "std_mult_pipe" => { - Box::new(stateful::StdMultPipe::::new( - params, - cell_qin, - configs.error_on_overflow, - )) - } - "std_div_pipe" => Box::new(stateful::StdDivPipe::::new( - params, - cell_qin, - configs.error_on_overflow, - )), - "sqrt" => { - Box::new(stateful::StdSqrt::::new(params, cell_qin)) - } - "fp_sqrt" => { - Box::new(stateful::StdSqrt::::new(params, cell_qin)) - } - - // signed arith - "std_smult_pipe" => { - Box::new(stateful::StdMultPipe::::new( - params, - cell_qin, - configs.error_on_overflow, - )) - } - "std_sdiv_pipe" => Box::new(stateful::StdDivPipe::::new( - params, - cell_qin, - configs.error_on_overflow, - )), - // fp unsigned arith - "std_fp_mult_pipe" => Box::new( - stateful::StdFpMultPipe::::new(params, cell_qin), - ), - "std_fp_div_pipe" => { - Box::new(stateful::StdFpDivPipe::::new(params, cell_qin)) - } - // fp signed arith - "std_fp_smult_pipe" => { - Box::new(stateful::StdFpMultPipe::::new(params, cell_qin)) - } - "std_fp_sdiv_pipe" => { - Box::new(stateful::StdFpDivPipe::::new(params, cell_qin)) - } - // unsigned shifts - "std_lsh" => Box::new(combinational::StdLsh::new(params, cell_qin)), - "std_rsh" => Box::new(combinational::StdRsh::new(params, cell_qin)), - // Logical operators - "std_and" => Box::new(combinational::StdAnd::new(params, cell_qin)), - "std_or" => Box::new(combinational::StdOr::new(params, cell_qin)), - "std_xor" => Box::new(combinational::StdXor::new(params, cell_qin)), - "std_not" => Box::new(combinational::StdNot::new(params, cell_qin)), - "std_wire" => { - Box::new(combinational::StdWire::new(params, cell_qin)) - } - // Unsigned Comparison - "std_ge" => Box::new(combinational::StdGe::new(params, cell_qin)), - "std_le" => Box::new(combinational::StdLe::new(params, cell_qin)), - "std_lt" => Box::new(combinational::StdLt::new(params, cell_qin)), - "std_gt" => Box::new(combinational::StdGt::new(params, cell_qin)), - "std_eq" => Box::new(combinational::StdEq::new(params, cell_qin)), - "std_neq" => Box::new(combinational::StdNeq::new(params, cell_qin)), - // Signed Comparison - "std_sge" => Box::new(combinational::StdSge::new(params, cell_qin)), - "std_sle" => Box::new(combinational::StdSle::new(params, cell_qin)), - "std_slt" => Box::new(combinational::StdSlt::new(params, cell_qin)), - "std_sgt" => Box::new(combinational::StdSgt::new(params, cell_qin)), - "std_seq" => Box::new(combinational::StdSeq::new(params, cell_qin)), - "std_sneq" => { - Box::new(combinational::StdSneq::new(params, cell_qin)) - } - // unsigned FP comparison - "std_fp_gt" => { - Box::new(combinational::StdFpGt::new(params, cell_qin)) - } - // signed FP comparison - "std_fp_sgt" => { - Box::new(combinational::StdFpSgt::new(params, cell_qin)) - } - "std_fp_slt" => { - Box::new(combinational::StdFpSlt::new(params, cell_qin)) - } - // Resizing ops - "std_bit_slice" => { - Box::new(combinational::StdBitSlice::new(params, cell_qin)) - } - "std_slice" => { - Box::new(combinational::StdSlice::new(params, cell_qin)) - } - "std_pad" => Box::new(combinational::StdPad::new(params, cell_qin)), - // State components - "std_reg" => Box::new(stateful::mem::StdReg::new(params, cell_qin)), - "comb_mem_d1" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::StdMemD1::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::StdMemD1::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "comb_mem_d2" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::StdMemD2::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::StdMemD2::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "comb_mem_d3" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::StdMemD3::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::StdMemD3::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "comb_mem_d4" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::StdMemD4::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::StdMemD4::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "seq_mem_d1" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::SeqMemD1::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::SeqMemD1::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "seq_mem_d2" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::SeqMemD2::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::SeqMemD2::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "seq_mem_d3" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::SeqMemD3::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::SeqMemD3::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - "seq_mem_d4" => { - let init = mems.as_mut().and_then(|x| x.remove(&cell_name)); - - match init { - Some(vals) => { - Box::new(stateful::mem::SeqMemD4::from_initial_mem( - params, - cell_qin, - configs.allow_invalid_memory_access, - vals, - )?) - } - None => Box::new(stateful::mem::SeqMemD4::new( - params, - cell_qin, - configs.allow_invalid_memory_access, - )), - } - } - // Unsynthesizeable operators - "std_unsyn_mult" => { - Box::new(combinational::StdUnsynMult::new(params, cell_qin)) - } - "std_unsyn_div" => { - Box::new(combinational::StdUnsynDiv::new(params, cell_qin)) - } - "std_unsyn_smult" => { - Box::new(combinational::StdUnsynSmult::new(params, cell_qin)) - } - "std_unsyn_sdiv" => { - Box::new(combinational::StdUnsynSdiv::new(params, cell_qin)) - } - "std_unsyn_mod" => { - Box::new(combinational::StdUnsynMod::new(params, cell_qin)) - } - "std_unsyn_smod" => { - Box::new(combinational::StdUnsynSmod::new(params, cell_qin)) - } - - p => { - return Err( - InterpreterError::UnknownPrimitive(p.to_string()).into() - ) - } - }) - } - - /// An internal helper function which inflates a mapping for all cells in a - /// component, recursively realizing sub-components as needed. - fn construct_cell_map( - comp: &Rc, - ctx: &iir::ComponentCtx, - mems: &mut Option, - qin_name: &ComponentQualifiedInstanceName, - configs: &Config, - ) -> InterpreterResult<(PrimitiveMap, HashSet)> { - let mut map = HashMap::new(); - let mut set = HashSet::new(); - for cell in comp.cells.iter() { - let cl: &ir::Cell = &cell.borrow(); - - match &cl.prototype { - ir::CellType::Primitive { - name, - param_binding, - is_comb: _, - latency: _, - } => { - map.insert( - cl as ConstCell, - Self::make_primitive( - *name, - param_binding, - cl.name(), - mems, - qin_name, - configs, - )?, - ); - } - ir::CellType::Component { name } => { - let inner_comp = - ctx.iter().find(|x| x.name == name).unwrap(); - let qin = qin_name - .new_extend(InstanceName::new(inner_comp, cl.name())); - let env = - Self::init(ctx, inner_comp, &mut None, &qin, configs)?; - let comp_interp: Box = - Box::new(ComponentInterpreter::from_component( - inner_comp, env, qin, - )); - set.insert(cl.as_raw()); - map.insert(cl as ConstCell, comp_interp); - } - _ => {} - } - } - Ok((ir::rrc(map), set)) - } - - /// A helper meathod which constructs the initial environment map from ports - /// to values and provides the appropriate default values for ports - /// depending on their parent cell. - fn construct_port_map(comp: &iir::Component) -> PortValMap { - let mut map = HashMap::new(); - - for port in comp.signature.borrow().ports.iter() { - let pt: &ir::Port = &port.borrow(); - map.insert(pt as ConstPort, Value::zeroes(pt.width as usize)); - } - for group in comp.groups.iter() { - let grp = group.borrow(); - for hole in &grp.holes { - let pt: &ir::Port = &hole.borrow(); - map.insert(pt as ConstPort, Value::zeroes(pt.width as usize)); - } - } - for cell in comp.cells.iter() { - //also iterate over groups cuz they also have ports - //iterate over ports, getting their value and putting into map - let cll = cell.borrow(); - match &cll.prototype { - ir::CellType::Constant { val, width } => { - for port in &cll.ports { - let pt: &ir::Port = &port.borrow(); - map.insert(pt as ConstPort, Value::from(*val, *width)); - } - } - ir::CellType::Primitive { .. } => { - for port in &cll.ports { - let pt: &ir::Port = &port.borrow(); - map.insert( - pt as ConstPort, - Value::from( - cll.get_parameter("VALUE").unwrap_or_default(), - pt.width, - ), - ); - } - } - ir::CellType::Component { .. } => { - for port in &cll.ports { - let pt: &ir::Port = &port.borrow(); - map.insert( - pt as ConstPort, - Value::zeroes(pt.width as usize), - ); - } - } - _ => unreachable!(), - } - } - - map.into() - } - - /// Return the value associated with a component's port. - pub fn get_from_port>(&self, port: P) -> &Value { - self.port_map.get(&port.as_raw()).unwrap() - } - - /// Outputs the cell state; - // TODO (write to a specified output in the future) We could do the printing - // of values here for tracing purposes as discussed. Could also have a - // separate DS that we could put the cell states into for more custom tracing - pub fn print_env(&self) { - println!("{}", serde_json::to_string_pretty(&self).unwrap()); - } - - /// Serializes the full environment state with a base64 string encoding - /// rather than providing a numeric interpretation for values. - pub fn print_env_raw(&self) { - let sv: StateView = self.into(); - println!( - "{}", - serde_json::to_string_pretty(&sv.gen_serializer(true)).unwrap() - ); - } - /// A predicate that checks if the given cell points to a combinational - /// primitive (or component?) - pub fn cell_is_comb>(&self, cell: C) -> bool { - self.cell_map - .borrow() - .get(&cell.as_raw()) - .unwrap() - .is_comb() - } - - /// Creates a fork of the source environment which has the same clock and - /// underlying primitive map but whose stack environment has been forked - /// from the source's stack environment allowing divergence from the fork - /// point - pub fn fork(&mut self) -> Self { - let other_pv_map = if self.port_map.top().is_empty() { - self.port_map.fork_from_tail() - } else { - self.port_map.fork() - }; - Self { - clk: self.clk, - cell_map: self.cell_map.clone(), - port_map: other_pv_map, - context: Rc::clone(&self.context), - component: self.component.clone(), - sub_comp_set: Rc::clone(&self.sub_comp_set), - allow_par_conflicts: self.allow_par_conflicts, - } - } - /// Creates a fork of the source environment which has the same clock and - /// underlying primitive map but whose stack environment has been forked - /// from the source's stack environment allowing divergence from the fork - /// point. This forces the creation of a new layer, unlike fork - pub fn force_fork(&mut self) -> Self { - Self { - clk: self.clk, - cell_map: self.cell_map.clone(), - port_map: self.port_map.fork(), - context: Rc::clone(&self.context), - component: self.component.clone(), - sub_comp_set: Rc::clone(&self.sub_comp_set), - allow_par_conflicts: self.allow_par_conflicts, - } - } - - /// Merge the given environments. Must be called from the root environment - pub fn merge_many( - mut self, - others: Vec, - overlap: &HashSet<*const ir::Port>, - ) -> InterpreterResult { - let clk = others - .iter() - .chain(once(&self)) - .map(|x| x.clk) - .max() - .unwrap(); // safe because of once - - let port_map = self.port_map; - let merged = port_map.merge_many( - others.into_iter().map(|x| x.port_map).collect(), - overlap, - self.allow_par_conflicts, - ); - - self.port_map = match merged { - Ok(ok) => Ok(ok), - Err(e) => { - let mut ie: InterpreterError = e.into(); - if let InterpreterError::ParOverlap { parent_id, .. } = &mut ie - { - // this is just to make the error point toward the component, rather - // than printing "_this" - if parent_id == "_this" { - *parent_id = self.component.name - } - } - Err(ie) - } - }?; - - self.clk = clk; - - Ok(self) - } - - /// Evaluates the truth value of a guard under the current environment. It - /// can error if the program checks the truth value of a port which is not - /// exactly one bit. - pub fn eval_guard( - &self, - guard: &ir::Guard, - ) -> InterpreterResult { - Ok(match guard { - ir::Guard::Or(g1, g2) => { - self.eval_guard(g1)? || self.eval_guard(g2)? - } - ir::Guard::And(g1, g2) => { - self.eval_guard(g1)? && self.eval_guard(g2)? - } - ir::Guard::Not(g) => !self.eval_guard(g)?, - ir::Guard::CompOp(op, g1, g2) => { - let p1 = self.get_from_port(&g1.borrow()); - let p2 = self.get_from_port(&g2.borrow()); - match op { - ir::PortComp::Eq => p1 == p2, - ir::PortComp::Neq => p1 != p2, - ir::PortComp::Gt => p1 > p2, - ir::PortComp::Lt => p1 < p2, - ir::PortComp::Geq => p1 >= p2, - ir::PortComp::Leq => p1 <= p2, - } - } - ir::Guard::Port(p) => { - let val = self.get_from_port(&p.borrow()); - if val.len() != 1 { - let can = p.borrow().canonical(); - return Err(InterpreterError::InvalidBoolCast( - (can.cell, can.port), - p.borrow().width, - ) - .into()); - } else { - val.as_bool() - } - } - ir::Guard::True => true, - ir::Guard::Info(_) => panic!("unimplemented"), - }) - } - - /// Provides a hash set containing the qualified names of the currently - /// active sub-components - pub fn sub_component_currently_executing(&self) -> HashSet { - let lookup = self.cell_map.borrow(); - - self.sub_comp_set - .iter() - .flat_map(|x| { - lookup[x] - .get_comp_interpreter() - .unwrap() - .currently_executing_group() - }) - .collect() - } - - pub fn as_state_view(&self) -> StateView<'_> { - self.into() - } - - pub fn get_active_tree(&self) -> Vec { - let lookup = self.cell_map.borrow(); - - self.sub_comp_set - .iter() - .flat_map(|x| { - lookup[x].get_comp_interpreter().unwrap().get_active_tree() - }) - .collect() - } -} diff --git a/interp/src/structures/mod.rs b/interp/src/structures/mod.rs index b0cbf6b17f..3a8f76794c 100644 --- a/interp/src/structures/mod.rs +++ b/interp/src/structures/mod.rs @@ -1,5 +1 @@ -pub mod environment; -pub mod names; -pub mod state_views; -pub mod stk_env; pub mod values; diff --git a/interp/src/structures/names.rs b/interp/src/structures/names.rs deleted file mode 100644 index 5da0ee7b40..0000000000 --- a/interp/src/structures/names.rs +++ /dev/null @@ -1,242 +0,0 @@ -use crate::interpreter_ir as iir; -use calyx_ir::Id; -use itertools::Itertools; -use std::{ - fmt::{Display, Write}, - hash::Hash, - ops::Deref, - rc::Rc, -}; - -#[derive(Debug, Clone)] -/// A portion of a qualified name representing an instance of a Calyx component. -pub struct InstanceName { - /// Handle to the component definition - pub component_id: Rc, - /// The name of the instance - pub instance: Id, -} - -impl InstanceName { - pub fn new(component_id: &Rc, instance: Id) -> Self { - Self { - component_id: component_id.clone(), - instance, - } - } -} - -impl Hash for InstanceName { - fn hash(&self, state: &mut H) { - (&*self.component_id as *const iir::Component).hash(state); - self.instance.hash(state); - } -} - -impl PartialEq for InstanceName { - fn eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.component_id, &other.component_id) - && self.instance == other.instance - } -} - -impl Eq for InstanceName {} - -#[derive(Debug, Clone, Hash, PartialEq, Eq)] -pub struct ComponentQualifiedInstanceName(Rc>); - -impl ComponentQualifiedInstanceName { - pub fn as_id(&self) -> Id { - let name = self.0.iter().map(|x| x.instance.id.as_str()).join("."); - Id::from(name) - } -} - -impl Deref for ComponentQualifiedInstanceName { - type Target = Vec; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl ComponentQualifiedInstanceName { - pub fn new_extend(&self, inst: InstanceName) -> Self { - let mut inner = (*self.0).clone(); - inner.push(inst); - Self(Rc::new(inner)) - } - - pub fn new_single(component_id: &Rc, instance: Id) -> Self { - let inst = InstanceName::new(component_id, instance); - Self::from(inst) - } -} - -impl> From for ComponentQualifiedInstanceName { - fn from(input: T) -> Self { - let inst: InstanceName = input.into(); - Self(Rc::new(vec![inst])) - } -} - -#[derive(Debug, Clone, Hash, PartialEq, Eq)] -/// The fully-qualified instance name of some calyx entity -pub struct QualifiedInstanceName { - /// The instance names of the ancestors in the state tree - prefix: ComponentQualifiedInstanceName, - /// Cell/group/port name - name: Id, -} - -impl QualifiedInstanceName { - pub fn as_id(&self) -> Id { - let mut string_vec: Vec = self - .prefix - .iter() - .map(|x| x.instance.id.as_str().to_string()) - .collect(); - string_vec.push(self.name.id.as_str().to_string()); - string_vec.join(".").into() - } - - pub fn get_suffix(&self) -> Id { - self.name - } - - pub fn new(prefix: &ComponentQualifiedInstanceName, name: Id) -> Self { - Self { - prefix: prefix.clone(), - name, - } - } - - pub fn prefix_length(&self) -> usize { - self.prefix.0.len() - } - - pub fn shared_prefix_of(&self, other: &Self) -> bool { - for (a, b) in self.prefix.0.iter().zip(other.prefix.0.iter()) { - if a != b { - return false; - } - } - true - } - - pub fn equal_prefix(&self, other: &Self) -> bool { - self.prefix == other.prefix - } -} - -#[derive(Debug, Clone)] -pub enum GroupName { - /// An actual group - Group(Id), - /// A phantom group with a displayable name - Phantom(Id), - /// No group name (this allows components to be in the tree) - None, -} - -#[derive(Clone)] -pub struct GroupQualifiedInstanceName { - pub prefix: ComponentQualifiedInstanceName, - pub group: GroupName, - pub pos_tag: Option, -} - -impl GroupQualifiedInstanceName { - pub fn new_group(comp: &ComponentQualifiedInstanceName, name: Id) -> Self { - Self { - prefix: comp.clone(), - group: GroupName::Group(name), - pos_tag: None, - } - } - - pub fn new_phantom( - comp: &ComponentQualifiedInstanceName, - name: Id, - ) -> Self { - Self { - prefix: comp.clone(), - group: GroupName::Phantom(name), - pos_tag: None, - } - } - - pub fn new_empty(comp: &ComponentQualifiedInstanceName) -> Self { - Self { - prefix: comp.clone(), - group: GroupName::None, - pos_tag: None, - } - } - - pub fn is_leaf(&self) -> bool { - !matches!(&self.group, GroupName::None) - } - - pub fn has_tag(&self) -> bool { - self.pos_tag.is_some() - } - - pub fn format_name(&self) -> String { - let mut out: String = self.prefix.as_id().to_string(); - match &self.group { - GroupName::Group(g) => write!(out, "::{}", g).unwrap(), - GroupName::Phantom(g) => write!(out, "::<{}>", g).unwrap(), - GroupName::None => {} - } - out - } - - pub fn with_tag(mut self, tag: Option) -> Self { - self.pos_tag = tag; - self - } -} - -impl std::fmt::Debug for GroupQualifiedInstanceName { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("GroupQualifiedInstanceName") - .field("prefix", &self.prefix.as_id()) - .field("group", &self.group) - .field("tag", &self.pos_tag) - .finish() - } -} - -pub type GroupQIN = QualifiedInstanceName; - -#[derive(Debug, Clone, Hash, Eq, PartialEq)] -pub struct CompGroupName { - pub group_name: Id, - pub component_name: Id, -} - -impl From for CompGroupName { - fn from(qin: GroupQIN) -> Self { - let last = qin.prefix.last().unwrap(); - Self { - group_name: qin.name, - component_name: last.component_id.name, - } - } -} - -impl CompGroupName { - pub fn new(group_name: Id, component_name: Id) -> Self { - Self { - group_name, - component_name, - } - } -} - -impl Display for CompGroupName { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}::{}", self.component_name, self.group_name) - } -} diff --git a/interp/src/structures/state_views.rs b/interp/src/structures/state_views.rs deleted file mode 100644 index 8f09a7bb78..0000000000 --- a/interp/src/structures/state_views.rs +++ /dev/null @@ -1,365 +0,0 @@ -//! Structures and Traits for viewing the state of the interpreter environment -//! -//! Unless you REALLY need to be here, all this irritating stuff is best left -//! alone because it is fiddly and not all that interesting. - -use std::{ - collections::{BTreeMap, HashSet}, - rc::Rc, -}; - -use crate::{ - debugger::{name_tree::ActiveTreeNode, PrintCode}, - environment::{InterpreterState, PrimitiveMap}, - interpreter::ConstCell, - interpreter_ir as iir, - primitives::Primitive, - serialization::{Entry, Serializable}, - utils::AsRaw, - values::Value, -}; -use calyx_ir::{self as ir, RRC}; -use serde::Serialize; - -use super::names::GroupQIN; - -/// A concrete type wrapping a single borrowed reference and a vector of states. -/// The former corresponds to the root environment of a par split while the -/// latter contains the views for each par child. -#[derive(Clone)] -pub struct CompositeView<'a>(&'a InterpreterState, Vec>); - -impl<'a> CompositeView<'a> { - /// Basic constructor for the struct - pub fn new(state: &'a InterpreterState, vec: Vec>) -> Self { - Self(state, vec) - } -} - -/// An enum type wrapping the two possible concrete immutable state views. -#[derive(Clone)] -pub enum StateView<'inner> { - /// Variant for a single [InterpreterState] - SingleView(&'inner InterpreterState), - /// Variant for state views which correspond to multiple par branches - Composite(CompositeView<'inner>), -} - -/// The mutable analogue to [CompositeView]. As with that struct, the first -/// reference is the root environment of the par split and the latter vec is the -/// environment for each of the par children. -pub struct MutCompositeView<'a>( - &'a mut InterpreterState, - Vec>, -); - -/// The mutable analogue to [StateView]. -pub enum MutStateView<'inner> { - /// Variant for a single [InterpreterState] - Single(&'inner mut InterpreterState), - /// Variant for a composite view corresponding to the state during the - /// execution of a par block - Composite(MutCompositeView<'inner>), -} - -impl<'inner> MutCompositeView<'inner> { - /// Basic constructor for the struct - pub fn new( - state: &'inner mut InterpreterState, - vec: Vec>, - ) -> Self { - Self(state, vec) - } - - /// Updates the value of the given port to the given value in the - /// environment state. Note that this means updating the value in all arms - /// of the children and the root state (this latter point is needed to avoid - /// issues) - pub fn insert

(&mut self, port: P, value: Value) - where - P: AsRaw, - { - let raw = port.as_raw(); - self.0.insert(raw, value.clone()); - for view in self.1.iter_mut() { - view.insert(raw, value.clone()) - } - } -} - -impl<'a> From<&'a mut InterpreterState> for MutStateView<'a> { - fn from(env: &'a mut InterpreterState) -> Self { - Self::Single(env) - } -} - -impl<'a> From> for MutStateView<'a> { - fn from(mv: MutCompositeView<'a>) -> Self { - Self::Composite(mv) - } -} - -impl<'a> MutStateView<'a> { - /// Updates the value of the given port to the given value for this state - /// view. - pub fn insert>(&mut self, port: P, value: Value) { - match self { - MutStateView::Single(s) => s.insert(port, value), - MutStateView::Composite(c) => c.insert(port, value), - } - } -} - -impl<'a> From<&'a InterpreterState> for StateView<'a> { - fn from(env: &'a InterpreterState) -> Self { - Self::SingleView(env) - } -} - -impl<'a> From> for StateView<'a> { - fn from(cv: CompositeView<'a>) -> Self { - Self::Composite(cv) - } -} - -impl<'a> StateView<'a> { - /// Lookup the value of the given port in the current environment. - /// - /// # Panics - /// If there is no value for the port anywhere - /// - /// If multiple parallel arms have assigned to the port and disagree on its value - /// - /// # TODO (Griffin): - /// This should probably have an option/result variant to surface the - /// parallel disagreement more effectively and avoid erroring out - pub fn lookup>(&self, target: P) -> &Value { - match self { - StateView::SingleView(sv) => sv.get_from_port(target), - StateView::Composite(cv) => match cv.1.len() { - 0 => cv.0.get_from_port(target), - 1 => cv.1[0].lookup(target), - _ => { - let original = cv.0.get_from_port(target.as_raw()); - let new = - cv.1.iter() - .filter_map(|x| { - let val = x.lookup(target.as_raw()); - if val == original { - None - } else { - Some(val) - } - }) - .collect::>(); - match new.len() { - 0 => original, - 1 => new[0], - _ => panic!("conflicting parallel values"), - } - } - }, - } - } - - /// A wrapper over [InterpreterState::sub_component_currently_executing] - /// - /// TODO (Griffin): This will need to change pending updates to the cell map - /// as it currently relies on the fact that the map is shared across all - /// forks of the environment - pub fn sub_component_currently_executing(&self) -> HashSet { - match self { - StateView::SingleView(sv) => sv.sub_component_currently_executing(), - StateView::Composite(c) => c.0.sub_component_currently_executing(), - } - } - - /// An accessor for the IR context - pub fn get_ctx(&self) -> &iir::ComponentCtx { - match self { - StateView::SingleView(sv) => &sv.context, - StateView::Composite(cv) => &cv.0.context, - } - } - - /// An accessor fo the cell map of the environment - pub fn get_cell_map(&self) -> &PrimitiveMap { - match self { - StateView::SingleView(sv) => &sv.cell_map, - StateView::Composite(cv) => &cv.0.cell_map, - } - } - - /// An accessor for the component at the root of this environment - pub fn get_comp(&self) -> &Rc { - match self { - StateView::SingleView(c) => &c.component, - StateView::Composite(c) => &c.0.component, - } - } - /// A wrapper over [InterpreterState::get_active_tree] - pub fn get_active_tree(&self) -> Vec { - match self { - StateView::SingleView(c) => c.get_active_tree(), - StateView::Composite(c) => c.0.get_active_tree(), - } - } - - /// An accessor which looks up the representation of a the given cell's - /// state, defaulting to [Serializable::Empty] if no state is present - pub fn get_cell_state>( - &self, - cell: R, - print_code: &PrintCode, - ) -> Serializable { - let map = self.get_cell_map(); - let map_ref = map.borrow(); - map_ref - .get(&cell.as_raw()) - .map(|x| Primitive::serialize(&**x, Some(*print_code))) - .unwrap_or(Serializable::Empty) - } - - /// Returns a string representing the current state of the environment. This - /// just serializes the environment to a string and returns that string - pub fn state_as_str(&self) -> String { - serde_json::to_string_pretty(&self.gen_serializer(false)).unwrap() - } - - /// Return a vector RRCs for all cells (across any component) which have the given - /// name - pub fn get_cells(&self, name: S) -> Vec> - where - S: Into + Clone, - { - let ctx_ref = self.get_ctx(); - ctx_ref - .iter() - .filter_map(|x| x.find_cell(name.clone())) - .collect() - } - - /// Return an RRC for the given cell if it exists within the root component - /// of the environment. Otherwise None - pub fn get_cell(&self, name: S) -> Option> - where - S: Into + Clone, - { - match self { - StateView::SingleView(sv) => sv.component.find_cell(name), - StateView::Composite(cv) => cv.0.component.find_cell(name), - } - } - - /// Generate a serializable representation of the environment. Used to - /// display the environment at the current component or to output at the end - /// of the program. - /// - /// Note this code is a complete nightmare and I apologize for it - pub fn gen_serializer(&self, raw: bool) -> FullySerialize { - let ctx = self.get_ctx(); - let cell_prim_map = &self.get_cell_map().borrow(); - - let bmap: BTreeMap<_, _> = ctx - .iter() - .filter(|x| x.name == self.get_comp().name) // there should only be one such comp - .map(|comp| { - let inner_map: BTreeMap<_, _> = comp - .cells - .iter() - .map(|cell| { - let inner_map: BTreeMap<_, _> = cell - .borrow() - .ports - .iter() - .map(|port| { - let value = self.lookup(port.as_raw()); - - ( - port.borrow().name, - if port.borrow().attributes.has( - ir::Attribute::Unknown( - "interp_signed".into(), - ), - ) { - value.as_i64().into() - } else { - value.as_u64().into() - }, - ) - }) - .collect(); - (cell.borrow().name(), inner_map) - }) - .collect(); - (comp.name, inner_map) - }) - .collect(); - let cell_map: BTreeMap<_, _> = ctx - .iter() - .filter(|x| x.name == self.get_comp().name) - .map(|comp| { - let inner_map: BTreeMap<_, _> = comp - .cells - .iter() - .filter_map(|cell_ref| { - let cell = cell_ref.borrow(); - if cell.get_attribute(ir::BoolAttr::External).is_some() - { - if let Some(prim) = cell_prim_map - .get(&(&cell as &ir::Cell as ConstCell)) - { - if !prim.is_comb() { - return Some(( - cell.name(), - Primitive::serialize( - &**prim, - raw.then_some(PrintCode::Binary), - ), //TODO Griffin: Fix this - )); - } - } - } - None - }) - .collect(); - (comp.name, inner_map) - }) - .collect(); - - FullySerialize { - ports: bmap, - memories: cell_map, - } - } -} - -#[allow(clippy::borrowed_box)] -#[derive(Serialize, Clone)] -/// Struct to fully serialize the internal state of the environment -pub struct FullySerialize { - /// The serializable map of the port values - ports: BTreeMap>>, - /// The serializable map of the stateful cell values (generally just - /// memories and registers) - memories: BTreeMap>, -} - -impl<'a> Serialize for StateView<'a> { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - self.gen_serializer(false).serialize(serializer) - } -} - -impl Serialize for InterpreterState { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - let sv: StateView = self.into(); - sv.gen_serializer(false).serialize(serializer) - } -} diff --git a/interp/src/structures/stk_env.rs b/interp/src/structures/stk_env.rs deleted file mode 100644 index 8a0c53195b..0000000000 --- a/interp/src/structures/stk_env.rs +++ /dev/null @@ -1,1202 +0,0 @@ -use std::collections::{HashMap, HashSet}; -use std::convert::TryInto; -use std::hash::Hash; -use std::mem; -use std::rc::Rc; - -/// A handle to a singly linked list -/// From "Learning Rust with Entirely Too Many Linked Lists" (2018), Chapter 4.5: -/// -#[derive(Debug)] -pub struct List { - /// A link to the head node for this particular list. If this link is None - /// then the list is empty - head: Link, -} - -/// A type alias for the links between entries in the list -type Link = Option>>; - -/// A structure representing a single list node which contains some element and -/// a link of type [Link] which may be empty. -#[derive(Debug)] -struct Node { - /// The actual element stored at this node - elem: T, - /// A (possibly empty) link to the following node in the list - next: Link, -} - -impl Clone for List { - fn clone(&self) -> Self { - List { - head: self.head.clone(), - } - } -} - -// This is necessary to avoid the recursive default constructor for the type -impl Drop for List { - fn drop(&mut self) { - let mut head = self.head.take(); - while let Some(node) = head { - if let Ok(mut node) = Rc::try_unwrap(node) { - head = node.next.take(); - } else { - break; - } - } - } -} - -impl List { - /// Returns the head of the list, removing it from the surrounding RC. If - /// there is no head node (the list is empty) or if it is not possible to - /// unwrap the head (there are multiple references to it) then the Err - /// returns the original list handle. - fn unwrap_head(mut self) -> Result, Self> { - if let Some(head) = self.head.take() { - match Rc::try_unwrap(head) { - Ok(n) => Ok(n), - Err(rc) => { - self.head = Some(rc); - Err(self) - } - } - } else { - Err(self) - } - } -} - -impl Default for List { - fn default() -> Self { - Self { head: None } - } -} - -/// The underlying, functional linked list used by the Smoosher. -/// Taken from "Learning Rust with Entirely Too Many Linked Lists" (2018), Chapter 4.5 -/// Added the [List::same_head], [List::is_empty], and [List::split] functions. -impl List { - /// Default constructor which returns the empty list of the appropriate type. - /// This just defers to [Default::default] for the type. - #[inline] - pub fn new() -> Self { - Self::default() - } - - /// Tests if the nodes at the head of `self` and `other` are equal; - /// that is if the Rc points to the same location. - /// # Example - /// ``` - /// use interp::stk_env::List; - /// let l1 = List::new().push(1).push(2); - /// let l2 = l1.push(3); - /// let l3 = l1.push(4); - /// if let (Some(_), l2) = List::split(l2) { - /// if let (Some(_), l3) = List::split(l3) { - /// assert!(List::same_head(&l2, &l3)); - /// } - /// } else { - /// panic!("split gave None") - /// } - /// ``` - pub fn same_head(&self, other: &Self) -> bool { - if Option::is_none(&self.head) || Option::is_none(&other.head) { - return false; - } - let self_head = self.head.as_ref().unwrap(); - let other_head = other.head.as_ref().unwrap(); - Rc::as_ptr(self_head) == Rc::as_ptr(other_head) - } - - /// Tests if the head of `self` is [None], or [Some(nd)] - /// - /// # Example - /// ``` - /// use interp::stk_env::List; - /// let l1 = List::new(); - /// assert!(l1.is_empty()); - /// let l1 = l1.push(3); - /// assert_eq!(l1.is_empty(), false); - /// ``` - pub fn is_empty(&self) -> bool { - self.head.is_none() - } - - /// Returns a list identical to `self`, with `elem` pushed onto the front - pub fn push(&self, elem: T) -> List { - List { - head: Some(Rc::new(Node { - elem, - next: self.head.clone(), - })), - } - } - - /// Returns a list identical to `self`, with its head pointing to the second elem of `self` - pub fn tail(&self) -> List { - List { - head: self.head.as_ref().and_then(|node| node.next.clone()), - } - } - - /// Consumes self, returning a tuple of `(self.head : Option, self.tail : List)`, - /// where `tail` is all elements in `self` that are not `head`. If `self` is empty, - /// split will return (None, self) - /// - /// # Panics - /// Because [List::split] consumes self, split panics if multiple lists exist that - /// share (references to the same) elements in their **tail**. - /// # Example - /// Good: - /// ``` - /// use interp::stk_env::List; - /// let l1 = List::new().push(4).push(3); - /// if let (Some(hd), l1) = l1.split(){ - /// assert_eq!(hd, 3); - /// } else { - /// panic!("could not split l1") - /// } - /// ``` - /// Shared tail panic: - /// ```should_panic - /// use interp::stk_env::List; - /// let l1 = List::new().push(4).push(3); - /// let l2 = l1.push(2); - /// //This will panic, because while l1 exists, l2's tail cannot be split: - /// if let (Some(hd), l2) = l2.split() { - /// let tup = l2.split(); - /// } - /// l1.push(5); - /// ``` - pub fn split(self) -> (Option, Self) { - if self.is_empty() { - (None, self) - } else { - match self.unwrap_head() { - Ok(head) => { - let tail_list = List { head: head.next }; //better: not cloning the tail - (Some(head.elem), tail_list) - } - Err(e) => { - panic!("Cannot unwrap the head of this list. You probably tried Smooshing while a fork exists! Current strong count {}", Rc::strong_count(e.head.as_ref().unwrap())); - } - } - } - } - - /// Returns an Option of a pointer to the head of this list - pub fn head(&self) -> Option<&T> { - self.head.as_ref().map(|node| &node.elem) - } - - /// Returns an iterator of immutable references for the list - pub fn iter(&self) -> Iter<'_, T> { - Iter { - next: self.head.as_deref(), - } - } -} - -/// A wrapper struct to implement an immutable iterator for [List] -pub struct Iter<'a, T> { - /// The next reference to be returned from the iterator. If this is None, - /// then the iterator has traversed the whole list - next: Option<&'a Node>, -} - -impl<'a, T> Iterator for Iter<'a, T> { - type Item = &'a T; - - fn next(&mut self) -> Option { - self.next.map(|node| { - self.next = node.next.as_deref(); - &node.elem - }) - } -} - -/// A type alias for the old name to preserve the functionality of the example -/// code. This should be removed once the docs are modified accordingly -pub type Smoosher = StackMap; - -///A Stack of HashMaps that supports scoping -/// -///Invariants: -///=> To Smoosh X levels down, no fork may still exist from any node amongst those -/// X levels. So the stack must look like: -/// ```text -/// _ -/// |_| -/// | -/// _ -/// |_| -/// | -/// _ -/// |_| -/// | -/// ``` -///=> To merge, both branches must share a common fork point -/// ```text -/// _ -/// |_| -/// | -/// _ _ -/// |_| |_| -/// | | -/// \ _ / -/// |*| -/// | -/// ``` -#[derive(Debug)] -pub struct StackMap -where - K: Eq + Hash, - V: Eq, -{ - /// The current top of the stack and the only map which is currently mutable - head: HashMap, - /// The remaining maps (scopes) of the stack which are all read-only - tail: List>, -} - -impl<'a, K: Eq + Hash, V: Eq> From<&'a StackMap> - for HashMap<&'a K, &'a V> -{ - fn from(item: &'a StackMap) -> Self { - //just add all bindings - let mut tr = HashMap::new(); - //first add from head - for (k, v) in HashMap::iter(&item.head) { - tr.insert(k, v); - } - //then from tail - for nd in List::iter(&item.tail) { - for (k, v) in HashMap::iter(nd) { - //add, but only if the binding isn't yet in the HM (preserve scope) - if tr.get(k).is_none() { - tr.insert(k, v); - } - } - } - tr - } -} - -impl From> for StackMap -where - K: Eq + Hash, - V: Eq, -{ - fn from(hm: HashMap) -> Self { - let mut smoosher = StackMap::new(); - smoosher.head = hm; - smoosher - } -} - -impl Default for StackMap -where - K: Eq + Hash, - V: Eq, -{ - fn default() -> Self { - Self { - head: HashMap::new(), - tail: List::new(), - } - } -} - -impl StackMap { - /// The default constructor (an empty stack and map). Defers to [Default::default] - pub fn new() -> StackMap { - Self::default() - } - - /// If `self` and `other` share a fork point, returns a pair (depth_a, depth_b) - /// of the depth which the fork point can be found in `self` and `other`, respectively. - /// NOTE: should be private, only public for testing! - fn shared_fork_point(&self, other: &Self) -> Option<(u64, u64)> { - //check head - if std::ptr::eq(&self.head, &other.head) { - Some((0, 0)) - } else { - //check tail - //these start at 1 b/c head was 0 - let mut a_depth = 1; - //iterate and check all other nodes - for nd in self.tail.iter() { - if let Some(b_dep) = - other.tail.iter().position(|el| std::ptr::eq(nd, el)) - { - return Some((a_depth, (b_dep + 1).try_into().unwrap())); - } - // for nd_other in other.tail.iter() { - // if std::ptr::eq(nd, nd_other) { - // return Some((a_depth, b_depth)); - // } - // b_depth += 1; - // } - a_depth += 1; - } - None //do not share a fork point - } - } - - /// Returns an Option of a pointer to the highest-scoped binding to \[k\], - /// if it exists. Else None. - /// - /// # Example - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut smoosher = Smoosher::new(); - /// smoosher.set("hi!", 1); - /// assert_eq!(*smoosher.get(&"hi!").unwrap(), 1); - /// assert_eq!(smoosher.get(&"hey"), None); - /// ``` - pub fn get(&self, k: &K) -> Option<&V> { - //first check if it's in the highest one - if let Some(val) = self.head.get(k) { - Some(val) - } else { - //then check if it's anywhere in the other list - let mut iter = self.tail.iter(); - iter.find_map(|hm| hm.get(k)) - } - } - - /// ```text - /// Sets a new binding of [k] to [v] in the highest scope. - /// Guarantees that all following calls to [get(&k)] will return [&v], - /// granted no new binding is set with [set] - /// ``` - /// # Example - /// Using one scope: - /// ```rust - /// use interp::stk_env::Smoosher; - /// let mut smoosher = Smoosher::new(); - /// smoosher.set("hi!", 1); - /// assert_eq!(*smoosher.get(&"hi!").unwrap(), 1); - /// smoosher.set("hi!", 2); - /// assert_eq!(*smoosher.get(&"hi!").unwrap(), 2); - /// ``` - /// More than one scope: - /// ```rust - /// use interp::stk_env::Smoosher; - /// let mut smoosher = Smoosher::new(); - /// smoosher.set("hi!", 1); - /// assert_eq!(*smoosher.get(&"hi!").unwrap(), 1); - /// smoosher.new_scope(); //scopes themselves do not affect gets, only new sets do. - /// assert_eq!(*smoosher.get(&"hi!").unwrap(), 1); - /// smoosher.set("hi!", 2); - /// assert_eq!(*smoosher.get(&"hi!").unwrap(), 2); - /// ``` - pub fn set(&mut self, k: K, v: V) { - self.head.insert(k, v); - } - - /// ```text - /// Returns a new Smoosher and mutates `self`. The new Smoosher has a new scope - /// as [head] and all of (pre-mutation) `self` as [tail]. `self` has a fresh scope pushed onto - /// it. Invariant this method enforces: you cannot mutate a scope that has children - /// forks (you can only mutate the fresh scope applied atop it) - /// ``` - /// # Examples - /// ## Pictorial Example - /// ```text - /// [A] - /// ``` - /// let B = A.fork(); - /// ```text - /// [B] [A'] <- Both B and A' point to empty nodes spawned off A - /// | | - /// \ / - /// | - /// [A] - /// ``` - /// ## Code Example - /// ```rust - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// let mut b = a.fork(); - /// a.set("hey", 2); - /// b.set("hey", 3); - /// assert_eq!(*a.get(&"hi!").unwrap(), *b.get(&"hi!").unwrap()); - /// assert_eq!(*a.get(&"hey").unwrap(), 2); - /// assert_eq!(*b.get(&"hey").unwrap(), 3); - /// ``` - pub fn fork(&mut self) -> Self { - //first save self's head, and replace it with a clean HM - let old_head = mem::take(&mut self.head); //can replace with mem::take() - //create tail to both Self and the new Smoosher - let new_tail = self.tail.push(old_head); - //update Self and create new Smoosher - self.tail = new_tail.clone(); //will this die after the end of [fork]? no - StackMap { - head: HashMap::new(), - tail: new_tail, - } - } - - /// ```text - /// Returns a new smoosher that is forked from the tail of the self. This is - /// needed when we want to have multiple forks from the same fork point, - /// since the usual fork() mutates self by adding a new scope onto it. If - /// we fork() once, and then for all other fork instances use fork_from_tail(), - /// we will have an arbitraty number of forks with a common fork point, so - /// after they can be merged with merge_many(). Requires that the head of - /// self is empty so that we can only form from tail when we are creating - /// multiple forks. - /// ``` - /// # Panics - /// ```text - /// Panics if `self` has a non-empty head - ///``` - /// # Examples - /// ## Pictorial Example - /// ```text - /// [A] - /// ``` - /// let B = A.fork(); //generates B and A' - /// let C = A.fork_from_tail(); - /// ```text - /// [B] [A'] [C] <- All B, A' and C point to the common fork point A - /// | | / - /// \ / / - /// | - /// [A] - /// ``` - /// ## Code Example - /// ```rust - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// a.set("hey", 4); - /// let mut b = a.fork(); - /// let mut c = a.fork_from_tail(); - /// a.set("hey", 2); - /// b.set("hey", 3); - /// c.set("privet", 5); - /// assert_eq!(*a.get(&"hi!").unwrap(), *b.get(&"hi!").unwrap()); - /// assert_eq!(*b.get(&"hi!").unwrap(), *c.get(&"hi!").unwrap()); - /// assert_eq!(*a.get(&"hey").unwrap(), 2); - /// assert_eq!(*c.get(&"hey").unwrap(), 4); - /// assert_eq!(*c.get(&"privet").unwrap(), 5); - /// assert_eq!(*b.get(&"hey").unwrap(), 3); - /// ``` - pub fn fork_from_tail(&self) -> Self { - assert!(self.head.is_empty()); - StackMap { - head: HashMap::new(), - tail: self.tail.clone(), - } - } - - ///```text - ///Pushes a new, empty scope onto `self`. Doing so has no effect on the - ///bindings in `self`, until a new [set] is called - ///``` - /// # Example - /// ```rust - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("hi!", 2); - /// assert_eq!(*a.get(&"hi!").unwrap(), 2); - /// ``` - pub fn new_scope(&mut self) { - let old_head = mem::take(&mut self.head); - self.tail = self.tail.push(old_head); - } - - /// ```text - /// Returns a pointer to the newest scope of this Smoosher. A Smoosher upon - /// instantiation will always have 1 empty HM as its first scope, so this - /// method will always meaningfully return. - /// ``` - /// # Example - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// a.set("bye", 0); - /// let hm = a.top(); - /// assert_eq!(hm.len(), 2); - /// assert_eq!(*hm.get(&"hi!").unwrap(), 1); - /// assert_eq!(*hm.get(&"bye").unwrap(), 0); - /// ``` - pub fn top(&self) -> &HashMap { - &self.head - } - - /// ```text - /// Consumes `self` and returns a Smoosher with all bindings in the topmost scope transposed - /// onto the second-newest scope, with the topmost scope then discarded, and - /// the second-newest scope now the topmost scope. Has no visible effect on - /// methods like [get], as identical keys in different scopes are still shadowed, - /// with only the newest key's binding visible. - /// Invariant: `self` must have at least 2 scopes, and neither scope may - /// be the root of any fork: - ///* [A] [B] - /// | | - /// \ / - /// [C] - /// Cannot smoosh A into C -- calling [merge(A, B)] will result in one node - /// containing all bindings in A, B, and the bindings in C not found in A or B, though. - ///* [A] [B] - /// | | - /// \ / - /// [C] - /// | - /// [D] - /// Cannot smoosh C into D (not even possible with this method) - /// ``` - /// # Panics - /// ```text - /// Panics if `self` has less than two scopes, or if any of the scopes are - /// the roots of any existing forks - ///``` - /// # Examples - /// ## Pictorial Example - /// \[A\] - /// | => \[smoosh_once(A, C)\] => \[A U C\A\] - /// \[C\] - /// ## Code Example - ///``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// a.set("bye", 0); - /// a.new_scope(); - /// a.set("hi!", 2); - /// assert_eq!(*a.get(&"hi!").unwrap(), 2); - /// assert_eq!(*a.get(&"bye").unwrap(), 0); - /// let a = a.smoosh_once(); - /// assert_eq!(*a.get(&"hi!").unwrap(), 2); - /// assert_eq!(*a.get(&"bye").unwrap(), 0); - ///``` - ///the following should panic: - ///```should_panic - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// a.set("bye", 0); - /// let a = a.smoosh_once(); //not enough scopes to smoosh - ///``` - pub fn smoosh_once(self) -> Self { - //move head to a sep variable - let wr_head = self.head; - //now move the head of the tail into the head of the smoosher - let interm_tail = self.tail; - let (new_head, new_tail) = interm_tail.split(); - if let Some(mut new_head) = new_head { - for (k, v) in wr_head { - new_head.insert(k, v); - } - StackMap { - head: new_head, - tail: new_tail, - } - } else { - panic!("Could not smoosh, because the given smoosher has fewer than two scopes") - } - } - - /// ```text - /// Consumes `self` and returns a Smoosher in which - /// all bindings found in the top [levels] scopes of `self` to the [levels]th - /// scope are merged. [smoosh(0)] has no effect, while [smoosh(1)] is equivalent to - /// [smoosh_once]. - /// ``` - /// # Guarantees - /// If `self` has **n** scopes, then - /// [self.get(K)] == [self.smoosh(n).get(K)] for all K bound in `self` - /// - /// # Invariant - /// ```text - /// None of the top [levels] scopes may be the root of any fork - /// ``` - /// # Panics - /// ```text - /// Panics if [levels] >= # of scopes in the Smoosher, or any of the top - /// [levels] scopes are the roots of any existing forks. - /// ``` - /// # Examples - /// ## Pictorial Examples - /// ```text - /// [A] - /// | - /// [B] - /// | => [A.smoosh(2)] => [A U B\A U C\(A U B\A)] - /// [C] - /// ``` - /// ## Code Examples - ///``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("bye", 0); - /// a.new_scope(); - /// a.set("hi!", 2); - /// let a = a.smoosh(2); - /// assert_eq!(*a.get(&"hi!").unwrap(), 2); - /// assert_eq!(*a.get(&"bye").unwrap(), 0); - ///``` - ///the following should panic: - ///```should_panic - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hi!", 1); - /// let b = a.fork(); - /// a.set("bye", 0); - /// let a = a.smoosh(1); //cannot smoosh; a fork point exists in a's tail - /// b.get(&"hi!"); - ///``` - pub fn smoosh(self, levels: u64) -> Self { - let mut tr = self; - for _ in 0..levels { - tr = tr.smoosh_once(); - } - tr - } - - /// For internal use only - /// Set `new` as the topmost scope of `self` - fn push_scope(&mut self, new: HashMap) { - let old_head = mem::replace(&mut self.head, new); - self.tail = self.tail.push(old_head); - } - - /// ```text - /// Consumes two Smooshers, which must share a fork point. - /// Merges all topmost scopes above the shared fork point, smooshing the resulting - /// node onto the fork point. Returns the resulting Smoosher. - /// ``` - /// ## IMPORTANT INVARIANT - /// ```text - /// The intersection of the bindings of the two branches - /// MUST be the empty set! Otherwise, no guarantee for which binding will be included - /// in the merge. - /// ``` - /// # Panics - /// ```text - /// Panics if `self` and `other` do not share a common fork point, or if either is [empty], or - /// if their bindings above the fork point are not disjoint. - /// ``` - /// # Examples - /// ## Pictorial Example - /// ```text - /// Smoosher 1: (A, B, C, F, G) Smoosher 2: (D, E, F, G) - /// [A] - /// | - /// [B] [D] - /// | | - /// [C] [E] - /// | | - /// \ / - /// \ / - /// [F] - /// | - /// [G] - /// *merge(Smoosher_1, Smoosher_2) - /// Returns: - /// [ABCDE merged and smooshed onto F] - /// | - /// [G] - /// ``` - /// ## Code Example - /// good: - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hello", 15); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("bye", 0); - /// let mut b = a.fork(); - /// a.set("hi!", 3); - /// b.set("bye", 2); - /// let c = Smoosher::merge(a, b); - /// assert_eq!(*c.get(&"hi!").unwrap(), 3); - /// assert_eq!(*c.get(&"bye").unwrap(), 2); - /// assert_eq!(*c.get(&"hello").unwrap(), 15); - /// ``` - /// will panic: - /// ```should_panic - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hello", 15); - /// let mut b = Smoosher::new(); - /// b.set("hey", 13); - /// let c = Smoosher::merge(a, b); //there's no common fork point - /// ``` - pub fn merge(self, other: Self) -> Self { - //find shared fork point; if doesn't exist, panic - let mut a = self; - let mut b = other; - if let Some((depth_a, depth_b)) = StackMap::shared_fork_point(&a, &b) { - //smoosh `self` and `other` to right before that point - a = a.smoosh(depth_a - 1); - b = b.smoosh(depth_b - 1); - - //now do merge - - //get both heads of smooshed a and b - let mut a_head = a.head; - //merge a_head and b_head. - for (k, v) in b.head { - if a_head.insert(k, v).is_some() { - panic!("arguments of merge are not disjoint"); - } - } - //now drop b - std::mem::drop(b.tail); //b.head already consumed above - //create a' - if let (Some(a_new_head), a_new_tail) = a.tail.split() { - a = StackMap { - head: a_new_head, - tail: a_new_tail, - }; - } else { - panic!("trying to merge, but `self` is only 1 scope deep (this is impossible)") - } - //push_scope this new merged node onto A' - a.push_scope(a_head); - a.smoosh_once() - } else { - panic!("tried to merge Smooshers with no common fork point") - } - } - - /// ```text - /// Consumes a smoosher and a list of other smooshers to be merged. The list - /// can be any length. - /// Merges all topmost scopes above the first shared fork point for all smooshers, - /// finally smooshing the resulting top node onto the fork point. Returns - /// the resulting Smoosher. - /// ``` - /// ## IMPORTANT INVARIANT - /// ```text - /// If any of the forked smooshers have bindings for the same keys there is - /// no way to predict which could be written into the final output Smoosher, - /// hence the user should try and avoid that if correctness of all values is - /// desired. MAYBE MAKE SO ONLY THE HEAD SMOOSHERS VALUES STAY - /// ``` - /// # Panics - /// ```text - /// Panics if any pairing of self and other don't share the common fork point. - /// Also panics if either is empty, or if the sets to be merged are disjoint (to be reviewed) - /// ``` - /// # Examples - /// ## Pictorial Example - /// ```text - /// Smoosher 1: (A, B, C, F, G), Smoosher 2: (D, E, F, G), Smoosher 3: (J, I, H, F, G) - /// [A] [J] - /// | | - /// [B] [I] [D] - /// | \ | - /// [C] [H] [E] - /// | | | - /// \ | / - /// \ | / - /// [F] - /// | - /// [G] - /// *merge(Smoosher_1, [Smoosher_2, Smoosher_3]) - /// Returns: - /// [ABCDEHIJ merged and smooshed onto F] - /// | - /// [G] - /// ``` - /// ## Code Example - /// good: - /// ``` - /// use interp::stk_env::Smoosher; - /// use std::collections::HashSet; - /// let mut a = Smoosher::new(); - /// a.set("hello", 15); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("bye", 0); - /// let mut b = a.fork(); - /// let mut c = a.fork_from_tail(); - /// let mut e = a.fork_from_tail(); - /// a.set("hi!", 3); - /// b.set("bye", 2); - /// c.set("privet", 11); - /// e.set("hola", 13); - /// let mut lst = Vec::new(); - /// lst.push(b); - /// lst.push(c); - /// lst.push(e); - /// let d = Smoosher::merge_many(a, lst, &HashSet::new(), false).unwrap(); - /// assert_eq!(*d.get(&"privet").unwrap(), 11); - /// assert_eq!(*d.get(&"hi!").unwrap(), 3); - /// assert_eq!(*d.get(&"bye").unwrap(), 2); - /// assert_eq!(*d.get(&"hello").unwrap(), 15); - /// assert_eq!(*d.get(&"hola").unwrap(), 13); - /// ``` - /// will panic: - /// ```should_panic - /// use std::collections::HashSet; - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hello", 15); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("bye", 0); - /// let mut b = a.fork(); - /// a.set("hi!", 3); - /// let mut c = a.fork(); - /// b.set("bye", 2); - /// c.set("privet", 11); - /// let mut lst = Vec::new(); - /// lst.push(b); - /// lst.push(c); - /// let d = Smoosher::merge_many(a, lst, &HashSet::new(), false); //a and b has a different fork point - //from a and c - /// ``` - pub fn merge_many( - self, - other: Vec, - overlap_keys: &HashSet, - allow_par_conflicts: bool, - ) -> Result> { - if other.is_empty() { - return Ok(self); - } - //initialize all needed variables - let mut a = self; - //needed to check for common fork point for all smooshers - let mut dp_first: Option = None; - let mut smooshed = Vec::new(); - - //iterate over all the smooshers and check for common fork point for all - //of them as well as smoosh them all to one level above the common fork. - for sm in other { - if let Some((depth_a, depth_b)) = - StackMap::shared_fork_point(&a, &sm) - { - let dp_first_ref = dp_first.get_or_insert(depth_a); - - assert!(*dp_first_ref == depth_a); - - smooshed.push(sm.smoosh(depth_b - 1)); - } else { - panic!("No common fork for a pair of smooshers") - } - } - - a = a.smoosh(dp_first.unwrap() - 1); - - let mut a_head = a.head; - - //iterate over every smooshed smoosher and put all of their values in - //the head of the first smoosher. - for sm in smooshed { - for (k, v) in sm.head { - if let Some(prev) = a_head.get(&k) { - // overlap accepable for defined keys as long as they agree - if overlap_keys.contains(&k) && prev == &v { - a_head.insert(k, v); - } else { - let prev = a_head.remove(&k).unwrap(); - if allow_par_conflicts && prev == v { - crate::logging::warn!( - crate::logging::root(), - "Allowing parallel conflict" - ) - } else { - return Err(CollisionError(k, prev, v)); - } - } - } else { - a_head.insert(k, v); - } - } - std::mem::drop(sm.tail); - } - - if let (Some(a_new_head), a_new_tail) = a.tail.split() { - a = StackMap { - head: a_new_head, - tail: a_new_tail, - }; - } else { - panic!("trying to merge, but `self` is only 1 scope deep (this is impossible)") - } - //push_scope this new merged node onto A' - a.push_scope(a_head); - Ok(a.smoosh_once()) - } - - /// ```text - /// Returns a HashSet of references to keys bounded in the - /// top [levels] levels of the Smoosher. - /// [self.list_bound_vars(0)] returns all keys in the topmost scope - /// [self.list.bound_vars(1)] returns all keys in the top two scopes - /// Undefined behavior if levels >= (# of scopes), or `self` is empty - /// ``` - /// # Example - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hello", 15); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("bye", 0); - /// a.set("hello", 0); - /// let b = a.list_bound_vars(1); - /// assert_eq!(b.len(), 3); - /// assert!(b.contains(&"hello")); - /// assert!(b.contains(&"hi!")); - /// assert!(b.contains(&"bye")); - /// ``` - - pub fn list_bound_vars(&self, levels: u64) -> HashSet<&K> { - let mut tr_hs = HashSet::new(); - //levels is at least 0, so add everything from head - for (k, _) in self.head.iter() { - tr_hs.insert(k); - } - //now iterate and only add if levels > 0 - - for hm in self.tail.iter().take(levels.try_into().unwrap()) { - for (k, _) in hm.iter() { - tr_hs.insert(k); - } - } - tr_hs - } - - /// ```text - /// Returns a HashMap of all (&K, &V) (bindings of references) found in the top - /// LEVEL levels of the Smoosher that differ from the bindings found - /// in the LEVEL-th level of the Smoosher and below. - /// ``` - /// # Requires - /// 0 < LEVEL < # of scopes in this smoosher - /// # Examples - /// ## Pictoral Example - /// ```text - /// Say our Smoosher A looked as follows: - /// (lvl 3) \[(a, 1), (b, 2)\] -> \[(a, 3)\] -> \[(c, 4)\] -> \[(d, 15)\] (lvl 0) - /// A.diff(3) gives the following HashMap: - /// \[(a, 3), (c, 4), (d, 15)\] - /// ``` - /// ## Code Example - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("hello", 15); - /// a.set("hi!", 1); - /// a.new_scope(); - /// a.set("bye", 0); - /// a.set("hello", 0); - /// let diff1 = a.diff(1); //the diff between the topmost scope and all below - /// assert_eq!(diff1.len(), 2); - /// assert_eq!(**diff1.get(&"hello").unwrap(), 0); - /// assert_eq!(**diff1.get(&"bye").unwrap(), 0); - /// ``` - pub fn diff(&self, levels: u64) -> HashMap<&K, &V> { - if levels == 0 { - panic!("cannot compute diff(0)"); - } - //iterate from top (0) to (levels - 1) and add all bindings - //continue iterating from (levels - 1) to bottom, check if binding - //is in tr HM. If so, remove it. - let mut tr = HashMap::new(); - //first add from head - for (k, v) in HashMap::iter(&self.head) { - tr.insert(k, v); - } - //now worry about tail. while 1 <= ind <= levels - 1 insert (preserve scope), - //and while ind >= levels, get, check, remove. - let mut ind = 1; - for nd in List::iter(&self.tail) { - for (k, v) in HashMap::iter(nd) { - if ind <= (levels - 1) { - //add, but only if the binding isn't yet in the HM (preserve scope) - if tr.get(k).is_none() { - tr.insert(k, v); - } - } else { - //do the check and remove - if let Some(&v_prime) = tr.get(k) { - if v_prime == v { - tr.remove(k); //bc it's not a new binding - } - } - } - ind += 1; - } - } - tr - } - - /// ```text - /// Returns a HM of all (&K, &V) (bindings of references) found in `self`. - /// A use case would be when you want a HM representing a snapshot of the - /// current state of the environment, which is easily iterable. - /// ``` - pub fn to_hm(&self) -> HashMap<&K, &V> { - //just add all bindings - let mut tr = HashMap::new(); - //first add from head - for (k, v) in HashMap::iter(&self.head) { - tr.insert(k, v); - } - //then from tail - for nd in List::iter(&self.tail) { - for (k, v) in HashMap::iter(nd) { - //add, but only if the binding isn't yet in the HM (preserve scope) - if tr.get(k).is_none() { - tr.insert(k, v); - } - } - } - tr - } - - /// ```text - /// Returns a HM of all (&K, &V) (bindings of references) found in `self` and absent from - /// `other`. - /// ``` - /// # Examples - /// ## Text Example - /// ```text - /// `self` : [(a, 1), (b, 2)], and - /// `other` : [(a, 1), (b, 3)], then - /// [self.smoosher_diff(other)] produces the HM [(b, 2)]. - /// ``` - /// ## Code Example - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set("a", 1); - /// a.new_scope(); - /// a.set("b", 2); - /// let mut b = Smoosher::new(); - /// b.set("a", 1); - /// b.set("b", 3); - /// let diff_a_b = a.diff_other(&b); - /// assert_eq!(diff_a_b.len(), 1); - /// assert_eq!(**diff_a_b.get(&"b").unwrap(), 2); - /// ``` - - pub fn diff_other(&self, other: &Self) -> HashMap<&K, &V> { - let mut self_hm = StackMap::to_hm(self); - let other_hm = StackMap::to_hm(other); - for (&k, &v) in other_hm.iter() { - if let Some(&v_self) = self_hm.get(k) { - if v_self == v { - self_hm.remove(k); - } - } - } - self_hm - } - - /// ```text - /// Returns true if a binding of [k] exists in the topmost scope. - /// False if [k] is not binded in the topmost scope (regardless of whether - /// or not [k] exists in the entire Smoosher). - /// ``` - /// # Example - /// ``` - /// use interp::stk_env::Smoosher; - /// let mut a = Smoosher::new(); - /// a.set(1, 2); - /// a.new_scope(); - /// a.set(2, 3); - /// assert_eq!(a.binded_in_new(&1), false); - /// assert!(a.binded_in_new(&2)); - /// ``` - pub fn binded_in_new(&self, k: &K) -> bool { - self.head.contains_key(k) - } -} - -#[cfg(test)] -mod priv_tests { - use super::*; - use crate::values::Value; //this is used in the tests below - #[test] - fn smoosher_shared_fork_point() { - let mut smoosher = StackMap::new(); - smoosher.set("a", 2); //for type inference - //the below fork adds a new scope to [smoosher] - let mut smoosher2 = smoosher.fork(); - //right now, shared_fork_point should give (1, 1) - if let Some((depth_a, depth_b)) = - StackMap::shared_fork_point(&smoosher, &smoosher2) - { - assert_eq!(depth_a, 1); - assert_eq!(depth_b, 1) - } else { - panic!( - "shared_fork_point says forked cousins are unrelated [(1, 1)]" - ) - } - smoosher.new_scope(); - smoosher.new_scope(); - smoosher2.new_scope(); - //now expecting (3, 2) - if let Some((depth_a, depth_b)) = - StackMap::shared_fork_point(&smoosher, &smoosher2) - { - assert_eq!(depth_a, 3); - assert_eq!(depth_b, 2) - } else { - panic!( - "shared_fork_point says forked cousins are unrelated [(3, 2)]" - ) - } - } - - #[test] - fn value_shared_fork_point() { - let mut smoosher = StackMap::new(); - smoosher.set("a", Value::from(2, 32)); //for type inference - //the below fork adds a new scope to [smoosher] - let mut smoosher2 = smoosher.fork(); - //right now, shared_fork_point should give (1, 1) - if let Some((depth_a, depth_b)) = - StackMap::shared_fork_point(&smoosher, &smoosher2) - { - assert_eq!(depth_a, 1); - assert_eq!(depth_b, 1) - } else { - panic!( - "shared_fork_point says forked cousins are unrelated [(1, 1)]" - ) - } - smoosher.new_scope(); - smoosher.new_scope(); - smoosher2.new_scope(); - //now expecting (3, 2) - if let Some((depth_a, depth_b)) = - StackMap::shared_fork_point(&smoosher, &smoosher2) - { - assert_eq!(depth_a, 3); - assert_eq!(depth_b, 2) - } else { - panic!( - "shared_fork_point says forked cousins are unrelated [(3, 2)]" - ) - } - } -} - -/// An error for when multiple children maps disagree on a value. -#[derive(Debug)] -pub struct CollisionError(pub K, pub V, pub V) -where - K: Eq + Hash, - V: Eq; From 504c6be26b3e5233e20f718ba684eb6b7eb0c88a Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 15:52:42 -0400 Subject: [PATCH 11/76] into the bin with all y'all --- .../src/interpreter/component_interpreter.rs | 484 ------ interp/src/interpreter/control_interpreter.rs | 1309 ----------------- interp/src/interpreter/group_interpreter.rs | 584 -------- interp/src/interpreter/interpreter_trait.rs | 71 - interp/src/interpreter/mod.rs | 11 - interp/src/interpreter/utils.rs | 112 -- interp/src/interpreter_ir/component.rs | 52 - interp/src/interpreter_ir/control.rs | 133 -- interp/src/interpreter_ir/mod.rs | 20 - interp/src/lib.rs | 5 +- interp/src/primitives/combinational.rs | 570 ------- interp/src/primitives/mod.rs | 8 - interp/src/primitives/prim_utils.rs | 136 -- interp/src/primitives/primitive_traits.rs | 65 - interp/src/primitives/stateful/math.rs | 953 ------------ interp/src/primitives/stateful/mem_utils.rs | 328 ----- interp/src/primitives/stateful/memories.rs | 664 --------- interp/src/primitives/stateful/mod.rs | 24 - 18 files changed, 1 insertion(+), 5528 deletions(-) delete mode 100644 interp/src/interpreter/component_interpreter.rs delete mode 100644 interp/src/interpreter/control_interpreter.rs delete mode 100644 interp/src/interpreter/group_interpreter.rs delete mode 100644 interp/src/interpreter/interpreter_trait.rs delete mode 100644 interp/src/interpreter/mod.rs delete mode 100644 interp/src/interpreter/utils.rs delete mode 100644 interp/src/interpreter_ir/component.rs delete mode 100644 interp/src/interpreter_ir/control.rs delete mode 100644 interp/src/interpreter_ir/mod.rs delete mode 100644 interp/src/primitives/combinational.rs delete mode 100644 interp/src/primitives/mod.rs delete mode 100644 interp/src/primitives/prim_utils.rs delete mode 100644 interp/src/primitives/primitive_traits.rs delete mode 100644 interp/src/primitives/stateful/math.rs delete mode 100644 interp/src/primitives/stateful/mem_utils.rs delete mode 100644 interp/src/primitives/stateful/memories.rs delete mode 100644 interp/src/primitives/stateful/mod.rs diff --git a/interp/src/interpreter/component_interpreter.rs b/interp/src/interpreter/component_interpreter.rs deleted file mode 100644 index 737b941ffe..0000000000 --- a/interp/src/interpreter/component_interpreter.rs +++ /dev/null @@ -1,484 +0,0 @@ -use std::collections::HashSet; - -use super::{ - control_interpreter::{ - ComponentInfo, ControlInterpreter, StructuralInterpreter, - }, - utils::control_is_empty, - Interpreter, -}; -use crate::{ - debugger::{name_tree::ActiveTreeNode, PrintCode}, - environment::InterpreterState, - errors::InterpreterResult, - interpreter_ir as iir, - primitives::{Named, Primitive}, - structures::names::{ - ComponentQualifiedInstanceName, GroupQIN, GroupQualifiedInstanceName, - }, - structures::state_views::{MutStateView, StateView}, - utils::AsRaw, - values::Value, -}; -use calyx_ir::{self as ir, Port, RRC}; -use std::rc::Rc; - -enum StructuralOrControl { - Structural(Box), - Control(ControlInterpreter), - Nothing, // a default variant which is only ever around transiently -} -impl Default for StructuralOrControl { - fn default() -> Self { - Self::Nothing - } -} - -impl StructuralOrControl { - fn _is_structural(&self) -> bool { - matches!(self, Self::Structural(_)) - } - - fn is_control(&self) -> bool { - matches!(self, Self::Control(_)) - } -} - -impl From for StructuralOrControl { - fn from(input: StructuralInterpreter) -> Self { - Self::Structural(input.into()) - } -} - -impl From for StructuralOrControl { - fn from(input: ControlInterpreter) -> Self { - Self::Control(input) - } -} - -pub struct ComponentInterpreter { - interp: StructuralOrControl, - input_ports: Vec>, - output_ports: Vec>, - comp_ref: Rc, - control_ref: iir::Control, - done_port: RRC, - go_port: RRC, - input_hash_set: Rc>, - qual_name: ComponentQualifiedInstanceName, - /// used to satisfy the Named requirement for primitives, primarially for error messages - full_name_clone: ir::Id, -} - -impl ComponentInterpreter { - pub fn make_main_component( - env: InterpreterState, - comp: &Rc, - ) -> Self { - let qin = ComponentQualifiedInstanceName::new_single(comp, comp.name); - Self::from_component(comp, env, qin) - } - - pub fn from_component( - comp: &Rc, - env: InterpreterState, - qin: ComponentQualifiedInstanceName, - ) -> Self { - let (mut inputs, mut outputs) = (Vec::new(), Vec::new()); - - for port in comp.signature.borrow().ports.iter() { - let pt_ref = port.borrow(); - match &pt_ref.direction { - ir::Direction::Input => outputs.push(port.clone()), - ir::Direction::Output => inputs.push(port.clone()), - ir::Direction::Inout => { - panic!() - // empty for now also probably shouldn't happen - } - } - } - let control = comp.control.clone(); - - let go_port = inputs - .iter() - .find(|x| x.borrow().attributes.has(ir::NumAttr::Go)) - .unwrap() - .clone(); - - let done_port = outputs - .iter() - .find(|x| x.borrow().attributes.has(ir::NumAttr::Done)) - .unwrap() - .clone(); - - let mut override_set = - inputs.iter().map(|x| x.as_raw()).collect::>(); - override_set.insert(done_port.as_raw()); - - // Need to include continuous assignments in the override - for assignment in comp.continuous_assignments.iter() { - override_set.insert(assignment.dst.as_raw()); - let dst_ref = assignment.dst.borrow(); - if let ir::PortParent::Cell(c) = &dst_ref.parent { - let cell = c.upgrade(); - let cell_ref = cell.borrow(); - for port in cell_ref.ports() { - let port_ref = port.borrow(); - if let calyx_ir::Direction::Output = port_ref.direction { - override_set.insert(port.as_raw()); - } - } - } - } - - let input_hash_set = Rc::new(override_set); - - let interp = if control_is_empty(&control) { - StructuralInterpreter::from_component(comp, env).into() - } else { - ControlInterpreter::new( - control.clone(), - env, - &ComponentInfo::new( - comp.continuous_assignments.clone(), - input_hash_set.clone(), - qin.clone(), - ), - ) - .into() - }; - let full_clone = qin.as_id(); - - Self { - interp, - input_ports: inputs, - output_ports: outputs, - comp_ref: Rc::clone(comp), - control_ref: control, - go_port, - done_port, - input_hash_set, - qual_name: qin, - full_name_clone: full_clone, - } - } - - fn look_up_outputs(&self) -> Vec<(ir::Id, crate::values::Value)> { - let env = self.get_env(); - self.output_ports - .iter() - .map(|x| { - let port_ref = x.borrow(); - (port_ref.name, env.lookup(x.as_raw()).clone()) - }) - .collect() - } - - #[inline] - fn go_is_high(&self) -> bool { - self.get_env().lookup(self.go_port.as_raw()).as_bool() - } - - #[inline] - fn done_is_high(&self) -> bool { - self.get_env().lookup(self.done_port.as_raw()).as_bool() - } - - #[inline] - pub fn set_go_high(&mut self) { - let raw = self.go_port.as_raw(); - self.get_env_mut().insert(raw, Value::bit_high()) - } - - #[inline] - pub fn set_go_low(&mut self) { - let raw = self.go_port.as_raw(); - self.get_env_mut().insert(raw, Value::bit_low()) - } - - #[inline] - fn set_done_high(&mut self) { - let raw = self.done_port.as_raw(); - self.get_env_mut().insert(raw, Value::bit_high()) - } - - #[inline] - fn set_done_low(&mut self) { - let raw = self.done_port.as_raw(); - self.get_env_mut().insert(raw, Value::bit_low()) - } - - /// Interpret a calyx program from the root - pub fn interpret_program( - env: InterpreterState, - comp: &Rc, - ) -> InterpreterResult { - let qin = ComponentQualifiedInstanceName::new_single(comp, comp.name); - let mut main_comp = Self::from_component(comp, env, qin); - main_comp.set_go_high(); - main_comp.run()?; - main_comp.set_go_low(); - main_comp.deconstruct() - } -} - -impl Interpreter for ComponentInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - let go = self.go_is_high(); - match &mut self.interp { - StructuralOrControl::Structural(s) => s.step(), - StructuralOrControl::Control(c) => { - if go { - c.step() - } else { - Ok(()) - } - } - - _ => unreachable!(), - } - } - - fn deconstruct(self) -> InterpreterResult { - match self.interp { - StructuralOrControl::Structural(s) => s.deconstruct(), - StructuralOrControl::Control(c) => c.deconstruct(), - _ => unreachable!(), - } - } - - fn is_done(&self) -> bool { - match &self.interp { - StructuralOrControl::Structural(s) => s.is_done(), - StructuralOrControl::Control(c) => c.is_done(), - _ => unreachable!(), - } - } - - fn get_env(&self) -> StateView<'_> { - match &self.interp { - StructuralOrControl::Structural(s) => s.get_env(), - StructuralOrControl::Control(c) => c.get_env(), - _ => unreachable!(), - } - } - - fn currently_executing_group(&self) -> HashSet { - if self.go_is_high() { - let sub_comps = self.get_env().sub_component_currently_executing(); - - // merge the sets - &sub_comps - | &(match &self.interp { - StructuralOrControl::Control(c) => { - c.currently_executing_group() - } - - StructuralOrControl::Structural(_) => HashSet::new(), - - _ => unreachable!(), - }) - } else { - HashSet::new() - } - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - match &mut self.interp { - StructuralOrControl::Structural(s) => s.get_env_mut(), - StructuralOrControl::Control(c) => c.get_env_mut(), - StructuralOrControl::Nothing => unreachable!(), - } - } - - fn converge(&mut self) -> InterpreterResult<()> { - match &mut self.interp { - StructuralOrControl::Structural(s) => s.converge(), - StructuralOrControl::Control(c) => c.converge(), - StructuralOrControl::Nothing => unreachable!(), - } - } - - fn run(&mut self) -> InterpreterResult<()> { - match &mut self.interp { - StructuralOrControl::Structural(s) => s.run(), - StructuralOrControl::Control(c) => c.run(), - StructuralOrControl::Nothing => unreachable!(), - } - } - - fn get_active_tree(&self) -> Vec { - if self.go_is_high() { - let children = match &self.interp { - // TODO (Griffin): Include structural info - StructuralOrControl::Structural(_) => { - vec![] - } - StructuralOrControl::Control(c) => c.get_active_tree(), - StructuralOrControl::Nothing => unreachable!(), - }; - - let env = self.get_env(); - - let sub_comp_children = env.get_active_tree(); - - let mut root_node = ActiveTreeNode::new( - GroupQualifiedInstanceName::new_empty(&self.qual_name), - ); - - for x in children.into_iter().chain(sub_comp_children.into_iter()) { - root_node.insert(x) - } - - vec![root_node] - } else { - vec![] - } - } -} - -impl Named for ComponentInterpreter { - fn get_full_name(&self) -> &ir::Id { - &self.full_name_clone - } -} - -impl Primitive for ComponentInterpreter { - fn do_tick(&mut self) -> InterpreterResult> { - let currently_done = self.done_is_high(); - - // this component has been done for a cycle - if currently_done { - self.reset(&[])?; - } else { - self.step()?; - } - - // just became done for an imperative component - // so set done high - if !currently_done && self.is_done() && self.interp.is_control() { - self.set_done_high() - } - - Ok(self.look_up_outputs()) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(ir::Id, &crate::values::Value)]) { - for (name, value) in inputs { - let port = self - .input_ports - .iter() - .find(|x| x.borrow().name == name) - .expect("Component given non-existant input"); - assert_eq!(port.borrow().width, value.width()) - } - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &crate::values::Value)], - ) -> InterpreterResult> { - let mut assigned = HashSet::new(); - let mut input_vec = inputs - .iter() - .map(|(name, val)| { - let port = self - .input_ports - .iter() - .find(|x| x.borrow().name == name) - .unwrap(); - assigned.insert(port.as_raw()); - (port.as_raw(), (*val).clone()) - }) - .collect::>(); - - for port in &self.input_ports { - if !assigned.contains(&port.as_raw()) { - let pt_ref = port.borrow(); - input_vec.push(( - port.as_raw(), - Value::zeroes(pt_ref.width as usize), - )); - } - } - - let mut env = self.get_env_mut(); - - for (port, value) in input_vec { - env.insert(port, value); - } - self.converge().unwrap(); - - Ok(self.look_up_outputs()) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &crate::values::Value)], - ) -> InterpreterResult> { - if self.interp.is_control() { - if !self.is_done() && !self.go_is_high() { - return Ok(self.look_up_outputs()); - } - assert!( - self.is_done(), - "Component {} interpreter reset before finishing", - self.full_name_clone - ); - } - - let interp = std::mem::take(&mut self.interp); - - let new = match interp { - StructuralOrControl::Structural(mut s) => { - s.step()?; - StructuralOrControl::Structural(s) - } - StructuralOrControl::Control(control) => { - let env = control.deconstruct()?; - let control_interp = ControlInterpreter::new( - self.control_ref.clone(), - env, - &ComponentInfo::new( - self.comp_ref.continuous_assignments.clone(), - self.input_hash_set.clone(), - self.qual_name.clone(), - ), - ); - control_interp.into() - } - _ => unreachable!(), - }; - - self.interp = new; - - if !self.interp._is_structural() { - // only relevant for non-structural - self.set_done_low(); - } - - Ok(self.look_up_outputs()) - } - - fn get_state(&self) -> Option> { - Some(self.get_env()) - } - - fn serialize( - &self, - _signed: Option, - ) -> crate::serialization::Serializable { - crate::serialization::Serializable::Full( - self.get_env() - .gen_serializer(matches!(_signed, Some(PrintCode::Binary))), - ) - } - - fn get_comp_interpreter(&self) -> Option<&ComponentInterpreter> { - Some(self) - } -} diff --git a/interp/src/interpreter/control_interpreter.rs b/interp/src/interpreter/control_interpreter.rs deleted file mode 100644 index c63d661893..0000000000 --- a/interp/src/interpreter/control_interpreter.rs +++ /dev/null @@ -1,1309 +0,0 @@ -use super::group_interpreter::{finish_interpretation, AssignmentInterpreter}; -use super::utils::{get_done_port, get_go_port}; -use super::Interpreter; -use crate::debugger::name_tree::ActiveTreeNode; -use crate::errors::InterpreterError; -use crate::interpreter_ir as iir; -use crate::logging::{new_sublogger, warn}; -use crate::structures::names::{ - ComponentQualifiedInstanceName, GroupQIN, GroupQualifiedInstanceName, -}; -use crate::utils::AsRaw; -use crate::{ - environment::InterpreterState, - errors::InterpreterResult, - interpreter::utils::ConstPort, - structures::state_views::{ - CompositeView, MutCompositeView, MutStateView, StateView, - }, - values::Value, -}; -use calyx_ir::{self as ir, Assignment, Guard, RRC}; -use calyx_utils::WithPos; -use std::collections::HashSet; -use std::rc::Rc; - -/// The key to lookup for the position tags -const POS_TAG: ir::Attribute = ir::Attribute::Num(ir::NumAttr::Pos); - -#[derive(Debug, Clone)] -pub struct ComponentInfo { - pub continuous_assignments: iir::ContinuousAssignments, - pub input_ports: Rc>, - pub qin: ComponentQualifiedInstanceName, -} - -impl ComponentInfo { - pub fn new( - continuous_assignments: iir::ContinuousAssignments, - input_ports: Rc>, - qin: ComponentQualifiedInstanceName, - ) -> Self { - Self { - continuous_assignments, - input_ports, - qin, - } - } -} - -pub struct EmptyInterpreter { - pub(super) env: InterpreterState, -} - -impl EmptyInterpreter { - pub fn new(env: InterpreterState) -> Self { - Self { env } - } -} - -impl Interpreter for EmptyInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - Ok(()) - } - - fn run(&mut self) -> InterpreterResult<()> { - Ok(()) - } - - fn deconstruct(self) -> InterpreterResult { - Ok(self.env) - } - - fn is_done(&self) -> bool { - true - } - - fn get_env(&self) -> StateView<'_> { - (&self.env).into() - } - - fn currently_executing_group(&self) -> HashSet { - HashSet::new() - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - (&mut self.env).into() - } - - fn converge(&mut self) -> InterpreterResult<()> { - Ok(()) - } - - fn get_active_tree(&self) -> Vec { - vec![] - } -} - -#[derive(Clone)] -pub enum EnableHolder { - Enable(Rc), - Group(RRC), - CombGroup(RRC), - Vec(Rc>>), -} - -impl EnableHolder { - fn done_port(&self) -> Option> { - match self { - EnableHolder::Group(g) => Some(get_done_port(&g.borrow())), - EnableHolder::CombGroup(_) | EnableHolder::Vec(_) => None, - EnableHolder::Enable(e) => Some(get_done_port(&e.group.borrow())), - } - } - - fn go_port(&self) -> Option> { - match self { - EnableHolder::Group(g) => Some(get_go_port(&g.borrow())), - EnableHolder::CombGroup(_) | EnableHolder::Vec(_) => None, - EnableHolder::Enable(e) => Some(get_go_port(&e.group.borrow())), - } - } - - fn pos_tag(&self) -> Option { - match self { - EnableHolder::Vec(_) - | EnableHolder::CombGroup(_) - | EnableHolder::Group(_) => None, - EnableHolder::Enable(e) => e.attributes.get(POS_TAG), - } - } -} - -impl From> for EnableHolder { - fn from(gr: RRC) -> Self { - Self::Group(gr) - } -} - -impl From> for EnableHolder { - fn from(cb: RRC) -> Self { - Self::CombGroup(cb) - } -} - -impl From<&RRC> for EnableHolder { - fn from(gr: &RRC) -> Self { - Self::Group(Rc::clone(gr)) - } -} - -impl From<&RRC> for EnableHolder { - fn from(cb: &RRC) -> Self { - Self::CombGroup(Rc::clone(cb)) - } -} - -impl From>> for EnableHolder { - fn from(v: Vec>) -> Self { - Self::Vec(Rc::new(v)) - } -} - -impl From<&Rc> for EnableHolder { - fn from(e: &Rc) -> Self { - Self::Enable(e.clone()) - } -} - -impl From> for EnableHolder { - fn from(e: Rc) -> Self { - Self::Enable(e) - } -} - -pub struct EnableInterpreter { - enable: EnableHolder, - group_name: Option, - interp: AssignmentInterpreter, - qin: ComponentQualifiedInstanceName, -} - -impl EnableInterpreter { - pub fn new( - enable: E, - group_name: Option, - mut env: InterpreterState, - continuous: iir::ContinuousAssignments, - qin: &ComponentQualifiedInstanceName, - ) -> Self - where - E: Into, - { - let enable: EnableHolder = enable.into(); - - if let Some(go) = enable.go_port() { - env.insert(go, Value::bit_high()) - } - - let assigns = enable.clone(); - let done = enable.done_port(); - let interp = AssignmentInterpreter::new(env, done, assigns, continuous); - Self { - enable, - group_name, - interp, - qin: qin.clone(), - } - } -} - -impl EnableInterpreter { - fn reset(mut self) -> InterpreterResult { - if let Some(go) = self.enable.go_port() { - self.interp.get_mut_env().insert(go, Value::bit_low()) - } - - self.interp.reset() - } - fn get(&self, port: impl AsRaw) -> &Value { - self.interp.get(port) - } -} - -impl Interpreter for EnableInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - self.interp.step() - } - - fn run(&mut self) -> InterpreterResult<()> { - self.interp.run() - } - - fn deconstruct(self) -> InterpreterResult { - self.reset() - } - - fn is_done(&self) -> bool { - self.interp.is_deconstructable() - } - - fn get_env(&self) -> StateView<'_> { - (self.interp.get_env()).into() - } - - fn currently_executing_group(&self) -> HashSet { - let mut set = HashSet::new(); - if let Some(name) = self.group_name { - set.insert(GroupQIN::new(&self.qin, name)); - } - set - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - (self.interp.get_mut_env()).into() - } - - fn converge(&mut self) -> InterpreterResult<()> { - self.interp.step_convergence() - } - - fn get_active_tree(&self) -> Vec { - let name = match self.group_name { - Some(name) => { - GroupQualifiedInstanceName::new_group(&self.qin, name) - } - None => GroupQualifiedInstanceName::new_empty(&self.qin), - }; - - vec![ActiveTreeNode::new(name.with_tag(self.enable.pos_tag()))] - } -} - -enum SeqFsm { - Err, // Transient error state - Iterating(ControlInterpreter, usize), - Done(InterpreterState), -} - -impl Default for SeqFsm { - fn default() -> Self { - Self::Err - } -} - -pub struct SeqInterpreter { - internal_state: SeqFsm, - info: ComponentInfo, - seq: Rc, -} -impl SeqInterpreter { - pub fn new( - seq: Rc, - env: InterpreterState, - info: ComponentInfo, - ) -> Self { - let internal_state = if seq.stmts.is_empty() { - SeqFsm::Done(env) - } else { - let first = seq.stmts[0].clone(); - let interp = ControlInterpreter::new(first, env, &info); - SeqFsm::Iterating(interp, 1) - }; - - Self { - seq, - internal_state, - info, - } - } -} - -impl Interpreter for SeqInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - match &mut self.internal_state { - SeqFsm::Iterating(interp, _) => { - // step the interpreter - if !interp.is_done() { - interp.step()?; - } - // transition to next block or done - else if let SeqFsm::Iterating(interp, idx) = - std::mem::take(&mut self.internal_state) - { - let env = interp.deconstruct()?; - - if idx < self.seq.stmts.len() { - let next = self.seq.stmts[idx].clone(); - let interp = - ControlInterpreter::new(next, env, &self.info); - self.internal_state = - SeqFsm::Iterating(interp, idx + 1); - } else { - self.internal_state = SeqFsm::Done(env); - } - } else { - // this is genuinely unreachable - unreachable!(); - } - Ok(()) - } - SeqFsm::Done(_) => Ok(()), - SeqFsm::Err => Err(InterpreterError::InvalidSeqState.into()), - } - } - - fn is_done(&self) -> bool { - matches!(&self.internal_state, SeqFsm::Done(_)) - } - - fn deconstruct(self) -> InterpreterResult { - match self.internal_state { - SeqFsm::Iterating(_, _) => { - Err(InterpreterError::InvalidSeqState.into()) - } - SeqFsm::Done(e) => Ok(e), - SeqFsm::Err => Err(InterpreterError::InvalidSeqState.into()), - } - } - - fn get_env(&self) -> StateView<'_> { - match &self.internal_state { - SeqFsm::Iterating(i, _) => i.get_env(), - SeqFsm::Done(e) => e.into(), - SeqFsm::Err => unreachable!("There is an error in the Seq state transition. Please report this."), - } - } - - fn currently_executing_group(&self) -> HashSet { - match &self.internal_state { - SeqFsm::Iterating(i, _) => i.currently_executing_group(), - SeqFsm::Done(_) => HashSet::new(), - SeqFsm::Err => unreachable!("There is an error in the Seq state transition. Please report this."), - } - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - match &mut self.internal_state { - SeqFsm::Iterating(i, _) => i.get_env_mut(), - SeqFsm::Done(e) => e.into(), - SeqFsm::Err => unreachable!("There is an error in the Seq state transition. Please report this."), - } - } - - fn converge(&mut self) -> InterpreterResult<()> { - match &mut self.internal_state { - SeqFsm::Err => Err(InterpreterError::InvalidSeqState.into()), - SeqFsm::Iterating(i, _) => i.converge(), - SeqFsm::Done(_) => { - if let SeqFsm::Done(env) = - std::mem::take(&mut self.internal_state) - { - let mut interp = EnableInterpreter::new( - vec![], - None, - env, - self.info.continuous_assignments.clone(), - &self.info.qin, - ); - - interp.converge()?; - - let env = interp.deconstruct()?; - - self.internal_state = SeqFsm::Done(env); - Ok(()) - } else { - unreachable!() - } - } - } - } - - fn run(&mut self) -> InterpreterResult<()> { - match &mut self.internal_state { - SeqFsm::Err => Err(InterpreterError::InvalidSeqState.into()), - SeqFsm::Iterating(_, _) => { - if let SeqFsm::Iterating(i, mut idx) = - std::mem::take(&mut self.internal_state) - { - let mut env = i.run_and_deconstruct()?; - while idx < self.seq.stmts.len() { - let next = self.seq.stmts[idx].clone(); - idx += 1; - env = ControlInterpreter::new(next, env, &self.info) - .run_and_deconstruct()?; - } - self.internal_state = SeqFsm::Done(env); - Ok(()) - } else { - unreachable!() - } - } - SeqFsm::Done(_) => Ok(()), - } - } - - fn get_active_tree(&self) -> Vec { - match &self.internal_state { - SeqFsm::Iterating(i, _) => i.get_active_tree(), - SeqFsm::Done(_) => vec![], - SeqFsm::Err => unreachable!("There is an error in the Seq state transition. Please report this."), - } - } -} - -pub struct ParInterpreter { - interpreters: Vec, - in_state: InterpreterState, - info: ComponentInfo, -} - -impl ParInterpreter { - pub fn new( - par: Rc, - mut env: InterpreterState, - info: ComponentInfo, - ) -> Self { - let mut env = env.force_fork(); - let interpreters = par - .stmts - .iter() - .cloned() - .map(|x| ControlInterpreter::new(x, env.fork(), &info)) - .collect(); - - Self { - interpreters, - in_state: env, - info, - } - } -} - -impl Interpreter for ParInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - for i in &mut self.interpreters { - i.step()?; - } - Ok(()) - } - - fn deconstruct(self) -> InterpreterResult { - assert!(self.interpreters.iter().all(|x| x.is_done())); - let envs = self - .interpreters - .into_iter() - .map(ControlInterpreter::deconstruct) - .collect::>>()?; - - self.in_state.merge_many(envs, &self.info.input_ports) - } - - fn is_done(&self) -> bool { - self.interpreters.iter().all(|x| x.is_done()) - } - - fn get_env(&self) -> StateView<'_> { - CompositeView::new( - &self.in_state, - self.interpreters.iter().map(|x| x.get_env()).collect(), - ) - .into() - } - - fn currently_executing_group(&self) -> HashSet { - self.interpreters - .iter() - .flat_map(|x| x.currently_executing_group()) - .collect() - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - MutCompositeView::new( - &mut self.in_state, - self.interpreters - .iter_mut() - .map(|x| x.get_env_mut()) - .collect(), - ) - .into() - } - - fn converge(&mut self) -> InterpreterResult<()> { - for res in self - .interpreters - .iter_mut() - .map(ControlInterpreter::converge) - { - // return first error - if let err @ Err(_) = res { - return err; - } - } - Ok(()) - } - - fn get_active_tree(&self) -> Vec { - self.interpreters - .iter() - .flat_map(|x| x.get_active_tree()) - .collect() - } -} - -enum IfFsm { - Err, // transient error state - ConditionWith(Box), // Cond with comb group - ConditionPort(InterpreterState), // cond without - Body(ControlInterpreter), - Done(InterpreterState), -} - -impl Default for IfFsm { - fn default() -> Self { - Self::Err - } -} - -pub struct IfInterpreter { - state: IfFsm, - ctrl_if: Rc, - info: ComponentInfo, -} - -impl IfInterpreter { - pub fn new( - ctrl_if: Rc, - env: InterpreterState, - info: ComponentInfo, - ) -> Self { - let state = if let Some(grp) = &ctrl_if.cond { - let grp_ref = grp.borrow(); - let name = Some(grp_ref.name()); - let enable = EnableInterpreter::new( - grp, - name, - env, - info.continuous_assignments.clone(), - &info.qin, - ); - IfFsm::ConditionWith(enable.into()) - } else { - IfFsm::ConditionPort(env) - }; - - Self { - state, - ctrl_if, - info, - } - } -} - -impl Interpreter for IfInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - match &mut self.state { - IfFsm::ConditionWith(_) => { - if let IfFsm::ConditionWith(mut interp) = - std::mem::take(&mut self.state) - { - interp.converge()?; - let branch_condition = - interp.get(&self.ctrl_if.port).as_bool(); - - let env = interp.deconstruct()?; - - let target = if branch_condition { - &self.ctrl_if.tbranch - } else { - &self.ctrl_if.fbranch - }; - - let interp = ControlInterpreter::new( - target.clone(), - env, - &self.info, - ); - - self.state = IfFsm::Body(interp); - - Ok(()) - } else { - unreachable!(); - } - } - IfFsm::ConditionPort(_) => { - if let IfFsm::ConditionPort(env) = - std::mem::take(&mut self.state) - { - let branch_condition = - env.get_from_port(&self.ctrl_if.port).as_bool(); - - let target = if branch_condition { - &self.ctrl_if.tbranch - } else { - &self.ctrl_if.fbranch - }; - - let interp = ControlInterpreter::new( - target.clone(), - env, - &self.info, - ); - - self.state = IfFsm::Body(interp); - Ok(()) - } else { - unreachable!(); - } - } - IfFsm::Body(b_interp) => { - if b_interp.is_done() { - if let IfFsm::Body(b_interp) = - std::mem::take(&mut self.state) - { - let env = b_interp.deconstruct()?; - self.state = IfFsm::Done(env); - } else { - unreachable!(); - } - } else { - b_interp.step()?; - } - Ok(()) - } - IfFsm::Done(_) => Ok(()), - IfFsm::Err => Err(InterpreterError::InvalidIfState.into()), - } - } - - fn deconstruct(self) -> InterpreterResult { - match self.state { - IfFsm::Done(e) => Ok(e), - _ => Err(InterpreterError::InvalidIfState.into()), - } - } - - fn is_done(&self) -> bool { - matches!(self.state, IfFsm::Done(_)) - } - - fn get_env(&self) -> StateView<'_> { - match &self.state { - IfFsm::Done(e) | IfFsm::ConditionPort(e) => e.into(), - IfFsm::ConditionWith(i) => i.get_env(), - IfFsm::Body(b) => b.get_env(), - IfFsm::Err => unreachable!("There is an error in the If state transition. Please report this."), - } - } - - fn currently_executing_group(&self) -> HashSet { - match &self.state { - IfFsm::Done(_) | IfFsm::ConditionPort(_) => HashSet::new(), - IfFsm::ConditionWith(i) => i.currently_executing_group(), - IfFsm::Body(b) => b.currently_executing_group(), - IfFsm::Err => unreachable!("There is an error in the If state transition. Please report this."), - } - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - match &mut self.state { - IfFsm::Done(e) | IfFsm::ConditionPort(e) => e.into(), - IfFsm::ConditionWith(i) => i.get_env_mut(), - IfFsm::Body(b) => b.get_env_mut(), - IfFsm::Err => unreachable!("There is an error in the If state transition. Please report this."), - } - } - - fn converge(&mut self) -> InterpreterResult<()> { - match &mut self.state { - IfFsm::Err => Err(InterpreterError::InvalidIfState.into()), - IfFsm::Body(b_interp) => b_interp.converge(), - IfFsm::ConditionPort(_) | IfFsm::Done(_) => { - let is_done = matches!(self.state, IfFsm::Done(_)); - if let IfFsm::ConditionPort(env) | IfFsm::Done(env) = - std::mem::take(&mut self.state) - { - let mut interp = EnableInterpreter::new( - vec![], - None, - env, - self.info.continuous_assignments.clone(), - &self.info.qin, - ); - interp.converge()?; - - let env = interp.deconstruct()?; - - if is_done { - self.state = IfFsm::Done(env) - } else { - self.state = IfFsm::ConditionPort(env) - } - Ok(()) - } else { - unreachable!() - } - } - IfFsm::ConditionWith(interp) => interp.converge(), - } - } - - fn get_active_tree(&self) -> Vec { - match &self.state { - IfFsm::Done(_) | IfFsm::ConditionPort(_) => Vec::new(), - IfFsm::ConditionWith(i) => i.get_active_tree(), - IfFsm::Body(b) => b.get_active_tree(), - IfFsm::Err => unreachable!("There is an error in the If state transition. Please report this."), - } - } -} - -enum WhileFsm { - Err, // transient error state - CondWith(Box), - CondPort(InterpreterState), - Body(ControlInterpreter), - Done(InterpreterState), -} - -impl Default for WhileFsm { - fn default() -> Self { - Self::Err - } -} - -struct BoundValidator { - target: u64, - current: u64, -} - -pub struct WhileInterpreter { - state: WhileFsm, - wh: Rc, - info: ComponentInfo, - bound: Option, -} - -impl WhileInterpreter { - pub fn new( - ctrl_while: Rc, - env: InterpreterState, - info: ComponentInfo, - ) -> Self { - let bound = ctrl_while - .attributes - .get(ir::NumAttr::Bound) - .map(|target| BoundValidator { target, current: 0 }); - - let mut out = Self { - info, - state: WhileFsm::Err, - wh: ctrl_while, - bound, - }; - out.process_initial_state(env); - out - } - - /// Utility method whichs handles a return to the appropriate condition state - fn process_initial_state(&mut self, env: InterpreterState) { - if let Some(cond_grp) = &self.wh.cond { - let grp_ref = cond_grp.borrow(); - let name = grp_ref.name(); - let interp = EnableInterpreter::new( - cond_grp.clone(), - Some(name), - env, - self.info.continuous_assignments.clone(), - &self.info.qin, - ); - self.state = WhileFsm::CondWith(interp.into()); - } else { - self.state = WhileFsm::CondPort(env); - } - } - - /// Utility method which handles the state change from the initial states to - /// body / done - fn process_branch( - &mut self, - branch_condition: bool, - env: InterpreterState, - ) { - if !branch_condition { - self.state = WhileFsm::Done(env); - if let Some(bound_validator) = &mut self.bound { - if bound_validator.current != bound_validator.target { - let logger = new_sublogger(self.info.qin.as_id()); - let target = bound_validator.target; - let current = bound_validator.current; - let line = self - .wh - .attributes - .copy_span() - .into_option() - .map(|x| x.show()) - .unwrap_or_default(); - warn!(logger,"While loop has violated its bounds. The annotation suggests that the body should execute {target} times, but it exited after {current} iterations. \n {line}"); - } - } - } else { - if let Some(bound_validator) = &mut self.bound { - bound_validator.current += 1; - - if bound_validator.current > bound_validator.target { - let logger = new_sublogger(self.info.qin.as_id()); - let target = bound_validator.target; - let current = bound_validator.current; - let line = self - .wh - .attributes - .copy_span() - .into_option() - .map(|x| x.show()) - .unwrap_or_default(); - warn!(logger,"While loop has violated its bounds. The annotation suggests that the body should execute {target} times, but it has entered its {current} iteration. \n {line}"); - } - } - - let interp = - ControlInterpreter::new(self.wh.body.clone(), env, &self.info); - - self.state = WhileFsm::Body(interp); - } - } -} - -impl Interpreter for WhileInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - match &mut self.state { - WhileFsm::Err => Err(InterpreterError::InvalidWhileState.into()), - WhileFsm::CondWith(_) => { - if let WhileFsm::CondWith(mut interp) = - std::mem::take(&mut self.state) - { - interp.converge()?; - let branch_condition = interp.get(&self.wh.port).as_bool(); - let env = interp.deconstruct()?; - - self.process_branch(branch_condition, env); - - Ok(()) - } else { - unreachable!() - } - } - WhileFsm::CondPort(_) => { - if let WhileFsm::CondPort(env) = std::mem::take(&mut self.state) - { - let branch_condition = - env.get_from_port(&self.wh.port).as_bool(); - self.process_branch(branch_condition, env); - Ok(()) - } else { - unreachable!(); - } - } - WhileFsm::Body(b) => { - if b.is_done() { - if let WhileFsm::Body(b) = std::mem::take(&mut self.state) { - let env = b.deconstruct()?; - self.process_initial_state(env); - } else { - unreachable!() - } - } else { - b.step()?; - } - Ok(()) - } - WhileFsm::Done(_) => Ok(()), - } - } - - fn deconstruct(self) -> InterpreterResult { - match self.state { - WhileFsm::Done(e) => Ok(e), - _ => Err(InterpreterError::InvalidWhileState.into()), - } - } - - fn is_done(&self) -> bool { - matches!(self.state, WhileFsm::Done(_)) - } - - fn get_env(&self) -> StateView<'_> { - match &self.state { - WhileFsm::Err => unreachable!("There is an error in the While state transition. Please report this."), - WhileFsm::CondPort(e) | WhileFsm::Done(e) => e.into(), - WhileFsm::CondWith(interp) => interp.get_env(), - WhileFsm::Body(b) => b.get_env(), - } - } - - fn currently_executing_group(&self) -> HashSet { - match &self.state { - WhileFsm::Err => unreachable!("There is an error in the While state transition. Please report this."), - WhileFsm::CondWith(interp) => interp.currently_executing_group(), - WhileFsm::CondPort(_) | WhileFsm::Done(_) => HashSet::new(), - WhileFsm::Body(b) => b.currently_executing_group(), - } - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - match &mut self.state { - WhileFsm::Err => unreachable!("There is an error in the While state transition. Please report this."), - WhileFsm::CondPort(e) | WhileFsm::Done(e) => e.into(), - WhileFsm::CondWith(interp) => interp.get_env_mut(), - WhileFsm::Body(b) => b.get_env_mut(), - } - } - - fn converge(&mut self) -> InterpreterResult<()> { - match &mut self.state { - WhileFsm::Err => Err(InterpreterError::InvalidWhileState.into()), - WhileFsm::Body(b) => b.converge(), - WhileFsm::CondWith(interp) => interp.converge(), - WhileFsm::CondPort(_) | WhileFsm::Done(_) => { - let is_done = matches!(self.state, WhileFsm::Done(_)); - if let WhileFsm::CondPort(env) | WhileFsm::Done(env) = - std::mem::take(&mut self.state) - { - let mut interp = EnableInterpreter::new( - vec![], - None, - env, - self.info.continuous_assignments.clone(), - &self.info.qin, - ); - interp.converge()?; - let env = interp.deconstruct()?; - - if is_done { - self.state = WhileFsm::Done(env) - } else { - self.state = WhileFsm::CondPort(env) - } - Ok(()) - } else { - unreachable!() - } - } - } - } - - fn get_active_tree(&self) -> Vec { - match &self.state { - WhileFsm::Err => unreachable!("There is an error in the while state transition. Please report this."), - WhileFsm::CondPort(_) | WhileFsm::Done(_) => vec![], - WhileFsm::CondWith(interp) => interp.get_active_tree(), - WhileFsm::Body(b) => b.get_active_tree(), - } - } -} -pub struct InvokeInterpreter { - invoke: Rc, - assign_interp: AssignmentInterpreter, - qin: ComponentQualifiedInstanceName, -} - -impl InvokeInterpreter { - pub fn new( - invoke: Rc, - mut env: InterpreterState, - continuous_assignments: iir::ContinuousAssignments, - qin: ComponentQualifiedInstanceName, - ) -> Self { - let mut assignment_vec: Vec> = vec![]; - let comp_cell = invoke.comp.borrow(); - - if !invoke.ref_cells.is_empty() { - todo!("Interpreter does not currently support ref-cells. Please run the compile-ref pass.") - } - - //first connect the inputs (from connection -> input) - for (input_port, connection) in &invoke.inputs { - let comp_input_port = comp_cell.get(input_port); - assignment_vec.push(Assignment { - dst: comp_input_port, - src: Rc::clone(connection), - guard: Guard::default().into(), - attributes: ir::Attributes::default(), - }); - } - - //second connect the output ports (from output -> connection) - for (output_port, connection) in &invoke.outputs { - let comp_output_port = comp_cell.get(output_port); - assignment_vec.push(Assignment { - dst: Rc::clone(connection), - src: comp_output_port, - guard: Guard::default().into(), - attributes: ir::Attributes::default(), - }) - } - - // insert with assignments, if present - if let Some(with) = &invoke.comb_group { - let w_ref = with.borrow(); - // TODO (Griffin): probably should avoid duplicating these. - assignment_vec.extend(w_ref.assignments.iter().cloned()); - } - - let go_port = comp_cell.get_unique_with_attr(ir::NumAttr::Go).unwrap(); - // insert one into the go_port - // should probably replace with an actual assignment from a constant one - env.insert(go_port, Value::bit_high()); - - let comp_done_port = - comp_cell.get_unique_with_attr(ir::NumAttr::Done).unwrap(); - let interp = AssignmentInterpreter::new( - env, - comp_done_port.into(), - assignment_vec, - continuous_assignments, - ); - - drop(comp_cell); - - Self { - invoke, - assign_interp: interp, - qin, - } - } -} - -impl Interpreter for InvokeInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - self.assign_interp.step() - } - - fn run(&mut self) -> InterpreterResult<()> { - self.assign_interp.run() - } - - fn deconstruct(self) -> InterpreterResult { - let mut env = self.assign_interp.reset()?; - - // set go low - let go_port = self - .invoke - .comp - .borrow() - .get_unique_with_attr(ir::NumAttr::Go) - .unwrap(); - // insert one into the go_port - // should probably replace with an actual assignment from a constant one - env.insert(go_port, Value::bit_low()); - - Ok(env) - } - - fn is_done(&self) -> bool { - self.assign_interp.is_deconstructable() - } - - fn get_env(&self) -> StateView<'_> { - self.assign_interp.get_env().into() - } - - fn currently_executing_group(&self) -> HashSet { - HashSet::new() - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - self.assign_interp.get_mut_env().into() - } - - fn converge(&mut self) -> InterpreterResult<()> { - self.assign_interp.step_convergence() - } - - fn get_active_tree(&self) -> Vec { - let name = GroupQualifiedInstanceName::new_phantom( - &self.qin, - format!("invoke {}", self.invoke.comp.borrow().name()).into(), - ); - - let pos_tag = self.invoke.attributes.get(POS_TAG); - - vec![ActiveTreeNode::new(name.with_tag(pos_tag))] - } -} - -// internal use macro that just captures the same name and expression for each -// arm of the control interpreter match. This is largely as a convenience -macro_rules! control_match { - ($matched: ident, $name:ident, $exp:expr) => {{ - match $matched { - ControlInterpreter::Empty($name) => $exp, - ControlInterpreter::Enable($name) => $exp, - ControlInterpreter::Seq($name) => $exp, - ControlInterpreter::Par($name) => $exp, - ControlInterpreter::If($name) => $exp, - ControlInterpreter::While($name) => $exp, - ControlInterpreter::Invoke($name) => $exp, - } - }}; -} - -pub enum ControlInterpreter { - Empty(Box), - Enable(Box), - Seq(Box), - Par(Box), - If(Box), - While(Box), - Invoke(Box), -} - -impl ControlInterpreter { - pub fn new( - control: iir::Control, - env: InterpreterState, - info: &ComponentInfo, - ) -> Self { - match control { - iir::Control::Seq(s) => { - Self::Seq(Box::new(SeqInterpreter::new(s, env, info.clone()))) - } - iir::Control::Par(par) => { - Self::Par(Box::new(ParInterpreter::new(par, env, info.clone()))) - } - iir::Control::If(i) => { - Self::If(Box::new(IfInterpreter::new(i, env, info.clone()))) - } - iir::Control::While(w) => Self::While(Box::new( - WhileInterpreter::new(w, env, info.clone()), - )), - iir::Control::Invoke(i) => { - Self::Invoke(Box::new(InvokeInterpreter::new( - i, - env, - info.continuous_assignments.clone(), - info.qin.clone(), - ))) - } - iir::Control::Enable(e) => { - let name = e.group.borrow().name(); - Self::Enable(Box::new(EnableInterpreter::new( - e, - Some(name), - env, - info.continuous_assignments.clone(), - &info.qin, - ))) - } - iir::Control::Empty(_) => { - Self::Empty(Box::new(EmptyInterpreter::new(env))) - } - } - } -} - -impl Interpreter for ControlInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - control_match!(self, i, i.step()) - } - - fn run(&mut self) -> InterpreterResult<()> { - control_match!(self, i, i.run()) - } - - fn deconstruct(self) -> InterpreterResult { - control_match!(self, i, i.deconstruct()) - } - - fn is_done(&self) -> bool { - control_match!(self, i, i.is_done()) - } - - fn get_env(&self) -> StateView<'_> { - control_match!(self, i, i.get_env()) - } - - fn currently_executing_group(&self) -> HashSet { - control_match!(self, i, i.currently_executing_group()) - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - control_match!(self, i, i.get_env_mut()) - } - - fn converge(&mut self) -> InterpreterResult<()> { - control_match!(self, i, i.converge()) - } - - fn get_active_tree(&self) -> Vec { - control_match!(self, i, i.get_active_tree()) - } -} - -pub struct StructuralInterpreter { - interp: AssignmentInterpreter, - continuous: iir::ContinuousAssignments, - done_port: ConstPort, -} - -impl StructuralInterpreter { - pub fn from_component( - comp: &Rc, - env: InterpreterState, - ) -> Self { - let comp_sig = comp.signature.borrow(); - let done_port = - comp_sig.get_unique_with_attr(ir::NumAttr::Done).unwrap(); - let done_raw = done_port.as_raw(); - let continuous = Rc::clone(&comp.continuous_assignments); - let assigns: Vec> = vec![]; - - let interp = AssignmentInterpreter::new( - env, - Some(done_port), - assigns, - continuous.clone(), - ); - - Self { - interp, - continuous, - done_port: done_raw, - } - } -} - -impl Interpreter for StructuralInterpreter { - fn step(&mut self) -> InterpreterResult<()> { - self.interp.force_step_cycle() - } - - fn deconstruct(self) -> InterpreterResult { - let final_env = self.interp.deconstruct()?; - finish_interpretation( - final_env, - Some(self.done_port), - self.continuous.iter(), - ) - } - - fn run(&mut self) -> InterpreterResult<()> { - self.interp.run() - } - - fn is_done(&self) -> bool { - self.interp.is_deconstructable() - } - - fn get_env(&self) -> StateView<'_> { - self.interp.get_env().into() - } - - fn currently_executing_group(&self) -> HashSet { - HashSet::new() - } - - fn get_env_mut(&mut self) -> MutStateView<'_> { - self.interp.get_mut_env().into() - } - - fn converge(&mut self) -> InterpreterResult<()> { - self.interp.step_convergence() - } - - fn get_active_tree(&self) -> Vec { - vec![] - } -} diff --git a/interp/src/interpreter/group_interpreter.rs b/interp/src/interpreter/group_interpreter.rs deleted file mode 100644 index 0a68246eb7..0000000000 --- a/interp/src/interpreter/group_interpreter.rs +++ /dev/null @@ -1,584 +0,0 @@ -use super::utils::{self, ConstCell, ConstPort}; -use crate::environment::InterpreterState; -use crate::errors::{InterpreterError, InterpreterResult}; -use crate::interpreter::utils::get_dest_cells; -use crate::utils::{AsRaw, PortAssignment, RcOrConst}; -use crate::values::Value; -use calyx_ir::{self as ir, Assignment, Cell, RRC}; -use std::cell::Ref; -use std::collections::{HashMap, HashSet}; -use std::rc::Rc; - -use super::control_interpreter::EnableHolder; -use crate::interpreter_ir as iir; - -pub enum AssignmentHolder { - CombGroup(RRC), - Group(RRC), - Vec(Rc>>), -} - -impl Default for AssignmentHolder { - fn default() -> Self { - Self::Vec(Rc::new(Vec::new())) - } -} - -impl From> for AssignmentHolder { - fn from(input: RRC) -> Self { - Self::CombGroup(input) - } -} - -impl From> for AssignmentHolder { - fn from(gr: RRC) -> Self { - Self::Group(gr) - } -} - -impl From>> for AssignmentHolder { - fn from(v: Vec>) -> Self { - Self::Vec(Rc::new(v)) - } -} - -impl From>>> for AssignmentHolder { - fn from(v: Rc>>) -> Self { - Self::Vec(v) - } -} - -impl From for AssignmentHolder { - fn from(en: EnableHolder) -> Self { - match en { - EnableHolder::Group(grp) => AssignmentHolder::Group(grp), - EnableHolder::CombGroup(cgrp) => AssignmentHolder::CombGroup(cgrp), - EnableHolder::Vec(v) => AssignmentHolder::Vec(v), - EnableHolder::Enable(e) => AssignmentHolder::Group(e.group.clone()), - } - } -} - -impl AssignmentHolder { - pub fn get_ref(&self) -> IterRef<'_> { - match self { - AssignmentHolder::CombGroup(cg) => IterRef::CombGroup(cg.borrow()), - AssignmentHolder::Group(grp) => IterRef::Group(grp.borrow()), - AssignmentHolder::Vec(v) => IterRef::Vec(v), - } - } - pub fn get_name(&self) -> Option { - match self { - AssignmentHolder::CombGroup(cg) => Some(cg.borrow().name()), - AssignmentHolder::Group(g) => Some(g.borrow().name()), - AssignmentHolder::Vec(_) => None, - } - } -} - -pub enum IterRef<'a> { - CombGroup(Ref<'a, ir::CombGroup>), - Group(Ref<'a, ir::Group>), - Vec(&'a Rc>>), -} - -impl<'a> IterRef<'a> { - pub fn iter( - &self, - ) -> Box> + '_> { - match self { - IterRef::CombGroup(cg) => Box::new(cg.assignments.iter()), - IterRef::Group(g) => Box::new(g.assignments.iter()), - IterRef::Vec(v) => Box::new(v.iter()), - } - } -} - -enum ConvergeType { - Continuous, - Both, -} - -/// An interpreter object which exposes a pausable interface to interpreting a -/// group of assignments -pub struct AssignmentInterpreter { - state: InterpreterState, - done_port: Option, - assigns: AssignmentHolder, - cont_assigns: iir::ContinuousAssignments, - cells: Vec>, - val_changed: Option, - possible_ports: HashSet<*const ir::Port>, - port_lookup_map: HashMap<*const ir::Port, RRC>, -} - -impl AssignmentInterpreter { - /// Creates a new AssignmentInterpreter which borrows the references to the - /// assignments from an outside context - pub fn new>( - state: InterpreterState, - done_signal: Option>, - assigns: A, - cont_assigns: Rc>>, - ) -> Self { - let done_port = done_signal.as_ref().map(|x| x.as_raw()); - let assigns: AssignmentHolder = assigns.into(); - let cells = utils::get_dest_cells( - assigns.get_ref().iter().chain(cont_assigns.iter()), - done_signal, - ); - let mut port_lookup_map = HashMap::new(); - let possible_ports: HashSet<*const ir::Port> = assigns - .get_ref() - .iter() - .chain(cont_assigns.iter()) - .map(|a| { - port_lookup_map.insert(a.dst.as_raw(), a.dst.clone()); - a.dst.as_raw() - }) - .collect(); - - Self { - state, - done_port, - assigns, - cont_assigns, - cells, - val_changed: None, - possible_ports, - port_lookup_map, - } - } - - /// Advance the stepper by a clock cycle - pub fn step_cycle(&mut self) -> InterpreterResult<()> { - if !self.is_done() { - self.force_step_cycle()?; - } - - Ok(()) - } - - pub fn force_step_cycle(&mut self) -> InterpreterResult<()> { - if self.val_changed.unwrap_or(true) { - self.step_convergence()?; - } - - let mut update_list: Vec<(RRC, Value)> = vec![]; - - for cell in self.cells.iter() { - if let Some(x) = self - .state - .cell_map - .borrow_mut() - .get_mut(&(&cell.borrow() as &Cell as ConstCell)) - { - let new_vals = x.do_tick()?; - for (port, val) in new_vals { - let port_ref = - cell.borrow().find(&port).unwrap_or_else(|| { - panic!( - "Could not find port: {}.{}. This should never happen, please make an issue.", - cell.borrow().name(), - port - ) - }); - - update_list.push((Rc::clone(&port_ref), val)); - } - } - } - - for (port, val) in update_list { - self.state.insert(port, val); - } - self.val_changed = None; - - Ok(()) - } - - fn converge_assignments( - &mut self, - converge_type: ConvergeType, - ) -> InterpreterResult<()> { - // only used when compiled with change-based-sim feature - let mut first_iteration = true; - - let mut updates_list = vec![]; - - // this unwrap is safe - while self.val_changed.unwrap() { - let mut assigned_ports: HashSet = HashSet::new(); - self.val_changed = Some(false); - - // for change based simulation - let mut cells_to_run_rrc: Vec> = Vec::new(); - let mut cells_to_run_set: HashSet<*const Cell> = HashSet::new(); - - let assign_ref = self.assigns.get_ref(); - - let assigns: Box< - dyn Iterator>, - > = match converge_type { - ConvergeType::Continuous => Box::new(self.cont_assigns.iter()) - as Box>>, - ConvergeType::Both => { - Box::new(assign_ref.iter().chain(self.cont_assigns.iter())) - as Box< - dyn Iterator>, - > - } - }; - - // compute all updates from the assignments - for assignment in assigns { - if self.state.eval_guard(&assignment.guard)? { - let pa = PortAssignment::new(assignment); - //first check nothing has been assigned to this destination yet - if let Some(prior_assign) = assigned_ports.get(&pa) { - let s_orig = prior_assign.get_assignment(); - let s_conf = pa.get_assignment(); - - let dst = assignment.dst.borrow(); - - return Err(InterpreterError::conflicting_assignments( - dst.name, - dst.get_parent_name(), - s_orig, - s_conf, - ) - .into()); - } - //now add to the HS, because we are assigning - //regardless of whether value has changed this is still a - //value driving the port - assigned_ports.insert(pa); - //ok now proceed - //the below (get) attempts to get from working_env HM first, then - //backing_env Smoosher. What does it mean for the value to be in HM? - //That it's a locked value? - let old_val = - self.state.get_from_port(&assignment.dst.borrow()); - let new_val_ref = - self.state.get_from_port(&assignment.src.borrow()); - // no need to make updates if the value has not changed - - if old_val != new_val_ref { - let port = assignment.dst.clone(); // Rc clone - let new_val = new_val_ref.clone(); - - if cfg!(feature = "change-based-sim") { - let pref = port.borrow(); - - if let ir::PortParent::Cell(cell) = &pref.parent { - let cell_rrc = cell.upgrade(); - if cells_to_run_set.insert(cell_rrc.as_raw()) { - cells_to_run_rrc.push(cell_rrc) - } - } - } - - updates_list.push((port, new_val)); //no point in rewriting same value to this list - self.val_changed = Some(true); - } - } - } - - let assigned_const_ports: HashSet<_> = assigned_ports - .iter() - .map(PortAssignment::get_port) - .collect(); - - //now assign rest to 0 - //first get all that need to be 0 - for port in &self.possible_ports - &assigned_const_ports { - //need to set to zero, because unassigned - //ok now proceed - - //need to find appropriate-sized 0, so just read - //width of old_val - - let old_val = self.state.get_from_port(port); - let old_val_width = old_val.width(); //&assignment.dst.borrow().width() - let new_val = Value::from(0, old_val_width); - - if old_val.as_unsigned() != 0_u32.into() { - if cfg!(feature = "change-based-sim") { - let port_ref = &self.port_lookup_map[&port].borrow(); - if let ir::PortParent::Cell(cell) = &port_ref.parent { - let cell_rrc = cell.upgrade(); - if cells_to_run_set.insert(cell_rrc.as_raw()) { - cells_to_run_rrc.push(cell_rrc) - } - } - } - - self.val_changed = Some(true); - } - - //update directly - self.state.insert(port, new_val); - } - - // perform all the updates - for (port, value) in updates_list.drain(..) { - self.state.insert(port, value); - } - - let changed = eval_prims( - &mut self.state, - if cfg!(feature = "change-based-sim") { - if first_iteration { - self.cells.iter() - } else { - cells_to_run_rrc.iter() - } - } else { - self.cells.iter() - }, - false, - )?; - if changed { - self.val_changed = Some(true); - } - - if cfg!(feature = "change-based-sim") { - first_iteration = false; - } - } - Ok(()) - } - - /// Continue interpreting the assignments until the combinational portions - /// converge - pub fn step_convergence(&mut self) -> InterpreterResult<()> { - self.val_changed = Some(true); // always run convergence if called - - if !self.done_port_high() { - self.converge_assignments(ConvergeType::Both)?; - } - - if self.done_port_high() { - // VERY IMPORTANT TO SET THIS HERE. Failure to do so will cause an - // infinite loop as the groups will never be considered done - self.val_changed = Some(false); - - for assign in self.assigns.get_ref().iter() { - // this unwrap is safe since done_port_high requires the - // done_port to be some - if assign.dst.as_raw() != self.done_port.unwrap() { - // all destinations other than the done_port get assigned - // zero - self.state.insert( - &assign.dst, - Value::zeroes(assign.dst.borrow().width), - ); - } - } - - // TODO Griffin: check if none here is actually okay. I think it is, - // but it merits further thinking - let cells = - utils::get_dest_cells(self.assigns.get_ref().iter(), None); - - eval_prims(&mut self.state, cells.iter(), false)?; - self.converge_assignments(ConvergeType::Continuous)?; - } - - Ok(()) - } - /// Advance the interpreter by a cycle, if possible - pub fn step(&mut self) -> InterpreterResult<()> { - self.step_cycle()?; - self.step_convergence() - } - - /// Run the interpreter until it finishes executing - pub fn run(&mut self) -> InterpreterResult<()> { - while !self.is_deconstructable() { - self.step()?; - } - self.step_convergence() - } - - #[inline] - fn is_done(&self) -> bool { - self.done_port.is_none() - || utils::is_signal_high( - self.state.get_from_port(self.done_port.unwrap()), - ) - } - - #[inline] - /// true only if the done port exists and is high - /// different from is_done which is true if there is no done port or if the - /// done port exists and is high - fn done_port_high(&self) -> bool { - self.done_port - .map(|x| self.state.get_from_port(x).as_bool()) - .unwrap_or(false) - } - - pub fn deconstruct(self) -> InterpreterResult { - if self.is_deconstructable() { - Ok(self.deconstruct_no_check()) - } else if let Some(name) = self.assigns.get_name() { - Err(InterpreterError::InvalidGroupExitNamed(name).into()) - } else { - Err(InterpreterError::InvalidGroupExitUnnamed.into()) - } - } - - #[inline] - fn deconstruct_no_check(self) -> InterpreterState { - self.state - } - - pub fn is_deconstructable(&self) -> bool { - self.is_done() - && self.val_changed.is_some() - && !self.val_changed.unwrap() - } - - /// The interpreter must have finished executing first - pub fn reset(mut self) -> InterpreterResult { - let assigns = std::mem::take(&mut self.assigns); - let done_signal = self.done_port; - let env = self.deconstruct()?; - - let assign_ref = assigns.get_ref(); - - // note there might be some trouble with mixed assignments - finish_interpretation(env, done_signal, assign_ref.iter()) - } - - pub fn get>(&self, port: P) -> &Value { - self.state.get_from_port(port) - } - - // This is not currenty relevant for anything, but may be needed later - // pending adjustments to the primitive contract as we will need the ability - // to pass new inputs to components - pub(super) fn _insert>(&mut self, port: P, val: Value) { - self.state.insert(port, val) - } - - pub fn get_env(&self) -> &InterpreterState { - &self.state - } - - pub fn get_mut_env(&mut self) -> &mut InterpreterState { - &mut self.state - } -} - -/// Evaluates the primitives corresponding to the given iterator of cells, based -/// on the current environment. Returns a set of assignments that may change -/// based on the updates to primitive values. -/// -/// Note: this function could be written with only one lifetime, but it is worth -/// noting that the returned assignments refs are tied to the dependency map and -/// thus to the assignments it is referencing meanwhile the lifetime on the -/// given cell RRCs is unrelated and largely irrelevant as the prim_map is keyed -/// off of port raw pointers whose lifetime is uncoupled from the cells. -pub(crate) fn eval_prims<'a, 'b, I: Iterator>>( - env: &mut InterpreterState, - exec_list: I, - reset_flag: bool, // reset vals or execute normally -) -> InterpreterResult { - let mut val_changed = false; - // split mutability - // TODO: change approach based on new env, once ready - let ref_clone = env.cell_map.clone(); // RC clone - let mut prim_map = ref_clone.borrow_mut(); - - let mut update_list: Vec<(RRC, Value)> = vec![]; - - for cell in exec_list { - let inputs = get_inputs(env, &cell.borrow()); - - let executable = prim_map.get_mut(&cell.as_raw()); - - if let Some(prim) = executable { - let new_vals = if reset_flag { - prim.reset(&inputs) - } else { - prim.execute(&inputs) - }; - - for (port, val) in new_vals? { - let port_ref = cell.borrow().find(port).unwrap(); - - let current_val = env.get_from_port(&port_ref.borrow()); - - if *current_val != val { - val_changed = true; - // defer value update until after all executions - update_list.push((Rc::clone(&port_ref), val)); - } - } - } - } - - for (port, val) in update_list { - env.insert(port, val); - } - - Ok(val_changed) -} - -fn get_inputs<'a>( - env: &'a InterpreterState, - cell: &ir::Cell, -) -> Vec<(ir::Id, &'a Value)> { - cell.ports - .iter() - .filter_map(|p| { - let p_ref: &ir::Port = &p.borrow(); - match &p_ref.direction { - ir::Direction::Input => { - Some((p_ref.name, env.get_from_port(p_ref))) - } - _ => None, - } - }) - .collect() -} - -/// Concludes interpretation to a group, effectively setting the go signal low -/// for a given group. This function updates the values in the environment -/// accordingly using zero as a placeholder for values that are undefined -pub(crate) fn finish_interpretation< - 'a, - I: Iterator>, - P: Into>, ->( - mut env: InterpreterState, - done_signal: Option

, - assigns: I, -) -> InterpreterResult { - let done_signal: Option> = - done_signal.map(|x| x.into()); - // replace port values for all the assignments - let assigns = assigns.collect::>(); - - for &ir::Assignment { dst, .. } in &assigns { - env.insert( - &dst.borrow() as &ir::Port as ConstPort, - Value::zeroes(dst.borrow().width as usize), - ); - } - - let cells = get_dest_cells( - assigns.iter().copied(), - done_signal.as_ref().and_then(|x| x.get_rrc()), - ); - - if let Some(done_signal) = done_signal { - env.insert(done_signal.as_raw(), Value::bit_low()); - } - - eval_prims(&mut env, cells.iter(), true)?; - - Ok(env) -} diff --git a/interp/src/interpreter/interpreter_trait.rs b/interp/src/interpreter/interpreter_trait.rs deleted file mode 100644 index 093477f3a5..0000000000 --- a/interp/src/interpreter/interpreter_trait.rs +++ /dev/null @@ -1,71 +0,0 @@ -use std::collections::HashSet; - -use crate::{ - debugger::name_tree::ActiveTreeNode, - environment::InterpreterState, - errors::InterpreterResult, - structures::names::GroupQIN, - structures::state_views::{MutStateView, StateView}, -}; - -/// The core interpreter trait which defines the methods each interpretation -/// construct must support. This trait is implemented by each of the control -/// interpreters and the component interpreter but not the -/// [AssignmentInterpreter](interp::interpreter::group_interpreter::AssignmentInterpreter]) -pub trait Interpreter { - /// Advance the interpreter by a "clock" cycle. This should advance stateful - /// components and potentially change the state machines for control - /// structures. - fn step(&mut self) -> InterpreterResult<()>; - - /// Performs combinational convergence for the underlying interpreter - /// subtree. This updates the combinational paths of all cells in the active - /// subtree. This is primarially used for evaluating combinational groups in - /// conditions. - fn converge(&mut self) -> InterpreterResult<()>; - - /// Advance the interpreter until [Interpreter::is_done] is true. This comes with a - /// default implementation which calls step in a while loop, however it is - /// usually more efficient to override this with run calls to the - /// appropriate subcomponents. - fn run(&mut self) -> InterpreterResult<()> { - while !self.is_done() { - self.step()?; - } - Ok(()) - } - - /// Consumes the interpreter and returns the concluding [InterpreterState]. - /// - /// # Panics - /// If [Interpreter::is_done] is false - fn deconstruct(self) -> InterpreterResult; - - /// Return whether the interpreter has finished executing - fn is_done(&self) -> bool; - - /// Returns an immutable handle to the environment underneath the given - /// interpreter. - fn get_env(&self) -> StateView<'_>; - - /// Returns the currently executing non-combinational groups - fn currently_executing_group(&self) -> HashSet; - - /// Returns a mutable handle to the environment underneath the given - /// interpreter - fn get_env_mut(&mut self) -> MutStateView<'_>; - - /// Returns the active sub-tree of interpreter nodes. Used in the debugging - /// flow. - fn get_active_tree(&self) -> Vec; - - /// Utility method which runs the interpreter and deconstructs it all in one - /// step. - fn run_and_deconstruct(mut self) -> InterpreterResult - where - Self: Sized, - { - self.run()?; - self.deconstruct() - } -} diff --git a/interp/src/interpreter/mod.rs b/interp/src/interpreter/mod.rs deleted file mode 100644 index 5e2fe77e97..0000000000 --- a/interp/src/interpreter/mod.rs +++ /dev/null @@ -1,11 +0,0 @@ -//! The machinery for interpreting a Calyx program - -mod component_interpreter; -mod control_interpreter; -mod group_interpreter; -mod interpreter_trait; -mod utils; - -pub use component_interpreter::ComponentInterpreter; -pub use interpreter_trait::Interpreter; -pub use utils::{ConstCell, ConstPort}; diff --git a/interp/src/interpreter/utils.rs b/interp/src/interpreter/utils.rs deleted file mode 100644 index 48c40e0c75..0000000000 --- a/interp/src/interpreter/utils.rs +++ /dev/null @@ -1,112 +0,0 @@ -use crate::values::Value; -use calyx_ir as ir; -use calyx_ir::RRC; -use std::cell::Ref; -use std::collections::HashSet; -use std::ops::Deref; -pub type ConstPort = *const ir::Port; -pub type ConstCell = *const ir::Cell; - -use crate::interpreter_ir as iir; - -#[inline] -pub fn get_done_port(group: &ir::Group) -> RRC { - group.get("done") -} - -#[inline] -pub fn get_go_port(group: &ir::Group) -> RRC { - group.get("go") -} - -#[inline] -pub fn is_signal_high(done: &Value) -> bool { - done.as_bool() -} - -pub fn get_dest_cells<'a, I>( - iter: I, - done_sig: Option>, -) -> Vec> -where - I: Iterator>, -{ - let mut assign_set: HashSet<*const ir::Cell> = HashSet::new(); - let mut output_vec = vec![]; - - if let Some(done_prt) = done_sig { - if let ir::PortParent::Cell(c) = &done_prt.borrow().parent { - let parent = c.upgrade(); - assign_set.insert(parent.as_ptr()); - output_vec.push(parent) - } - }; - - let iterator = iter.filter_map(|assign| { - match &assign.dst.borrow().parent { - ir::PortParent::Cell(c) => { - match &c.upgrade().borrow().prototype { - ir::CellType::Primitive { .. } - | ir::CellType::Constant { .. } - | ir::CellType::Component { .. } => { - let const_cell: *const ir::Cell = c.upgrade().as_ptr(); - if assign_set.contains(&const_cell) { - None //b/c we don't want duplicates - } else { - assign_set.insert(const_cell); - Some(c.upgrade()) - } - } - - ir::CellType::ThisComponent => None, - } - } - ir::PortParent::Group(_) => None, - ir::PortParent::StaticGroup(_) => { - panic!("Static Groups not yet implemented for interpreter") - } - } - }); - output_vec.extend(iterator); - - output_vec -} -pub fn control_is_empty(control: &iir::Control) -> bool { - match control { - iir::Control::Seq(s) => s.stmts.iter().all(control_is_empty), - iir::Control::Par(p) => p.stmts.iter().all(control_is_empty), - iir::Control::If(_) => false, - iir::Control::While(_) => false, - iir::Control::Invoke(_) => false, - iir::Control::Enable(_) => false, - iir::Control::Empty(_) => true, - } -} - -pub enum ReferenceHolder<'a, T> { - Ref(Ref<'a, T>), - Borrow(&'a T), -} - -impl<'a, T> From<&'a T> for ReferenceHolder<'a, T> { - fn from(input: &'a T) -> Self { - Self::Borrow(input) - } -} - -impl<'a, T> From> for ReferenceHolder<'a, T> { - fn from(input: Ref<'a, T>) -> Self { - Self::Ref(input) - } -} - -impl<'a, T> Deref for ReferenceHolder<'a, T> { - type Target = T; - - fn deref(&self) -> &Self::Target { - match self { - ReferenceHolder::Ref(r) => r, - ReferenceHolder::Borrow(b) => b, - } - } -} diff --git a/interp/src/interpreter_ir/component.rs b/interp/src/interpreter_ir/component.rs deleted file mode 100644 index 154fa2a7fb..0000000000 --- a/interp/src/interpreter_ir/component.rs +++ /dev/null @@ -1,52 +0,0 @@ -use super::control::Control; -use calyx_ir::Component as CalyxComponent; -use calyx_ir::{ - Assignment, Attributes, Cell, CombGroup, Group, Id, IdList, Nothing, RRC, -}; -use std::rc::Rc; - -#[derive(Debug)] -pub struct Component { - /// Name of the component. - pub name: Id, - /// The input/output signature of this component. - pub signature: RRC, - /// The cells instantiated for this component. - pub cells: IdList, - /// Groups of assignment wires. - pub groups: IdList, - /// Groups of assignment wires. - pub comb_groups: IdList, - /// The set of "continuous assignments", i.e., assignments that are always - /// active. - pub continuous_assignments: Rc>>, - /// The control program for this component. - pub control: Control, - /// Attributes for this component - pub attributes: Attributes, -} - -impl From for Component { - fn from(cc: CalyxComponent) -> Self { - Self { - name: cc.name, - signature: cc.signature, - cells: cc.cells, - groups: cc.groups, - comb_groups: cc.comb_groups, - continuous_assignments: Rc::new(cc.continuous_assignments), - control: Rc::try_unwrap(cc.control).unwrap().into_inner().into(), - attributes: cc.attributes, - } - } -} - -impl Component { - /// Return a reference to the cell with `name` if present. - pub fn find_cell(&self, name: S) -> Option> - where - S: Clone + Into, - { - self.cells.find(name) - } -} diff --git a/interp/src/interpreter_ir/control.rs b/interp/src/interpreter_ir/control.rs deleted file mode 100644 index d58ec017b9..0000000000 --- a/interp/src/interpreter_ir/control.rs +++ /dev/null @@ -1,133 +0,0 @@ -use calyx_ir::Control as CalyxControl; -use calyx_ir::{self as ir, Attributes, CombGroup, Port, RRC}; - -use std::rc::Rc; - -// These IR constructs are unchanged but are here re-exported for consistency -pub use calyx_ir::{Empty, Enable, Invoke}; - -/// Data for the `seq` control statement. -#[derive(Debug)] -pub struct Seq { - /// List of `Control` statements to run in sequence. - pub stmts: Vec, - /// Attributes attached to this control statement. - pub attributes: Attributes, -} - -/// Data for the `par` control statement. -#[derive(Debug)] -pub struct Par { - /// List of `Control` statements to run in parallel. - pub stmts: Vec, - /// Attributes attached to this control statement. - pub attributes: Attributes, -} - -/// Data for the `if` control statement. -#[derive(Debug)] -pub struct If { - /// Port that connects the conditional check. - pub port: RRC, - /// Optional combinational group attached using `with`. - pub cond: Option>, - /// Control for the true branch. - pub tbranch: Control, - /// Control for the true branch. - pub fbranch: Control, - /// Attributes attached to this control statement. - pub attributes: Attributes, -} - -/// Data for the `if` control statement. -#[derive(Debug)] -pub struct While { - /// Port that connects the conditional check. - pub port: RRC, - /// Group that makes the signal on the conditional port valid. - pub cond: Option>, - /// Control for the loop body. - pub body: Control, - /// Attributes attached to this control statement. - pub attributes: Attributes, -} - -/// Control AST nodes. -#[derive(Debug, Clone)] -pub enum Control { - /// Represents sequential composition of control statements. - Seq(Rc), - /// Represents parallel composition of control statements. - Par(Rc), - /// Standard imperative if statement - If(Rc), - /// Standard imperative while statement - While(Rc), - /// Invoke a sub-component with the given port assignments - Invoke(Rc), - /// Runs the control for a list of subcomponents. - Enable(Rc), - /// Control statement that does nothing. - Empty(Rc), -} - -impl From for Control { - fn from(cc: CalyxControl) -> Self { - match cc { - CalyxControl::Seq(s) => Control::Seq(Rc::new(s.into())), - CalyxControl::Par(p) => Control::Par(Rc::new(p.into())), - CalyxControl::If(i) => Control::If(Rc::new(i.into())), - CalyxControl::While(wh) => Control::While(Rc::new(wh.into())), - CalyxControl::Invoke(invoke) => Control::Invoke(Rc::new(invoke)), - CalyxControl::Enable(enable) => Control::Enable(Rc::new(enable)), - CalyxControl::Static(_) => { - todo!("interpreter does not yet support static") - } - CalyxControl::Repeat(_) => { - todo!("interpreter does not yet support repeat") - } - CalyxControl::Empty(empty) => Control::Empty(Rc::new(empty)), - } - } -} - -impl From for Seq { - fn from(seq: ir::Seq) -> Self { - Self { - stmts: seq.stmts.into_iter().map(|x| x.into()).collect(), - attributes: seq.attributes, - } - } -} - -impl From for Par { - fn from(par: ir::Par) -> Self { - Self { - stmts: par.stmts.into_iter().map(|x| x.into()).collect(), - attributes: par.attributes, - } - } -} - -impl From for If { - fn from(i: ir::If) -> Self { - Self { - port: i.port, - cond: i.cond, - tbranch: (*i.tbranch).into(), - fbranch: (*i.fbranch).into(), - attributes: i.attributes, - } - } -} - -impl From for While { - fn from(wh: ir::While) -> Self { - Self { - port: wh.port, - cond: wh.cond, - body: (*wh.body).into(), - attributes: wh.attributes, - } - } -} diff --git a/interp/src/interpreter_ir/mod.rs b/interp/src/interpreter_ir/mod.rs deleted file mode 100644 index e8c5e1a40d..0000000000 --- a/interp/src/interpreter_ir/mod.rs +++ /dev/null @@ -1,20 +0,0 @@ -//! A read-only variant of the IR used for more ergonomic interpretation. -//! -//! This module exposes alternate definitions for the core Calyx IR structures. The -//! primary reason for this duplications is that the interpreter needs to be able to -//! take apart control structures in a modular way without destroying the actual -//! structure. These variants allow subtrees of the control structure to be held without -//! causing lifetime issues with other components of the interpreter. As an auxillary -//! effect this enables (relatively) cheap cloning for control structures as they are -//! only needed in a read-only capacity. - -mod component; -mod control; - -pub use component::Component; -pub use control::{Control, Empty, Enable, If, Invoke, Par, Seq, While}; - -use std::rc::Rc; -pub type ComponentCtx = Rc>>; -pub type ContinuousAssignments = - Rc>>; diff --git a/interp/src/lib.rs b/interp/src/lib.rs index efc71db6c3..f613c9413f 100644 --- a/interp/src/lib.rs +++ b/interp/src/lib.rs @@ -1,11 +1,8 @@ -pub mod interpreter; -pub mod primitives; pub mod serialization; pub use utils::MemoryMap; pub mod configuration; pub mod debugger; pub mod errors; -pub mod interpreter_ir; pub mod logging; mod macros; mod structures; @@ -14,4 +11,4 @@ mod utils; pub mod flatten; -pub use structures::{environment, stk_env, values}; +pub use structures::values; diff --git a/interp/src/primitives/combinational.rs b/interp/src/primitives/combinational.rs deleted file mode 100644 index ecc907d88d..0000000000 --- a/interp/src/primitives/combinational.rs +++ /dev/null @@ -1,570 +0,0 @@ -use super::stateful::floored_division; -use super::{ - super::errors::InterpreterResult, - prim_utils::{get_input_unwrap, get_param}, - primitive_traits::Named, - Primitive, -}; -use crate::values::Value; -use crate::{comb_primitive, errors::InterpreterError}; -use crate::{ - logging::warn, - serialization::{Entry, Serializable}, -}; -use bitvec::vec::BitVec; -use calyx_ir as ir; -use std::ops::Not; - -/// A constant. -#[derive(Debug)] -pub struct StdConst { - value: Value, - full_name: ir::Id, -} - -impl StdConst { - pub fn from_constants(value: u64, width: u64, name: ir::Id) -> Self { - StdConst { - value: Value::from(value, width), - full_name: name, - } - } - - pub fn new(params: &ir::Binding, name: ir::Id) -> Self { - let width = get_param(params, "WIDTH") - .expect("Missing width parameter from std_const binding"); - - let init_value = get_param(params, "VALUE") - .expect("Missing `value` param from std_const binding"); - - let value = Value::from(init_value, width); - - Self { - value, - full_name: name, - } - } -} - -impl Named for StdConst { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for StdConst { - fn do_tick(&mut self) -> InterpreterResult> { - Ok(vec![]) - } - - fn is_comb(&self) -> bool { - true - } - - fn validate(&self, _inputs: &[(ir::Id, &Value)]) {} - - fn execute( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - Ok(vec![("out".into(), self.value.clone())]) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - Ok(vec![("out".into(), self.value.clone())]) - } - - fn serialize( - &self, - code: Option, - ) -> Serializable { - let code = code.unwrap_or(crate::debugger::PrintCode::Unsigned); - Serializable::Val(Entry::from_val_code(&self.value, &code)) - } -} - -// ===================== New core ====================== - -pub struct StdMux { - width: u64, - name: ir::Id, -} - -impl StdMux { - pub fn new(params: &ir::Binding, name: ir::Id) -> Self { - let width = get_param(params, "WIDTH") - .expect("Missing width parameter from std_const binding"); - - Self { width, name } - } -} - -impl Named for StdMux { - fn get_full_name(&self) -> &ir::Id { - &self.name - } -} - -impl Primitive for StdMux { - fn do_tick(&mut self) -> InterpreterResult> { - Ok(vec![]) - } - - fn is_comb(&self) -> bool { - true - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - for (id, v) in inputs { - match id.as_ref() { - "tru" => assert_eq!(v.len() as u64, self.width), - "fal" => assert_eq!(v.len() as u64, self.width), - "cond" => assert_eq!(v.len() as u64, 1), - p => unreachable!("Unknown port: {}", p), - } - } - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - let cond = get_input_unwrap(inputs, "cond"); - let tru = get_input_unwrap(inputs, "tru"); - let fal = get_input_unwrap(inputs, "fal"); - - let out = if cond.as_bool() { tru } else { fal }; - Ok(vec![("out".into(), out.clone())]) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - Ok(vec![("out".into(), Value::zeroes(self.width))]) - } -} - -// ===================== Unary operations ====================== -comb_primitive!(StdNot[WIDTH](r#in: WIDTH) -> (out: WIDTH) { - Ok(r#in.clone_bit_vec().not().into()) -}); - -comb_primitive!(StdWire[WIDTH](r#in: WIDTH) -> (out: WIDTH) { - Ok(r#in.clone()) -}); - -// ===================== Unsigned binary operations ====================== -comb_primitive!(FLAG: error_on_overflow; LOG: logger; StdAdd[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - let mut c_in = false; - let mut sum = BitVec::new(); - for (ai, bi) in a_iter.zip(b_iter) { - sum.push( - c_in & !ai & !bi - || bi & !c_in & !ai - || ai & !c_in & !bi - || ai & bi & c_in, - ); - c_in = bi & c_in || ai & c_in || ai & bi || ai & c_in & bi; - } - if c_in { - if error_on_overflow { - return Err(InterpreterError::OverflowError.into()); - } - warn!(logger, "Computation over/underflow"); - } - let tr: Value = sum.into(); - //as a sanity check, check tr has same width as left - debug_assert_eq!(tr.width(), left.width()); - Ok(tr) -}); -comb_primitive!(FLAG: error_on_overflow; NAME: full_name; StdSub[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - //first turn right into ~right + 1 - let new_right = !right.clone_bit_vec(); - let mut adder = StdAdd::from_constants(WIDTH, *full_name, error_on_overflow); - let (_,new_right) = adder - .execute( - &[("left".into(), &Value::from_bv(new_right)), - ("right".into(), &Value::from(1_u32, WIDTH))], - )? - .into_iter() - .next() - .unwrap(); - //then add left and new_right - Ok(adder.execute(&[("left".into(), left), - ("right".into(), &new_right)])?.into_iter().next().map(|(_, v)| v).unwrap()) -}); - -// TODO (Griffin): Make these wrappers around the normal add -comb_primitive!(FLAG: error_on_overflow; LOG: logger; StdFpAdd[WIDTH, INT_WIDTH, FRAC_WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - let mut c_in = false; - let mut sum = BitVec::new(); - for (ai, bi) in a_iter.zip(b_iter) { - sum.push( - c_in & !ai & !bi - || bi & !c_in & !ai - || ai & !c_in & !bi - || ai & bi & c_in, - ); - c_in = bi & c_in || ai & c_in || ai & bi || ai & c_in & bi; - } - let tr = Value::from_bv(sum); - if c_in { - if error_on_overflow { - return Err(InterpreterError::OverflowError.into()); - } - warn!(logger, "Computation over/underflow"); - } - //as a sanity check, check tr has same width as left - debug_assert_eq!(tr.width(), left.width()); - Ok(tr) -}); -comb_primitive!(FLAG: error_on_overflow; NAME: full_name; StdFpSub[WIDTH, INT_WIDTH, FRAC_WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - //first turn right into ~right + 1 - let new_right = !right.clone_bit_vec(); - let mut adder = StdFpAdd::from_constants(WIDTH, INT_WIDTH, FRAC_WIDTH, *full_name, error_on_overflow); - let new_right = adder - .execute( - &[("left".into(), &Value::from_bv(new_right)), - ("right".into(), &Value::from(1_u32, WIDTH))], - )? - .into_iter() - .next() - .map(|(_, v)| v) - .unwrap(); - //then add left and new_right - let out = adder.execute(&[("left".into(), left), - ("right".into(), &new_right)])?.into_iter().next().map(|(_, v)| v).unwrap(); - - Ok(out) -}); - -// ===================== Shift Operations ====================== -comb_primitive!(StdLsh[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - //to avoid the casting overflow, - //we know that [left], [right], and [self] - //are capped at bitwidths as large as largest u64 (2^64 - 1 = 1.84 * 10^19 ...) - //so, if [self] has a width greater than 64, - //and the 65th index is a 1, we just automatically return a 0 of the - //appropriate bitwidth! - - if WIDTH > 64 { - //check if right is greater than or equal to 2 ^ 64 - - for bit in right.iter().by_ref().skip(64) { - if bit { - return Ok(Value::zeroes(WIDTH as usize)); - } - } - } - - //but that's not the only problem. we can't let [place] get to - //2^64 or above. However the right value couldn't have even been specified - //to be greater than or equal to 2^64, because it's constrained by u64. - //so instead of incrementing [place], just calculate place, but only - //when [bit] is 1, which can only be true for bits below the 65th (first - // bit is 2^0) - - let mut tr = BitVec::new(); - //first push the requisite # of zeroes - for (index, bit) in right.iter().enumerate() { - if bit { - //not possible for bit to be 1 after the 64th bit - for _ in 0..u64::pow(2, index as u32) { - if tr.len() < WIDTH as usize { - tr.push(false); - } - //no point in appending once we've filled it all with zeroes - } - } - } - //then copy over the bits from [left] onto the back (higher-place bits) of - //[tr]. Then truncate, aka slicing off the bits that exceed the width of this - //component - let mut to_append = left.clone_bit_vec(); - tr.append(&mut to_append); - tr.truncate(WIDTH as usize); - let tr = Value::from_bv(tr); - debug_assert_eq!(tr.width(), WIDTH); - //sanity check the widths - Ok(tr) -}); -comb_primitive!(StdRsh[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - //remove [right] bits from index 0 - //extend to proper size - - //same check as in LSH - if WIDTH > 64 { - //check if right is greater than or equal to 2 ^ 64 - for bit in right.iter().skip(64) { - if bit { - return Ok(Value::zeroes(WIDTH as usize)); - } - } - } - - let mut tr = left.clone_bit_vec(); - //first remove [right] bits - for (index, bit) in right.iter().enumerate() { - if bit { - for _ in 0..u64::pow(2, index as u32) { - if !tr.is_empty() { - tr.remove(0); - } - } - } - } - //now resize to proper size, putting 0s at the end (0 is false) - tr.resize(WIDTH as usize, false); - let tr = Value::from_bv(tr); - debug_assert_eq!(tr.width(), WIDTH); - //sanity check the widths - Ok(tr) -}); - -// ===================== Signed Shift Operations ====================== -comb_primitive!(StdSlsh[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let shift_amount = right.as_usize(); - let mut val = left.clone_bit_vec(); - val.shift_right(shift_amount); - Ok(val.into()) - -}); -comb_primitive!(StdSrsh[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let shift_amount = right.as_usize(); - let sign: bool = left[left.len()-1]; //msb - let mut val = left.clone_bit_vec(); - val.shift_left(shift_amount); - if sign { - for mut bit in val.iter_mut().rev().take(shift_amount) { - *bit = true; - } - } - Ok(val.into()) -}); -// ===================== Logial Operations ====================== -comb_primitive!(StdAnd[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok((left.clone_bit_vec() & right.clone_bit_vec()).into()) -}); -comb_primitive!(StdOr[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok((left.clone_bit_vec() | right.clone_bit_vec()).into()) -}); -comb_primitive!(StdXor[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok((left.clone_bit_vec() ^ right.clone_bit_vec()).into()) -}); - -// ===================== Comparison Operations ====================== -comb_primitive!(StdGt[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - let mut tr = false; - - //as we proceed up in magnitude, it doesn't matter which port was less - //b/c [100....000] > [011....111] always. - //but if ai = bi, it matters which was higher previously - for (ai, bi) in a_iter.zip(b_iter) { - tr = ai & !bi || tr & !bi || tr & ai; - } - - Ok(if tr { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdLt[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - let mut tr = false; - - //tr represents a < b - for (ai, bi) in a_iter.zip(b_iter) { - tr = !ai & bi | tr & !ai | tr & bi; - } - - //same as gt, just reverse the if. - //but actually not so if they are equal... should change the loop - Ok(if tr { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdGe[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - let mut tr = true; //diff between gt and ge is just assume they r equal - - //as we proceed up in magnitude, it doesn't matter which port was less - //b/c [100....000] > [011....111] always. - //but if ai = bi, it matters which was higher previously - for (ai, bi) in a_iter.zip(b_iter) { - tr = ai & !bi || tr & !bi || tr & ai; - } - - Ok(if tr { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdLe[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - let mut tr = true; //diff between le and lt is just assume they are equal - - //tr represents a <= b - for (ai, bi) in a_iter.zip(b_iter) { - tr = !ai & bi | tr & !ai | tr & bi; - } - - //same as gt, just reverse the if. - //but actually not so if they are equal... should change the loop - Ok(if tr { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdEq[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - - //tr represents a = b - for (ai, bi) in a_iter.zip(b_iter) { - if !ai & bi || !bi & ai { - return Ok(Value::bit_low()); - } - } - - Ok(Value::bit_high()) -}); -comb_primitive!(StdNeq[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - let a_iter = left.iter(); - let b_iter = right.iter(); - - //tr represents a = b - for (ai, bi) in a_iter.zip(b_iter) { - if bi & !ai || !bi & ai { - return Ok(Value::bit_high()); - } - } - - Ok(Value::bit_low()) -}); -// TODO (griffin) : replace these comparsions with bit-aware variants -// ===================== Signed Comparison Operations ====================== -comb_primitive!(StdSgt[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() > right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdSlt[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() < right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdSge[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() >= right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdSle[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() <= right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdSeq[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() == right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); -comb_primitive!(StdSneq[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() != right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); - -// ===================== Unsigned FP Comparison Operators ====================== -comb_primitive!(StdFpGt[WIDTH, INT_WIDTH, FRAC_WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_unsigned() > right.as_unsigned() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); - -// ===================== Signed FP Comparison Operators ====================== -comb_primitive!(StdFpSgt[WIDTH, INT_WIDTH, FRAC_WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() > right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); - -comb_primitive!(StdFpSlt[WIDTH, INT_WIDTH, FRAC_WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(if left.as_signed() < right.as_signed() { - Value::bit_high() - } else { - Value::bit_low() - }) -}); - -// ===================== Resizing Operations ====================== -comb_primitive!(StdSlice[IN_WIDTH, OUT_WIDTH](r#in: IN_WIDTH) -> (out: OUT_WIDTH) { - Ok(r#in.truncate(OUT_WIDTH as usize)) -}); -comb_primitive!(StdPad[IN_WIDTH, OUT_WIDTH](r#in: IN_WIDTH) -> (out: OUT_WIDTH) { - Ok(r#in.ext(OUT_WIDTH as usize)) -}); - -comb_primitive!(StdBitSlice[IN_WIDTH, START_IDX, END_IDX, OUT_WIDTH](r#in: IN_WIDTH) -> (out: OUT_WIDTH) { - Ok(r#in.slice(END_IDX as usize, START_IDX as usize)) -}); - -// ===================== Unsynthesizeable Operations ====================== -comb_primitive!(StdUnsynMult[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(Value::from(left.as_unsigned() * right.as_unsigned(), WIDTH)) -}); - -comb_primitive!(StdUnsynDiv[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(Value::from(left.as_unsigned() / right.as_unsigned(), WIDTH)) -}); - -comb_primitive!(StdUnsynSmult[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(Value::from(left.as_signed() * right.as_signed(), WIDTH)) -}); - -comb_primitive!(StdUnsynSdiv[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(Value::from(left.as_signed() / right.as_signed(), WIDTH)) -}); - -comb_primitive!(StdUnsynMod[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(Value::from(left.as_unsigned() % right.as_unsigned(), WIDTH)) -}); - -comb_primitive!(StdUnsynSmod[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { - Ok(Value::from(left.as_signed() - right.as_signed() * floored_division( - &left.as_signed(), - &right.as_signed()), WIDTH)) -}); diff --git a/interp/src/primitives/mod.rs b/interp/src/primitives/mod.rs deleted file mode 100644 index 0d95116e94..0000000000 --- a/interp/src/primitives/mod.rs +++ /dev/null @@ -1,8 +0,0 @@ -mod primitive_traits; - -pub use primitive_traits::Named; -pub use primitive_traits::Primitive; - -pub mod combinational; -pub(super) mod prim_utils; -pub mod stateful; diff --git a/interp/src/primitives/prim_utils.rs b/interp/src/primitives/prim_utils.rs deleted file mode 100644 index e0c7e232c8..0000000000 --- a/interp/src/primitives/prim_utils.rs +++ /dev/null @@ -1,136 +0,0 @@ -use crate::values::Value; -use calyx_ir as ir; -use std::collections::VecDeque; - -pub(super) fn get_param(params: &ir::Binding, target: S) -> Option -where - S: Into, -{ - let target = target.into(); - params - .iter() - .find_map(|(id, x)| if *id == target { Some(*x) } else { None }) -} - -pub(super) fn get_input<'a, S>( - inputs: &[(calyx_ir::Id, &'a Value)], - target: S, -) -> Option<&'a Value> -where - S: Into, -{ - let target = target.into(); - inputs.iter().find(|(id, _)| *id == target).map(|(_, v)| *v) -} - -pub(super) fn get_input_unwrap<'a, S>( - inputs: &[(calyx_ir::Id, &'a Value)], - target: S, -) -> &'a Value -where - S: Into, -{ - get_input(inputs, target).unwrap() -} - -/// A shift buffer of a fixed size -pub struct ShiftBuffer { - buffer: VecDeque>, -} - -impl Default for ShiftBuffer { - fn default() -> Self { - let mut buffer = VecDeque::with_capacity(N); - for _ in 0..N { - buffer.push_front(None) - } - Self { buffer } - } -} - -impl ShiftBuffer { - /// Shifts an element on to the front of the buffer and returns the element - /// on the end of the buffer. - pub fn shift(&mut self, element: Option) -> Option { - self.buffer.push_front(element); - // this is safe as the buffer will always have N + 1 elements before - // this call - self.buffer.pop_back().unwrap() - } - - /// Removes all instantiated elements in the buffer and replaces them with - /// empty slots - pub fn reset(&mut self) { - self.buffer.clear(); - for _ in 0..N { - self.buffer.push_front(None) - } - } -} - -macro_rules! get_inputs { - ( $inputs:ident; $port:ident $([$ty:tt])? : $id_name:expr ) => { - let $port = $inputs - .iter() - .find(|(id, _)| id == $id_name) - .map(|x| x.1); - - get_inputs!($port $(,$ty)? ); - }; - - ( $inputs:ident; $( $port:ident $([$ty:tt])? : $id_name:expr ),+ ) => { - $( let mut $port = None; )+ - for (id, v) in $inputs { - match id.as_ref() { - $($id_name => { $port = Some(v); } ),+ - _ => {} - } - } - $( get_inputs!($port $(,$ty)? ); )+ - - }; - - ($port:ident) => { - let $port: &$crate::values::Value = $port.unwrap(); - }; - - ($port:ident, bool) => { - let $port: bool = $port.unwrap().as_bool(); - }; - - ($port:ident, u64) => { - let $port: u64 = $port.unwrap().as_u64(); - }; - - ($port:ident, i64) => { - let $port: i64 = $port.unwrap().as_i64(); - }; -} - -/// An internal macro which is used to extract parameter values from an -/// association list input. Structured as a declaration list -macro_rules! get_params { - ($inputs:ident; $( $param:ident : $id_name:expr ),+ ) => { - $( let mut $param = None; )+ - for (id, v) in $inputs { - match id.as_ref() { - $($id_name => {$param = Some(v);}), + - _ => {} - } - } - $(let $param: u64 = *$param.expect(format!("Missing parameter: {}", $id_name).as_ref()); )+ - } -} - -macro_rules! output { - ( $(($id:expr, $val:expr) ),+ ) => { - vec![ - $((calyx_ir::Id::from($id), $val)),+ - ] - } -} - -// export the macros for local use -pub(crate) use get_inputs; -pub(crate) use get_params; -pub(crate) use output; diff --git a/interp/src/primitives/primitive_traits.rs b/interp/src/primitives/primitive_traits.rs deleted file mode 100644 index df888bf1c4..0000000000 --- a/interp/src/primitives/primitive_traits.rs +++ /dev/null @@ -1,65 +0,0 @@ -use crate::{ - errors::InterpreterResult, interpreter::ComponentInterpreter, - serialization::Serializable, structures::state_views::StateView, - utils::PrintCode, values::Value, -}; - -use calyx_ir as ir; - -/// A trait indicating that the thing has a name -pub trait Named { - fn get_full_name(&self) -> &ir::Id; -} - -/// A primitive for the interpreter. -/// Roughly corresponds to the cells defined in the primitives library for the Calyx compiler. -/// Primitives can be either stateful or combinational. -pub trait Primitive: Named { - /// Returns true if this primitive is combinational - fn is_comb(&self) -> bool; - - /// Validate inputs to the component. - fn validate(&self, inputs: &[(ir::Id, &Value)]); - - /// Execute the component. - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult>; - - /// Does nothing for comb. prims; mutates internal state for stateful - fn do_tick(&mut self) -> InterpreterResult>; - - /// Execute the component. - fn validate_and_execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - self.validate(inputs); - self.execute(inputs) - } - - /// Reset the component. - fn reset( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult>; - - /// Serialize the state of this primitive, if any. - fn serialize(&self, _code: Option) -> Serializable { - Serializable::Empty - } - - // more efficient to override this with true in stateful cases - fn has_serializeable_state(&self) -> bool { - self.serialize(None).has_state() - } - - fn get_state(&self) -> Option> { - None - } - - fn get_comp_interpreter(&self) -> Option<&ComponentInterpreter> { - None - } -} diff --git a/interp/src/primitives/stateful/math.rs b/interp/src/primitives/stateful/math.rs deleted file mode 100644 index 02563bf7dd..0000000000 --- a/interp/src/primitives/stateful/math.rs +++ /dev/null @@ -1,953 +0,0 @@ -use super::super::prim_utils::{get_inputs, get_param, ShiftBuffer}; -use super::super::primitive_traits::Named; -use super::super::Primitive; -use crate::errors::{InterpreterError, InterpreterResult}; -use crate::logging::{self, warn}; -use crate::serialization::{Entry, Serializable}; -use crate::utils::PrintCode; -use crate::validate; -use crate::values::Value; -use calyx_ir as ir; -use ibig::ops::RemEuclid; -use ibig::{ibig, ubig, IBig, UBig}; - -const DECIMAL_PRINT_WIDTH: usize = 7; - -enum BinOpUpdate { - None, - Reset, - Value(Value, Value), -} - -impl BinOpUpdate { - fn clear(&mut self) { - *self = BinOpUpdate::None; - } - fn take(&mut self) -> Self { - std::mem::replace(&mut *self, BinOpUpdate::None) - } -} - -/// Pipelined Multiplication (3 cycles) -/// How to use: -/// [Primitive::execute] with the desired bindings. -/// To capture these bindings into the internal (out) queue, [Primitive::do_tick]. -/// The product associated with a given input will be output on the third [Primitive::do_tick()]. -/// Note: Calling [Primitive::execute] multiple times before [Primitive::do_tick] has no effect; only the last -/// set of inputs prior to the [Primitive::do_tick] will be saved. -pub struct StdMultPipe { - width: u64, - product: Value, - update: BinOpUpdate, - queue: ShiftBuffer, - full_name: ir::Id, - logger: logging::Logger, - error_on_overflow: bool, -} - -impl StdMultPipe { - pub fn from_constants( - width: u64, - name: ir::Id, - error_on_overflow: bool, - ) -> Self { - StdMultPipe { - width, - product: Value::zeroes(width as usize), - update: BinOpUpdate::None, - queue: ShiftBuffer::default(), - logger: logging::new_sublogger(name), - full_name: name, - error_on_overflow, - } - } - - pub fn new( - params: &ir::Binding, - name: ir::Id, - error_on_overflow: bool, - ) -> Self { - let width = get_param(params, "WIDTH") - .expect("Missing `WIDTH` param from std_mult_pipe binding"); - Self::from_constants(width, name, error_on_overflow) - } -} - -impl Named - for StdMultPipe -{ - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive - for StdMultPipe -{ - fn do_tick(&mut self) -> InterpreterResult> { - let out = match self.update.take() { - BinOpUpdate::None => { - self.queue.reset(); - vec![ - (ir::Id::from("out"), self.product.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Reset => { - self.queue.reset(); - vec![ - (ir::Id::from("out"), Value::zeroes(self.width)), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Value(left, right) => { - let (value, overflow) = if SIGNED { - Value::from_checked( - left.as_signed() * right.as_signed(), - self.width, - ) - } else { - Value::from_checked( - left.as_unsigned() * right.as_unsigned(), - self.width, - ) - }; - - if overflow & self.error_on_overflow { - return Err(InterpreterError::OverflowError.into()); - } else if overflow { - warn!( - self.logger, - "Computation under/overflowed ({} -> {})", - if SIGNED { - format!("{}", left.as_signed() * right.as_signed()) - } else { - format!( - "{}", - left.as_unsigned() * right.as_unsigned() - ) - }, - if SIGNED { - format!("{}", value.as_signed()) - } else { - format!("{}", value.as_unsigned()) - } - ); - } - - if let Some(value) = self.queue.shift(Some(value)) { - self.product = value; - vec![ - (ir::Id::from("out"), self.product.clone()), - (ir::Id::from("done"), Value::bit_high()), - ] - } else { - vec![ - (ir::Id::from("out"), self.product.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - } - }; - - Ok(out) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(calyx_ir::Id, &Value)]) { - for (id, v) in inputs { - match id.as_ref() { - "left" => assert_eq!(v.len() as u64, self.width), - "right" => assert_eq!(v.len() as u64, self.width), - "go" => assert_eq!(v.len() as u64, 1), - "reset" => assert_eq!(v.len() as u64, 1), - p => unreachable!("Unknown port: {}", p), - } - } - } - - fn execute( - &mut self, - inputs: &[(calyx_ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - left: "left", - right: "right", - reset: "reset", - go: "go" - ]; - - self.update = if reset.as_bool() { - BinOpUpdate::Reset - } else if go.as_bool() { - BinOpUpdate::Value(left.clone(), right.clone()) - } else { - BinOpUpdate::None - }; - - Ok(vec![]) - } - - fn reset( - &mut self, - _: &[(calyx_ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - self.queue.reset(); - Ok(vec![ - (ir::Id::from("out"), self.product.clone()), - (ir::Id::from("done"), Value::bit_low()), - ]) - } - - fn serialize(&self, signed: Option) -> Serializable { - let code = signed.unwrap_or_default(); - Serializable::Array( - [self.product.clone()] - .iter() - .map(|x| Entry::from_val_code(x, &code)) - .collect(), - 1.into(), - ) - } -} - -///Pipelined Division (3 cycles) -///Still bounded by u64. -///How to use: -///[Primitive::execute] with the desired bindings. To capture these bindings -///into the internal (out_quotient, out_remainder) queue, [Primitive::do_tick]. -///The out_quotient and out_remainder associated with a given input will -///be output on the third [Primitive::do_tick]. -///Note: Calling [Primitive::execute] multiple times before [Primitive::do_tick] has no effect; only -///the last set of inputs prior to the [Primitive::do_tick] will be saved. -pub struct StdDivPipe { - pub width: u64, - pub quotient: Value, - pub remainder: Value, - update: BinOpUpdate, //first is left, second is right - queue: ShiftBuffer<(Value, Value), 2>, //invariant: always length 2 - full_name: ir::Id, - logger: logging::Logger, - error_on_overflow: bool, -} - -impl StdDivPipe { - pub fn from_constants( - width: u64, - name: ir::Id, - error_on_overflow: bool, - ) -> Self { - StdDivPipe { - width, - quotient: Value::zeroes(width as usize), - remainder: Value::zeroes(width as usize), - update: BinOpUpdate::None, - queue: ShiftBuffer::default(), - logger: logging::new_sublogger(name), - full_name: name, - error_on_overflow, - } - } - - pub fn new( - params: &ir::Binding, - name: ir::Id, - error_on_overflow: bool, - ) -> Self { - let width = params - .iter() - .find(|(n, _)| n.as_ref() == "WIDTH") - .expect("Missing `WIDTH` param from std_mult_pipe binding") - .1; - Self::from_constants(width, name, error_on_overflow) - } -} - -impl Named for StdDivPipe { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for StdDivPipe { - fn do_tick(&mut self) -> InterpreterResult> { - let out = match self.update.take() { - BinOpUpdate::None => { - self.queue.reset(); - vec![ - (ir::Id::from("out_quotient"), self.quotient.clone()), - (ir::Id::from("out_remainder"), self.remainder.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Reset => { - self.queue.reset(); - vec![ - (ir::Id::from("out_quotient"), Value::zeroes(self.width)), - (ir::Id::from("out_remainder"), Value::zeroes(self.width)), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Value(left, right) => { - let (q, r) = if right.as_unsigned() != 0_u32.into() { - let (q, overflow) = if SIGNED { - Value::from_checked( - left.as_signed() / right.as_signed(), - self.width, - ) - } else { - Value::from_checked( - left.as_unsigned() / right.as_unsigned(), - self.width, - ) - }; - let r = if SIGNED { - Value::from( - left.as_signed() - - right.as_signed() - * floored_division( - &left.as_signed(), - &right.as_signed(), - ), - self.width, - ) - } else { - Value::from( - left.as_unsigned().rem_euclid(right.as_unsigned()), - self.width, - ) - }; - - // the only way this is possible is if the division is signed and the - // min_val is divided by negative one as the resultant postitive value will - // not be representable in the desired bit width - if (overflow) & self.error_on_overflow { - return Err(InterpreterError::OverflowError.into()); - } else if overflow { - warn!( - self.logger, - "Computation underflow ({} -> {})", - left.as_signed() / right.as_signed(), - q.as_signed() - ) - } - (q, r) - } else { - warn!(self.logger, "Division by zero"); - (Value::zeroes(self.width), Value::zeroes(self.width)) - }; - - if let Some((q, r)) = self.queue.shift(Some((q, r))) { - self.quotient = q.clone(); - self.remainder = r.clone(); - vec![ - (ir::Id::from("out_quotient"), q), - (ir::Id::from("out_remainder"), r), - (ir::Id::from("done"), Value::bit_high()), - ] - } else { - vec![ - (ir::Id::from("out_quotient"), self.quotient.clone()), - (ir::Id::from("out_remainder"), self.remainder.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - } - }; - - Ok(out) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(calyx_ir::Id, &Value)]) { - for (id, v) in inputs { - match id.as_ref() { - "left" => assert_eq!(v.len() as u64, self.width), - "right" => assert_eq!(v.len() as u64, self.width), - "go" => assert_eq!(v.len() as u64, 1), - "reset" => assert_eq!(v.len() as u64, 1), - p => unreachable!("Unknown port: {}", p), - } - } - } - - fn execute( - &mut self, - inputs: &[(calyx_ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - left: "left", - right: "right", - reset: "reset", - go: "go" - ]; - - self.update = if reset.as_bool() { - BinOpUpdate::Reset - } else if go.as_bool() { - BinOpUpdate::Value(left.clone(), right.clone()) - } else { - BinOpUpdate::None - }; - - Ok(vec![]) - } - - fn reset( - &mut self, - _: &[(calyx_ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - self.queue.reset(); - Ok(vec![ - (ir::Id::from("out_quotient"), self.quotient.clone()), - (ir::Id::from("out_remainder"), self.remainder.clone()), - (ir::Id::from("done"), Value::bit_low()), - ]) - } - - fn serialize(&self, signed: Option) -> Serializable { - let code = signed.unwrap_or_default(); - Serializable::Array( - [self.quotient.clone(), self.remainder.clone()] - .iter() - .map(|x| Entry::from_val_code(x, &code)) - .collect(), - 2.into(), - ) - } -} - -pub struct StdFpMultPipe { - pub width: u64, - pub int_width: u64, - pub frac_width: u64, - pub product: Value, - update: BinOpUpdate, - queue: ShiftBuffer, - full_name: ir::Id, - logger: logging::Logger, -} - -impl StdFpMultPipe { - pub fn from_constants( - width: u64, - int_width: u64, - frac_width: u64, - full_name: ir::Id, - ) -> Self { - assert_eq!(width, int_width + frac_width); - Self { - width, - int_width, - frac_width, - product: Value::zeroes(width), - update: BinOpUpdate::None, - queue: ShiftBuffer::default(), - logger: logging::new_sublogger(full_name), - full_name, - } - } - - pub fn new(params: &ir::Binding, full_name: ir::Id) -> Self { - let width = get_param(params, "WIDTH") - .expect("WIDTH parameter missing for fp mult"); - let int_width = get_param(params, "INT_WIDTH") - .expect("INT_WIDTH parameter missing for fp mult"); - let frac_width = get_param(params, "FRAC_WIDTH") - .expect("FRAC_WIDTH parameter missing for fp mult"); - - Self::from_constants(width, int_width, frac_width, full_name) - } -} - -impl Named for StdFpMultPipe { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for StdFpMultPipe { - fn do_tick(&mut self) -> InterpreterResult> { - let out = match self.update.take() { - BinOpUpdate::None => { - self.queue.reset(); - vec![ - (ir::Id::from("out"), self.product.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Reset => { - self.queue.reset(); - vec![ - (ir::Id::from("out"), Value::zeroes(self.width)), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Value(left, right) => { - let backing_val = if SIGNED { - Value::from( - left.as_signed() * right.as_signed(), - 2 * self.width, - ) - } else { - Value::from( - left.as_unsigned() * right.as_unsigned(), - 2 * self.width, - ) - }; - - let upper_idx = (2 * self.width) - self.int_width - 1; - let lower_idx = self.width - self.int_width; - - if backing_val - .iter() - .rev() - .take((backing_val.len() - 1) - upper_idx as usize) - .any(|x| x) - && (!backing_val - .iter() - .rev() - .take((backing_val.len() - 1) - upper_idx as usize) - .all(|x| x) - | !SIGNED) - { - let out = backing_val - .clone() - .slice_out(upper_idx as usize, lower_idx as usize); - - warn!( - self.logger, - "Computation over/underflow: {} to {}", - if SIGNED { - format!( - "{:.fw$}", - backing_val - .as_sfp((self.frac_width * 2) as usize), - fw = DECIMAL_PRINT_WIDTH - ) - } else { - format!( - "{:.fw$}", - backing_val - .as_ufp((self.frac_width * 2) as usize), - fw = DECIMAL_PRINT_WIDTH - ) - }, - if SIGNED { - format!( - "{:.fw$}", - out.as_sfp(self.frac_width as usize), - fw = DECIMAL_PRINT_WIDTH - ) - } else { - format!( - "{:.fw$}", - out.as_ufp(self.frac_width as usize), - fw = DECIMAL_PRINT_WIDTH - ) - }, - ) - } - - let computed = Some( - backing_val - .slice_out(upper_idx as usize, lower_idx as usize), - ); - - if let Some(out) = self.queue.shift(computed) { - self.product = out.clone(); - vec![ - (ir::Id::from("out"), out), - (ir::Id::from("done"), Value::bit_high()), - ] - } else { - vec![ - (ir::Id::from("out"), Value::zeroes(self.width)), - (ir::Id::from("done"), Value::bit_low()), - ] - } - } - }; - - Ok(out) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate![inputs; - left: self.width, - right: self.width, - reset: 1, - go: 1 - ]; - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - left: "left", - right: "right", - reset: "reset", - go: "go" - ]; - self.update = if reset.as_bool() { - BinOpUpdate::Reset - } else if go.as_bool() { - BinOpUpdate::Value(left.clone(), right.clone()) - } else { - BinOpUpdate::None - }; - - Ok(vec![]) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - self.queue.reset(); - Ok(vec![ - (ir::Id::from("out"), self.product.clone()), - (ir::Id::from("done"), Value::bit_low()), - ]) - } -} - -pub struct StdFpDivPipe { - pub width: u64, - pub int_width: u64, - pub frac_width: u64, - pub quotient: Value, - pub remainder: Value, - update: BinOpUpdate, - queue: ShiftBuffer<(Value, Value), 2>, - full_name: ir::Id, - logger: logging::Logger, -} -impl StdFpDivPipe { - pub fn from_constants( - width: u64, - int_width: u64, - frac_width: u64, - name: ir::Id, - ) -> Self { - assert_eq!(width, int_width + frac_width); - Self { - width, - int_width, - frac_width, - quotient: Value::zeroes(width), - remainder: Value::zeroes(width), - update: BinOpUpdate::None, - queue: ShiftBuffer::default(), - logger: logging::new_sublogger(name), - full_name: name, - } - } - - pub fn new(params: &ir::Binding, full_name: ir::Id) -> Self { - let width = get_param(params, "WIDTH") - .expect("WIDTH parameter missing for fp div"); - let int_width = get_param(params, "INT_WIDTH") - .expect("INT_WIDTH parameter missing for fp div"); - let frac_width = get_param(params, "FRAC_WIDTH") - .expect("FRAC_WIDTH parameter missing for fp div"); - - Self::from_constants(width, int_width, frac_width, full_name) - } -} - -impl Named for StdFpDivPipe { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for StdFpDivPipe { - fn do_tick(&mut self) -> InterpreterResult> { - let out = match self.update.take() { - BinOpUpdate::None => { - self.queue.reset(); - vec![ - (ir::Id::from("out_quotient"), self.quotient.clone()), - (ir::Id::from("out_remainder"), self.remainder.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Reset => { - self.queue.reset(); - vec![ - (ir::Id::from("out_quotient"), Value::zeroes(self.width)), - (ir::Id::from("out_remainder"), Value::zeroes(self.width)), - (ir::Id::from("done"), Value::bit_low()), - ] - } - BinOpUpdate::Value(left, right) => { - let (q, r) = if right.as_u64() != 0 { - if SIGNED { - ( - Value::from( - (left.as_signed() << self.frac_width as usize) - / right.as_signed(), - self.width, - ), - Value::from( - left.as_signed() - - right.as_signed() - * floored_division( - &left.as_signed(), - &right.as_signed(), - ), - self.width, - ), - ) - } else { - ( - Value::from( - (left.as_unsigned() - << self.frac_width as usize) - / right.as_unsigned(), - self.width, - ), - Value::from( - left.as_unsigned() - .rem_euclid(right.as_unsigned()), - self.width, - ), - ) - } - } else { - warn!(self.logger, "Division by zero"); - (Value::zeroes(self.width), Value::zeroes(self.width)) - }; - - if let Some((q, r)) = self.queue.shift(Some((q, r))) { - self.quotient = q.clone(); - self.remainder = r.clone(); - vec![ - (ir::Id::from("out_quotient"), q), - (ir::Id::from("out_remainder"), r), - (ir::Id::from("done"), Value::bit_high()), - ] - } else { - vec![ - (ir::Id::from("out_quotient"), self.quotient.clone()), - (ir::Id::from("out_remainder"), self.remainder.clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - } - }; - Ok(out) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate![inputs; - left: self.width, - right: self.width, - reset: 1, - go: 1 - ]; - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - left: "left", - right: "right", - reset: "reset", - go: "go" - ]; - - self.update = if reset.as_bool() { - BinOpUpdate::Reset - } else if go.as_bool() { - BinOpUpdate::Value(left.clone(), right.clone()) - } else { - BinOpUpdate::None - }; - - Ok(vec![]) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - self.queue.reset(); - Ok(vec![ - (ir::Id::from("out_quotient"), self.quotient.clone()), - (ir::Id::from("out_remainder"), self.remainder.clone()), - (ir::Id::from("done"), Value::bit_low()), - ]) - } -} - -pub(crate) fn floored_division(left: &IBig, right: &IBig) -> IBig { - let div = left / right; - - if left.signum() != ibig!(-1) && right.signum() != ibig!(-1) { - div - } else if (div.signum() == (-1).into() || div.signum() == 0.into()) - && (left != &(&div * right)) - { - div - 1_i32 - } else { - div - } -} - -/// Implementation of integer square root via a basic binary search algorithm -/// based on wikipedia psuedocode -pub(crate) fn int_sqrt(i: &UBig) -> UBig { - let mut lower: UBig = ubig!(0); - let mut upper: UBig = i + ubig!(1); - let mut temp: UBig; - - while lower != (&upper - ubig!(1)) { - temp = (&lower + &upper) / ubig!(2); - if &(&temp * &temp) <= i { - lower = temp - } else { - upper = temp - } - } - lower -} - -type SqrtUpdate = super::memories::RegUpdate; - -pub struct StdSqrt { - pub width: u64, - pub output: Value, - frac_width: u64, - update: SqrtUpdate, - name: ir::Id, -} - -impl StdSqrt { - pub fn new(params: &ir::Binding, name: ir::Id) -> Self { - let width = get_param(params, "WIDTH") - .expect("Missing `WIDTH` param from std_sqrt binding"); - let frac_width = if FP { - get_param(params, "FRAC_WIDTH") - .expect("Missing `FRAC_WIDTH` param from std_sqrt binding") - } else { - 0 - }; - - Self { - width, - frac_width, - output: Value::zeroes(width), - update: SqrtUpdate::None, - name, - } - } -} - -impl Named for StdSqrt { - fn get_full_name(&self) -> &ir::Id { - &self.name - } -} - -impl Primitive for StdSqrt { - fn do_tick(&mut self) -> InterpreterResult> { - let out = match self.update.take() { - SqrtUpdate::None => vec![ - ("out".into(), self.output.clone()), - ("done".into(), Value::bit_low()), - ], - SqrtUpdate::Reset => { - self.output = Value::zeroes(self.width); - vec![ - ("out".into(), self.output.clone()), - ("done".into(), Value::bit_low()), - ] - } - SqrtUpdate::Value(v) => { - self.output = if FP { - let val = int_sqrt( - &(v.as_unsigned() << (self.frac_width as usize)), - ); - Value::from(val, self.width) - } else { - let val = int_sqrt(&v.as_unsigned()); - Value::from(val, self.width) - }; - - vec![ - ("out".into(), self.output.clone()), - ("done".into(), Value::bit_high()), - ] - } - }; - - Ok(out) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate![inputs; - r#in: self.width, - go: 1 - ] - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - in_val: "in", - go: "go", - reset: "reset" - ]; - - self.update = if reset.as_bool() { - SqrtUpdate::Reset - } else if go.as_bool() { - SqrtUpdate::Value(in_val.clone()) - } else { - SqrtUpdate::None - }; - - Ok(vec![]) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - Ok(vec![ - ("out".into(), self.output.clone()), - ("done".into(), Value::bit_low()), - ]) - } -} diff --git a/interp/src/primitives/stateful/mem_utils.rs b/interp/src/primitives/stateful/mem_utils.rs deleted file mode 100644 index e4130fe6cf..0000000000 --- a/interp/src/primitives/stateful/mem_utils.rs +++ /dev/null @@ -1,328 +0,0 @@ -use calyx_ir as ir; - -use crate::{ - errors::{InterpreterError, InterpreterResult}, - primitives::prim_utils::{get_inputs, get_params}, - serialization::Shape, - validate_friendly, - values::Value, -}; - -pub trait MemBinder: Sized { - fn new(params: &ir::Binding, full_name: ir::Id) -> Self; - - fn get_idx( - &self, - inputs: &[(ir::Id, &Value)], - allow_invalid_memory_access: bool, - ) -> InterpreterResult; - - fn validate(&self, inputs: &[(ir::Id, &Value)]); - - fn get_dimensions(&self) -> Shape; - - fn get_array_length(&self) -> usize; -} - -pub struct MemD1 { - size: u64, - idx_size: u64, - full_name: ir::Id, -} - -impl MemBinder for MemD1 { - fn new(params: &ir::Binding, full_name: ir::Id) -> Self { - get_params![params; - // width: "WIDTH", - size: "SIZE", - idx_size: "IDX_SIZE" - ]; - - Self { - size, - idx_size, - full_name, - } - } - - fn get_idx( - &self, - inputs: &[(ir::Id, &Value)], - allow_invalid_memory_access: bool, - ) -> InterpreterResult { - get_inputs![inputs; - idx [u64]: "addr0" - ]; - - if idx >= self.size && !allow_invalid_memory_access { - Err(InterpreterError::InvalidMemoryAccess { - access: vec![idx], - dims: vec![self.size], - name: self.full_name, - } - .into()) - } else { - Ok(idx) - } - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate_friendly![inputs; - addr0: self.idx_size - ] - } - - fn get_dimensions(&self) -> Shape { - Shape::D1(self.size as usize) - } - - fn get_array_length(&self) -> usize { - self.size as usize - } -} - -pub struct MemD2 { - d0_size: u64, - d1_size: u64, - d0_idx_size: u64, - d1_idx_size: u64, - full_name: ir::Id, -} -impl MemBinder for MemD2 { - fn new(params: &ir::Binding, full_name: ir::Id) -> Self { - get_params![params; - d0_size: "D0_SIZE", - d1_size: "D1_SIZE", - d0_idx_size: "D0_IDX_SIZE", - d1_idx_size: "D1_IDX_SIZE" - ]; - - Self { - d0_size, - d1_size, - d0_idx_size, - d1_idx_size, - full_name, - } - } - - fn get_idx( - &self, - inputs: &[(ir::Id, &Value)], - allow_invalid_memory_access: bool, - ) -> InterpreterResult { - get_inputs![inputs; - addr0 [u64]: "addr0", - addr1 [u64]: "addr1" - ]; - - let address = addr0 * self.d1_size + addr1; - - if address >= (self.d0_size * self.d1_size) - && !allow_invalid_memory_access - { - Err(InterpreterError::InvalidMemoryAccess { - access: vec![addr0, addr1], - dims: vec![self.d0_size, self.d1_size], - name: self.full_name, - } - .into()) - } else { - Ok(address) - } - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate_friendly![inputs; - addr0: self.d0_idx_size, - addr1: self.d1_idx_size - ] - } - - fn get_dimensions(&self) -> Shape { - (self.d0_size as usize, self.d1_size as usize).into() - } - - fn get_array_length(&self) -> usize { - (self.d0_size * self.d1_size) as usize - } -} - -pub struct MemD3 { - d0_size: u64, - d1_size: u64, - d2_size: u64, - d0_idx_size: u64, - d1_idx_size: u64, - d2_idx_size: u64, - full_name: ir::Id, -} - -impl MemBinder for MemD3 { - fn new(params: &ir::Binding, full_name: ir::Id) -> Self { - get_params![params; - d0_size: "D0_SIZE", - d1_size: "D1_SIZE", - d2_size: "D2_SIZE", - d0_idx_size: "D0_IDX_SIZE", - d1_idx_size: "D1_IDX_SIZE", - d2_idx_size: "D2_IDX_SIZE" - ]; - - Self { - d0_size, - d1_size, - d2_size, - d0_idx_size, - d1_idx_size, - d2_idx_size, - full_name, - } - } - - fn get_idx( - &self, - inputs: &[(ir::Id, &Value)], - allow_invalid_memory_access: bool, - ) -> InterpreterResult { - get_inputs![inputs; - addr0 [u64]: "addr0", - addr1 [u64]: "addr1", - addr2 [u64]: "addr2" - ]; - - let address = self.d2_size * (addr0 * self.d1_size + addr1) + addr2; - - if address >= (self.d0_size * self.d1_size * self.d2_size) - && !allow_invalid_memory_access - { - Err(InterpreterError::InvalidMemoryAccess { - access: vec![addr0, addr1, addr2], - dims: vec![self.d0_size, self.d1_size, self.d2_size], - name: self.full_name, - } - .into()) - } else { - Ok(address) - } - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate_friendly![inputs; - addr0: self.d0_idx_size, - addr1: self.d1_idx_size, - addr2: self.d2_idx_size - ] - } - - fn get_dimensions(&self) -> Shape { - ( - self.d0_size as usize, - self.d1_size as usize, - self.d2_size as usize, - ) - .into() - } - - fn get_array_length(&self) -> usize { - (self.d0_size * self.d1_size * self.d2_size) as usize - } -} - -pub struct MemD4 { - d0_size: u64, - d1_size: u64, - d2_size: u64, - d3_size: u64, - d0_idx_size: u64, - d1_idx_size: u64, - d2_idx_size: u64, - d3_idx_size: u64, - full_name: ir::Id, -} - -impl MemBinder for MemD4 { - fn new(params: &ir::Binding, full_name: ir::Id) -> Self { - get_params![params; - d0_size: "D0_SIZE", - d1_size: "D1_SIZE", - d2_size: "D2_SIZE", - d3_size: "D3_SIZE", - d0_idx_size: "D0_IDX_SIZE", - d1_idx_size: "D1_IDX_SIZE", - d2_idx_size: "D2_IDX_SIZE", - d3_idx_size: "D3_IDX_SIZE" - ]; - - Self { - d0_size, - d1_size, - d2_size, - d3_size, - d0_idx_size, - d1_idx_size, - d2_idx_size, - d3_idx_size, - full_name, - } - } - - fn get_idx( - &self, - inputs: &[(ir::Id, &Value)], - allow_invalid_memory_access: bool, - ) -> InterpreterResult { - get_inputs![inputs; - addr0 [u64]: "addr0", - addr1 [u64]: "addr1", - addr2 [u64]: "addr2", - addr3 [u64]: "addr3" - ]; - - let address = self.d3_size - * (self.d2_size * (addr0 * self.d1_size + addr1) + addr2) - + addr3; - - if address - >= (self.d0_size * self.d1_size * self.d2_size * self.d3_size) - && !allow_invalid_memory_access - { - Err(InterpreterError::InvalidMemoryAccess { - access: vec![addr0, addr1, addr2, addr3], - dims: vec![ - self.d0_size, - self.d1_size, - self.d2_size, - self.d3_size, - ], - name: self.full_name, - } - .into()) - } else { - Ok(address) - } - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate_friendly![inputs; - addr0: self.d0_idx_size, - addr1: self.d1_idx_size, - addr2: self.d2_idx_size, - addr3: self.d3_idx_size - ] - } - - fn get_dimensions(&self) -> Shape { - ( - self.d0_size as usize, - self.d1_size as usize, - self.d2_size as usize, - self.d3_size as usize, - ) - .into() - } - - fn get_array_length(&self) -> usize { - (self.d0_size * self.d1_size * self.d2_size * self.d3_size) as usize - } -} diff --git a/interp/src/primitives/stateful/memories.rs b/interp/src/primitives/stateful/memories.rs deleted file mode 100644 index a2a3b1486d..0000000000 --- a/interp/src/primitives/stateful/memories.rs +++ /dev/null @@ -1,664 +0,0 @@ -use super::mem_utils::{MemBinder, MemD1, MemD2, MemD3, MemD4}; -use crate::{ - debugger::PrintCode, - errors::{InterpreterError, InterpreterResult}, - primitives::{ - prim_utils::{get_inputs, get_param, output}, - Named, Primitive, - }, - serialization::{Entry, Serializable}, - utils::construct_bindings, - validate, validate_friendly, - values::Value, -}; -use calyx_ir as ir; - -pub(super) enum RegUpdate { - None, - Reset, - Value(Value), -} - -impl RegUpdate { - pub(super) fn clear(&mut self) { - *self = Self::None; - } - - pub(super) fn take(&mut self) -> Self { - std::mem::replace(self, Self::None) - } -} - -/// A register. -pub struct StdReg { - pub width: u64, - pub data: [Value; 1], - update: RegUpdate, - full_name: ir::Id, -} - -impl StdReg { - pub fn from_constants(width: u64, full_name: ir::Id) -> Self { - StdReg { - width, - data: [Value::new(width as usize)], - update: RegUpdate::None, - full_name, - } - } - - pub fn new(params: &ir::Binding, name: ir::Id) -> Self { - let width = params - .iter() - .find(|(n, _)| n.as_ref() == "WIDTH") - .expect("Missing `WIDTH` param from std_reg binding") - .1; - Self::from_constants(width, name) - } -} - -impl Named for StdReg { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for StdReg { - fn do_tick(&mut self) -> InterpreterResult> { - let out = match self.update.take() { - RegUpdate::None => vec![ - (ir::Id::from("out"), self.data[0].clone()), - (ir::Id::from("done"), Value::bit_low()), - ], - RegUpdate::Reset => { - self.data[0] = Value::zeroes(self.width); - vec![ - (ir::Id::from("out"), self.data[0].clone()), - (ir::Id::from("done"), Value::bit_low()), - ] - } - RegUpdate::Value(v) => { - self.data[0] = v; - vec![ - (ir::Id::from("out"), self.data[0].clone()), - (ir::Id::from("done"), Value::bit_high()), - ] - } - }; - - Ok(out) - } - - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(calyx_ir::Id, &Value)]) { - for (id, v) in inputs { - match id.as_ref() { - "in" => assert_eq!(v.len() as u64, self.width), - "write_en" => assert_eq!(v.len(), 1), - "clk" => assert_eq!(v.len(), 1), - "reset" => assert_eq!(v.len(), 1), - p => unreachable!("Unknown port: {}", p), - } - } - } - - fn execute( - &mut self, - inputs: &[(calyx_ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - input: "in", - write_en: "write_en", - reset: "reset" - ]; - - self.update = if reset.as_bool() { - RegUpdate::Reset - } else if write_en.as_bool() { - RegUpdate::Value(input.clone()) - } else { - RegUpdate::None - }; - - Ok(vec![]) - } - - fn reset( - &mut self, - _: &[(calyx_ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - Ok(vec![ - (ir::Id::from("out"), self.data[0].clone()), - (ir::Id::from("done"), Value::bit_low()), - ]) - } - - fn serialize(&self, signed: Option) -> Serializable { - let code = signed.unwrap_or_default(); - Serializable::Val(Entry::from_val_code(&self.data[0], &code)) - } -} - -enum StdMemAction { - None, - Read(InterpreterResult), - Write(InterpreterResult, Value), -} - -impl StdMemAction { - #[inline] - pub fn take(&mut self) -> Self { - std::mem::take(self) - } -} - -impl Default for StdMemAction { - fn default() -> Self { - Self::None - } -} - -/// The primitive skeleton for the std_mem primitives. Supports combinational -/// reads and 1-cycle writes. The read_data output is not latched. -pub struct StdMem { - mem_binder: T, - width: u64, - data: Vec, - full_name: ir::Id, - allow_invalid_memory_access: bool, - update: StdMemAction, -} - -impl StdMem { - pub fn new( - params: &ir::Binding, - name: ir::Id, - allow_invalid_memory_access: bool, - ) -> Self { - let mem_binder = T::new(params, name); - let width = - get_param(params, "WIDTH").expect("Missing WIDTH param for memory"); - - let data = - vec![Value::zeroes(width as usize); mem_binder.get_array_length()]; - - Self { - mem_binder, - width, - data, - full_name: name, - allow_invalid_memory_access, - update: StdMemAction::None, - } - } - - pub fn from_initial_mem( - params: &ir::Binding, - name: ir::Id, - allow_invalid_memory_access: bool, - initial: Vec, - ) -> InterpreterResult { - let mem_binder = T::new(params, name); - let width = - get_param(params, "WIDTH").expect("Missing WIDTH param for memory"); - - let size = mem_binder.get_array_length(); - - if initial.len() != size { - return Err(InterpreterError::IncorrectMemorySize { - mem_dim: mem_binder.get_dimensions().dim_str(), - expected: size as u64, - given: initial.len(), - } - .into()); - } - - let mut data = initial; - for val in data.iter_mut() { - val.truncate_in_place(width as usize); - } - - Ok(Self { - mem_binder, - width, - data, - full_name: name, - allow_invalid_memory_access, - update: StdMemAction::None, - }) - } -} - -impl Named for StdMem { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for StdMem { - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate_friendly![inputs; - write_en: 1, - write_data: self.width - ]; - self.mem_binder.validate(inputs); - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - write_en [bool]: "write_en", - write_data: "write_data" - ]; - - let idx = self - .mem_binder - .get_idx(inputs, self.allow_invalid_memory_access); - - let out = match &idx { - Ok(idx) => { - output![( - "read_data", - if (*idx as usize) < self.data.len() { - self.data[*idx as usize].clone() - } else { - Value::zeroes(self.width) - } - )] - } - Err(_) => { - output![("read_data", Value::zeroes(self.width))] - } - }; - - self.update = if write_en { - StdMemAction::Write(idx, write_data.clone()) - } else { - StdMemAction::Read(idx) - }; - - Ok(out) - } - - fn do_tick(&mut self) -> InterpreterResult> { - Ok(match self.update.take() { - StdMemAction::None => { - output![ - ("read_data", Value::zeroes(self.width)), - ("done", Value::bit_low()) - ] - } - StdMemAction::Read(idx) => { - let idx = idx? as usize; - if idx >= self.data.len() { - output![ - ("read_data", Value::zeroes(self.width)), - ("done", Value::bit_low()) - ] - } else { - output!( - ("read_data", self.data[idx].clone()), - ("done", Value::bit_low()) - ) - } - } - StdMemAction::Write(idx, v) => { - let idx = idx? as usize; - if idx >= self.data.len() { - output![("read_data", v), ("done", Value::bit_high())] - } else { - self.data[idx] = v.clone(); - output![("read_data", v), ("done", Value::bit_high())] - } - } - }) - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - Ok(output![ - ("read_data", Value::zeroes(self.width)), - ("done", Value::bit_low()) - ]) - } - - fn serialize(&self, code: Option) -> Serializable { - let code = code.unwrap_or_default(); - - Serializable::Array( - self.data - .iter() - .map(|x| Entry::from_val_code(x, &code)) - .collect(), - self.mem_binder.get_dimensions(), - ) - } - - fn has_serializeable_state(&self) -> bool { - true - } -} - -impl StdMem { - pub fn from_constants( - width: u64, - size: u64, - idx_size: u64, - full_name: ir::Id, - ) -> Self { - let bindings = construct_bindings([ - ("WIDTH", width), - ("SIZE", size), - ("IDX_SIZE", idx_size), - ]); - Self::new(&bindings, full_name, false) - } -} - -impl StdMem { - pub fn from_constants( - width: u64, - d0_size: u64, - d1_size: u64, - d0_idx_size: u64, - d1_idx_size: u64, - full_name: ir::Id, - ) -> Self { - let bindings = construct_bindings([ - ("WIDTH", width), - ("D0_SIZE", d0_size), - ("D1_SIZE", d1_size), - ("D0_IDX_SIZE", d0_idx_size), - ("D1_IDX_SIZE", d1_idx_size), - ]); - Self::new(&bindings, full_name, false) - } -} - -impl StdMem { - #[allow(clippy::too_many_arguments)] - pub fn from_constants( - width: u64, - d0_size: u64, - d1_size: u64, - d2_size: u64, - d0_idx_size: u64, - d1_idx_size: u64, - d2_idx_size: u64, - full_name: ir::Id, - ) -> Self { - let bindings = construct_bindings([ - ("WIDTH", width), - ("D0_SIZE", d0_size), - ("D1_SIZE", d1_size), - ("D2_SIZE", d2_size), - ("D0_IDX_SIZE", d0_idx_size), - ("D1_IDX_SIZE", d1_idx_size), - ("D2_IDX_SIZE", d2_idx_size), - ]); - Self::new(&bindings, full_name, false) - } -} - -impl StdMem { - #[allow(clippy::too_many_arguments)] - pub fn from_constants( - width: u64, - d0_size: u64, - d1_size: u64, - d2_size: u64, - d3_size: u64, - d0_idx_size: u64, - d1_idx_size: u64, - d2_idx_size: u64, - d3_idx_size: u64, - full_name: ir::Id, - ) -> Self { - let bindings = construct_bindings([ - ("WIDTH", width), - ("D0_SIZE", d0_size), - ("D1_SIZE", d1_size), - ("D2_SIZE", d2_size), - ("D3_SIZE", d3_size), - ("D0_IDX_SIZE", d0_idx_size), - ("D1_IDX_SIZE", d1_idx_size), - ("D2_IDX_SIZE", d2_idx_size), - ("D3_IDX_SIZE", d3_idx_size), - ]); - Self::new(&bindings, full_name, false) - } -} - -enum SeqMemAction { - None, - Read(T), - Write(T, Value), - Reset, -} - -impl Default for SeqMemAction { - fn default() -> Self { - Self::None - } -} - -impl SeqMemAction { - #[inline] - fn take(&mut self) -> Self { - std::mem::take(self) - } - - fn clear(&mut self) { - *self = Self::None - } -} - -/// The primitive skeleton for sequential memories. Both reads and writes take a -/// cycle. Read output is latched. Read and Write signals cannot be asserted at -/// the same time. -pub struct SeqMem { - mem_binder: T, - // parameters - width: u64, - // Internal Details - data: Vec, - full_name: ir::Id, - allow_invalid_memory_access: bool, - // I/O - read_out: Value, - update: SeqMemAction>, -} - -impl SeqMem { - pub fn new( - params: &ir::Binding, - name: ir::Id, - allow_invalid_memory_access: bool, - ) -> Self { - let mem_binder = T::new(params, name); - let width = - get_param(params, "WIDTH").expect("Missing WIDTH param for memory"); - - let data = - vec![Value::zeroes(width as usize); mem_binder.get_array_length()]; - - Self { - mem_binder, - width, - data, - full_name: name, - allow_invalid_memory_access, - read_out: Value::zeroes(width), - update: SeqMemAction::None, - } - } - - pub fn from_initial_mem( - params: &ir::Binding, - name: ir::Id, - allow_invalid_memory_access: bool, - initial: Vec, - ) -> InterpreterResult { - let mem_binder = T::new(params, name); - let width = - get_param(params, "WIDTH").expect("Missing WIDTH param for memory"); - - let size = mem_binder.get_array_length(); - - if initial.len() != size { - return Err(InterpreterError::IncorrectMemorySize { - mem_dim: mem_binder.get_dimensions().dim_str(), - expected: size as u64, - given: initial.len(), - } - .into()); - } - - let mut data = initial; - for val in data.iter_mut() { - val.truncate_in_place(width as usize); - } - - Ok(Self { - mem_binder, - width, - data, - full_name: name, - allow_invalid_memory_access, - read_out: Value::zeroes(width), - update: SeqMemAction::None, - }) - } -} -impl Named for SeqMem { - fn get_full_name(&self) -> &ir::Id { - &self.full_name - } -} - -impl Primitive for SeqMem { - fn is_comb(&self) -> bool { - false - } - - fn validate(&self, inputs: &[(ir::Id, &Value)]) { - validate![inputs; - content_en: 1, - write_en: 1, - reset: 1, - write_data: self.width - ]; - self.mem_binder.validate(inputs); - } - - fn execute( - &mut self, - inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - get_inputs![inputs; - content_en [bool]: "content_en", - write_en [bool]: "write_en", - reset [bool]: "reset", - input: "write_data" - ]; - - let idx = self - .mem_binder - .get_idx(inputs, self.allow_invalid_memory_access); - - self.update = if reset { - SeqMemAction::Reset - } else if write_en && content_en { - SeqMemAction::Write(idx, input.clone()) - } else if content_en { - SeqMemAction::Read(idx) - } else { - SeqMemAction::None - }; - - // nothing on comb path - Ok(vec![]) - } - - fn do_tick(&mut self) -> InterpreterResult> { - match self.update.take() { - SeqMemAction::Read(idx) => { - let idx = idx? as usize; - if idx >= self.data.len() { - self.read_out = Value::zeroes(self.width) - } else { - self.read_out = self.data[idx].clone() - } - - Ok(vec![ - ("read_data".into(), self.read_out.clone()), - ("done".into(), Value::bit_high()), - ]) - } - SeqMemAction::Write(idx, v) => { - let idx = idx? as usize; - if idx < self.data.len() { - self.data[idx] = v; - } - - self.read_out = Value::zeroes(self.width); - - Ok(vec![ - ("read_data".into(), self.read_out.clone()), - ("done".into(), Value::bit_high()), - ]) - } - SeqMemAction::Reset => { - self.read_out = Value::zeroes(self.width); - Ok(vec![ - ("read_data".into(), self.read_out.clone()), - ("done".into(), Value::bit_low()), - ]) - } - SeqMemAction::None => Ok(vec![ - ("read_data".into(), self.read_out.clone()), - ("done".into(), Value::bit_low()), - ]), - } - } - - fn reset( - &mut self, - _inputs: &[(ir::Id, &Value)], - ) -> InterpreterResult> { - self.update.clear(); - - Ok(vec![ - ("read_data".into(), self.read_out.clone()), - ("done".into(), Value::bit_low()), - ]) - } - - fn serialize(&self, code: Option) -> Serializable { - let code = code.unwrap_or_default(); - - Serializable::Array( - self.data - .iter() - .map(|x| Entry::from_val_code(x, &code)) - .collect(), - self.mem_binder.get_dimensions(), - ) - } - - fn has_serializeable_state(&self) -> bool { - true - } -} diff --git a/interp/src/primitives/stateful/mod.rs b/interp/src/primitives/stateful/mod.rs deleted file mode 100644 index 69af2f70f2..0000000000 --- a/interp/src/primitives/stateful/mod.rs +++ /dev/null @@ -1,24 +0,0 @@ -mod math; -mod mem_utils; -mod memories; - -pub use math::*; - -pub mod mem { - use super::{ - mem_utils::{MemD1, MemD2, MemD3, MemD4}, - memories::{SeqMem, StdMem}, - }; - - pub use super::memories::StdReg; - - pub type StdMemD1 = StdMem; - pub type StdMemD2 = StdMem; - pub type StdMemD3 = StdMem; - pub type StdMemD4 = StdMem; - - pub type SeqMemD1 = SeqMem; - pub type SeqMemD2 = SeqMem; - pub type SeqMemD3 = SeqMem; - pub type SeqMemD4 = SeqMem; -} From a79554ec74928cb923d06dacb9d3d03d6cd66c70 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 16:19:59 -0400 Subject: [PATCH 12/76] I have lost all sense of what is even happening --- interp/src/as_raw.rs | 47 +++++ interp/src/debugger/commands.rs | 31 --- interp/src/errors.rs | 13 +- .../src/flatten/flat_ir/control/translator.rs | 2 +- interp/src/flatten/primitives/prim_trait.rs | 2 +- .../flatten/primitives/stateful/memories.rs | 14 +- interp/src/lib.rs | 5 +- interp/src/serialization/formatting.rs | 41 +++- interp/src/utils.rs | 184 ------------------ 9 files changed, 100 insertions(+), 239 deletions(-) create mode 100644 interp/src/as_raw.rs delete mode 100644 interp/src/utils.rs diff --git a/interp/src/as_raw.rs b/interp/src/as_raw.rs new file mode 100644 index 0000000000..dada77d2df --- /dev/null +++ b/interp/src/as_raw.rs @@ -0,0 +1,47 @@ +use calyx_ir::RRC; +use std::cell::Ref; + +pub trait AsRaw { + fn as_raw(&self) -> *const Target; +} + +impl AsRaw for &T { + fn as_raw(&self) -> *const T { + *self as *const T + } +} + +impl AsRaw for *const T { + fn as_raw(&self) -> *const T { + *self + } +} + +impl<'a, T> AsRaw for &Ref<'a, T> { + fn as_raw(&self) -> *const T { + self as &T as *const T + } +} +impl<'a, T> AsRaw for Ref<'a, T> { + fn as_raw(&self) -> *const T { + self as &T as *const T + } +} + +impl AsRaw for *mut T { + fn as_raw(&self) -> *const T { + *self as *const T + } +} + +impl AsRaw for RRC { + fn as_raw(&self) -> *const T { + self.as_ptr() + } +} + +impl AsRaw for &RRC { + fn as_raw(&self) -> *const T { + self.as_ptr() + } +} diff --git a/interp/src/debugger/commands.rs b/interp/src/debugger/commands.rs index fee7968d1d..b404b112e6 100644 --- a/interp/src/debugger/commands.rs +++ b/interp/src/debugger/commands.rs @@ -69,37 +69,6 @@ impl From for BreakPointId { } } -#[derive(Debug, Clone, Copy)] -pub enum PrintCode { - Binary, - Unsigned, - Signed, - UFixed(usize), - SFixed(usize), -} - -impl Default for PrintCode { - fn default() -> Self { - Self::Unsigned - } -} - -impl Display for PrintCode { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "{}", - match self { - PrintCode::Binary => "\\b".cyan().to_string(), - PrintCode::Unsigned => "\\u".blue().to_string(), - PrintCode::Signed => "\\s".yellow().to_string(), - PrintCode::UFixed(n) => format!("\\u.{}", n), - PrintCode::SFixed(n) => format!("\\s.{}", n), - } - ) - } -} - #[derive(Clone, Copy, Debug)] pub enum WatchPosition { Before, diff --git a/interp/src/errors.rs b/interp/src/errors.rs index 0e37787d06..a15c03f71a 100644 --- a/interp/src/errors.rs +++ b/interp/src/errors.rs @@ -1,7 +1,5 @@ +use crate::flatten::flat_ir::prelude::AssignedValue; use crate::values::Value; -use crate::{ - flatten::flat_ir::prelude::AssignedValue, utils::assignment_to_string, -}; use calyx_ir::{self as ir, Assignment, Id}; use calyx_utils::Error as CalyxError; use rustyline::error::ReadlineError; @@ -206,6 +204,15 @@ pub enum InterpreterError { SerializationError(#[from] crate::serialization::SerializationError), } +pub fn assignment_to_string( + assignment: &ir::Assignment, +) -> String { + let mut str = vec![]; + ir::Printer::write_assignment(assignment, 0, &mut str) + .expect("Write Failed"); + String::from_utf8(str).expect("Found invalid UTF-8") +} + impl InterpreterError { pub fn conflicting_assignments( port_id: Id, diff --git a/interp/src/flatten/flat_ir/control/translator.rs b/interp/src/flatten/flat_ir/control/translator.rs index ac98113faa..f947a04aa8 100644 --- a/interp/src/flatten/flat_ir/control/translator.rs +++ b/interp/src/flatten/flat_ir/control/translator.rs @@ -3,6 +3,7 @@ use calyx_ir::{self as cir, NumAttr, RRC}; use itertools::Itertools; use crate::{ + as_raw::AsRaw, flatten::{ flat_ir::{ cell_prototype::{CellPrototype, LiteralOrPrimitive}, @@ -19,7 +20,6 @@ use crate::{ index_trait::IndexRange, }, }, - utils::AsRaw, }; use super::{structures::*, utils::CompTraversal}; diff --git a/interp/src/flatten/primitives/prim_trait.rs b/interp/src/flatten/primitives/prim_trait.rs index 405d2cc210..2dc707ea7a 100644 --- a/interp/src/flatten/primitives/prim_trait.rs +++ b/interp/src/flatten/primitives/prim_trait.rs @@ -1,7 +1,7 @@ use crate::{ - debugger::PrintCode, errors::InterpreterResult, flatten::{flat_ir::base::GlobalPortIdx, structures::environment::PortMap}, + serialization::PrintCode, serialization::Serializable, values::Value, }; diff --git a/interp/src/flatten/primitives/stateful/memories.rs b/interp/src/flatten/primitives/stateful/memories.rs index 7e222379b6..a33a0245e2 100644 --- a/interp/src/flatten/primitives/stateful/memories.rs +++ b/interp/src/flatten/primitives/stateful/memories.rs @@ -11,7 +11,7 @@ use crate::{ }, structures::{environment::PortMap, index_trait::IndexRef}, }, - serialization::{Entry, Serializable, Shape}, + serialization::{Entry, PrintCode, Serializable, Shape}, values::Value, }; @@ -97,10 +97,7 @@ impl Primitive for StdReg { Ok(out_signal | done_signal) } - fn serialize( - &self, - code: Option, - ) -> Serializable { + fn serialize(&self, code: Option) -> Serializable { Serializable::Val(Entry::from_val_code( &self.internal_state, &code.unwrap_or_default(), @@ -373,10 +370,7 @@ impl Primitive for CombMem { } } - fn serialize( - &self, - code: Option, - ) -> Serializable { + fn serialize(&self, code: Option) -> Serializable { let code = code.unwrap_or_default(); Serializable::Array( @@ -581,7 +575,7 @@ impl Primitive for SeqMem { true } - fn serialize(&self, code: Option) -> Serializable { + fn serialize(&self, code: Option) -> Serializable { let code = code.unwrap_or_default(); Serializable::Array( diff --git a/interp/src/lib.rs b/interp/src/lib.rs index f613c9413f..ec8c107aef 100644 --- a/interp/src/lib.rs +++ b/interp/src/lib.rs @@ -1,13 +1,12 @@ -pub mod serialization; -pub use utils::MemoryMap; +mod as_raw; pub mod configuration; pub mod debugger; pub mod errors; pub mod logging; mod macros; +pub mod serialization; mod structures; mod tests; -mod utils; pub mod flatten; diff --git a/interp/src/serialization/formatting.rs b/interp/src/serialization/formatting.rs index 77a3611c9e..246952e8e9 100644 --- a/interp/src/serialization/formatting.rs +++ b/interp/src/serialization/formatting.rs @@ -4,8 +4,7 @@ use serde::Serialize; use std::fmt::{Debug, Display}; use crate::{ - flatten::flat_ir::cell_prototype::MemoryDimensions, utils::PrintCode, - values::Value, + flatten::flat_ir::cell_prototype::MemoryDimensions, values::Value, }; /// An enum wrapping over a tuple representing the shape of a multi-dimensional @@ -165,6 +164,40 @@ impl Debug for Entry { } } +#[derive(Debug, Clone, Copy)] +pub enum PrintCode { + Binary, + Unsigned, + Signed, + UFixed(usize), + SFixed(usize), +} + +impl Default for PrintCode { + fn default() -> Self { + Self::Unsigned + } +} + +impl Display for PrintCode { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}", + match self { + PrintCode::Binary => + owo_colors::OwoColorize::cyan(&"\\b").to_string(), + PrintCode::Unsigned => + owo_colors::OwoColorize::blue(&"\\u").to_string(), + PrintCode::Signed => + owo_colors::OwoColorize::yellow(&"\\s").to_string(), + PrintCode::UFixed(n) => format!("\\u.{}", n), + PrintCode::SFixed(n) => format!("\\s.{}", n), + } + ) + } +} + #[derive(Clone)] pub enum Serializable { Empty, @@ -186,9 +219,6 @@ impl Display for Serializable { Serializable::Array(arr, shape) => { write!(f, "{}", format_array(arr, shape)) } - full @ Serializable::Full(_) => { - write!(f, "{}", serde_json::to_string(full).unwrap()) - } } } } @@ -259,7 +289,6 @@ impl Serialize for Serializable { Shape::D1(_) => unreachable!(), } } - Serializable::Full(s) => s.serialize(serializer), } } } diff --git a/interp/src/utils.rs b/interp/src/utils.rs deleted file mode 100644 index 7bd71b0406..0000000000 --- a/interp/src/utils.rs +++ /dev/null @@ -1,184 +0,0 @@ -use crate::values::Value; -use calyx_ir::{self as ir, Assignment, Binding, Id, Port, RRC}; -use serde::Deserialize; -use std::cell::Ref; -use std::collections::HashMap; -use std::fs; -use std::hash::{Hash, Hasher}; -use std::ops::{Deref, DerefMut}; -use std::path::PathBuf; -use std::rc::Rc; - -pub use crate::debugger::PrintCode; -/// A wrapper to enable hashing of assignments by their destination port. -pub(super) struct PortAssignment<'a>(*const Port, &'a Assignment); - -impl<'a> Hash for PortAssignment<'a> { - fn hash(&self, state: &mut H) { - self.0.hash(state); - } -} - -impl<'a> PartialEq for PortAssignment<'a> { - fn eq(&self, other: &Self) -> bool { - std::ptr::eq(self.0, other.0) - } -} - -impl<'a> Eq for PortAssignment<'a> {} - -impl<'a> PortAssignment<'a> { - /// Construct a new PortAssignment. - pub fn new(a_ref: &'a Assignment) -> Self { - Self(a_ref.dst.as_raw(), a_ref) - } - - /// Get the associated port. - pub fn get_port(&self) -> *const Port { - self.0 - } - - /// Get the associated assignment. - pub fn get_assignment(&self) -> &Assignment { - self.1 - } -} - -/// A map representing all the identifiers and its associated values in a -/// Futil program. -#[derive(Debug, Deserialize)] -#[serde(transparent)] -pub struct MemoryMap(HashMap>); - -impl MemoryMap { - pub fn inflate_map( - path: &Option, - ) -> crate::errors::InterpreterResult> { - if let Some(path) = path { - let v = fs::read(path)?; - let file_contents = std::str::from_utf8(&v)?; - let map: MemoryMap = serde_json::from_str(file_contents).unwrap(); - return Ok(Some(map)); - } - - Ok(None) - } -} - -impl Deref for MemoryMap { - type Target = HashMap>; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl DerefMut for MemoryMap { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } -} - -/// Construct memory bindings. -pub fn construct_bindings(binds: [(&str, u64); N]) -> Binding { - let mut vec = Binding::new(); - for (name, val) in binds { - vec.push((Id::from(name), val)) - } - vec -} - -pub trait AsRaw { - fn as_raw(&self) -> *const Target; -} - -impl AsRaw for &T { - fn as_raw(&self) -> *const T { - *self as *const T - } -} - -impl AsRaw for *const T { - fn as_raw(&self) -> *const T { - *self - } -} - -impl<'a, T> AsRaw for &Ref<'a, T> { - fn as_raw(&self) -> *const T { - self as &T as *const T - } -} -impl<'a, T> AsRaw for Ref<'a, T> { - fn as_raw(&self) -> *const T { - self as &T as *const T - } -} - -impl AsRaw for *mut T { - fn as_raw(&self) -> *const T { - *self as *const T - } -} - -impl AsRaw for RRC { - fn as_raw(&self) -> *const T { - self.as_ptr() - } -} - -impl AsRaw for &RRC { - fn as_raw(&self) -> *const T { - self.as_ptr() - } -} - -pub fn assignment_to_string( - assignment: &ir::Assignment, -) -> String { - let mut str = vec![]; - ir::Printer::write_assignment(assignment, 0, &mut str) - .expect("Write Failed"); - String::from_utf8(str).expect("Found invalid UTF-8") -} - -pub enum RcOrConst { - Rc(RRC), - Const(*const T), -} - -impl RcOrConst { - pub fn get_rrc(&self) -> Option> { - match self { - RcOrConst::Rc(c) => Some(Rc::clone(c)), - RcOrConst::Const(_) => None, - } - } -} - -impl From> for RcOrConst { - fn from(input: RRC) -> Self { - Self::Rc(input) - } -} - -impl From<&RRC> for RcOrConst { - fn from(input: &RRC) -> Self { - Self::Rc(Rc::clone(input)) - } -} - -impl From<*const T> for RcOrConst { - fn from(input: *const T) -> Self { - Self::Const(input) - } -} - -impl AsRaw for RcOrConst { - fn as_raw(&self) -> *const T { - match self { - RcOrConst::Rc(a) => a.as_raw(), - RcOrConst::Const(a) => *a, - } - } -} From 2752c876828c177f1e0223b40dd92d3749e6f819 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 16:29:34 -0400 Subject: [PATCH 13/76] I going to go feral --- interp/src/debugger/{parser => commands}/command_parser.rs | 2 +- interp/src/debugger/{parser => commands}/commands.pest | 0 interp/src/debugger/{commands.rs => commands/core.rs} | 2 +- interp/src/debugger/{parser => commands}/mod.rs | 1 + interp/src/debugger/mod.rs | 4 +--- 5 files changed, 4 insertions(+), 5 deletions(-) rename interp/src/debugger/{parser => commands}/command_parser.rs (99%) rename interp/src/debugger/{parser => commands}/commands.pest (100%) rename interp/src/debugger/{commands.rs => commands/core.rs} (99%) rename interp/src/debugger/{parser => commands}/mod.rs (83%) diff --git a/interp/src/debugger/parser/command_parser.rs b/interp/src/debugger/commands/command_parser.rs similarity index 99% rename from interp/src/debugger/parser/command_parser.rs rename to interp/src/debugger/commands/command_parser.rs index 89c84dd339..c90d761a03 100644 --- a/interp/src/debugger/parser/command_parser.rs +++ b/interp/src/debugger/commands/command_parser.rs @@ -12,7 +12,7 @@ use crate::{debugger::commands::PrintCode, errors::InterpreterResult}; const _GRAMMAR: &str = include_str!("commands.pest"); #[derive(Parser)] -#[grammar = "debugger/parser/commands.pest"] +#[grammar = "commands.pest"] pub struct CommandParser; #[pest_consume::parser] diff --git a/interp/src/debugger/parser/commands.pest b/interp/src/debugger/commands/commands.pest similarity index 100% rename from interp/src/debugger/parser/commands.pest rename to interp/src/debugger/commands/commands.pest diff --git a/interp/src/debugger/commands.rs b/interp/src/debugger/commands/core.rs similarity index 99% rename from interp/src/debugger/commands.rs rename to interp/src/debugger/commands/core.rs index b404b112e6..e62f1f2b6a 100644 --- a/interp/src/debugger/commands.rs +++ b/interp/src/debugger/commands/core.rs @@ -7,7 +7,7 @@ use std::{ marker::PhantomData, }; -use crate::structures::names::CompGroupName; +use crate::serialization::PrintCode; #[derive(Debug)] pub struct ParsedGroupName { diff --git a/interp/src/debugger/parser/mod.rs b/interp/src/debugger/commands/mod.rs similarity index 83% rename from interp/src/debugger/parser/mod.rs rename to interp/src/debugger/commands/mod.rs index 08055b8b44..b9e326358c 100644 --- a/interp/src/debugger/parser/mod.rs +++ b/interp/src/debugger/commands/mod.rs @@ -1,2 +1,3 @@ pub(crate) mod command_parser; +pub mod core; pub use command_parser::parse_command; diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index d7b1e1644b..bc0df03c67 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -1,13 +1,11 @@ mod cidr; -mod commands; +pub(crate) mod commands; mod context; mod interactive_errors; mod io_utils; pub(crate) mod name_tree; pub(crate) mod new_parser; -pub(crate) mod parser; pub mod source; -pub use commands::PrintCode; pub use cidr::Debugger; pub use cidr::ProgramStatus; From 8eebffc0281d438fef21b3430b5aa26caf959986 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 16:35:05 -0400 Subject: [PATCH 14/76] nothing works aaaaaaa --- interp/src/debugger/commands/command_parser.rs | 9 +++++---- interp/src/debugger/context.rs | 3 +-- interp/src/debugger/mod.rs | 2 +- interp/src/errors.rs | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/interp/src/debugger/commands/command_parser.rs b/interp/src/debugger/commands/command_parser.rs index c90d761a03..bf38921543 100644 --- a/interp/src/debugger/commands/command_parser.rs +++ b/interp/src/debugger/commands/command_parser.rs @@ -1,18 +1,19 @@ -use super::super::commands::{BreakPointId, Command, ParsedGroupName}; +use super::core::{ + BreakPointId, Command, ParsedGroupName, PrintMode, WatchPosition, +}; use calyx_ir::Id; use pest_consume::{match_nodes, Error, Parser}; type ParseResult = std::result::Result>; type Node<'i> = pest_consume::Node<'i, Rule, ()>; -use super::super::commands::{PrintMode, WatchPosition}; -use crate::{debugger::commands::PrintCode, errors::InterpreterResult}; +use crate::{errors::InterpreterResult, serialization::PrintCode}; // include the grammar file so that Cargo knows to rebuild this file on grammar changes const _GRAMMAR: &str = include_str!("commands.pest"); #[derive(Parser)] -#[grammar = "commands.pest"] +#[grammar = "debugger/commands/commands.pest"] pub struct CommandParser; #[pest_consume::parser] diff --git a/interp/src/debugger/context.rs b/interp/src/debugger/context.rs index c3843f1a59..2df59edeb3 100644 --- a/interp/src/debugger/context.rs +++ b/interp/src/debugger/context.rs @@ -2,8 +2,7 @@ use super::cidr::SPACING; use super::commands::{ BreakPointId, ParsedGroupName, PrintTuple, WatchPosition, }; -use crate::interpreter_ir as iir; -use crate::structures::names::{CompGroupName, GroupQIN}; + use calyx_ir::Id; use owo_colors::OwoColorize; use std::collections::HashMap; diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index bc0df03c67..0f3b8d7f70 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -1,5 +1,5 @@ mod cidr; -pub(crate) mod commands; +pub mod commands; mod context; mod interactive_errors; mod io_utils; diff --git a/interp/src/errors.rs b/interp/src/errors.rs index a15c03f71a..e02a3eab52 100644 --- a/interp/src/errors.rs +++ b/interp/src/errors.rs @@ -65,7 +65,7 @@ pub enum InterpreterError { #[error(transparent)] ParseError( #[from] - pest_consume::Error, + pest_consume::Error, ), /// Unable to parse the debugger command From b42334bf8c23721b8fa22dd1fd1f77bcf6c80e66 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 24 Jun 2024 16:36:05 -0400 Subject: [PATCH 15/76] Fix the import --- interp/src/debugger/commands/mod.rs | 1 + interp/src/debugger/io_utils.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/interp/src/debugger/commands/mod.rs b/interp/src/debugger/commands/mod.rs index b9e326358c..576e75177b 100644 --- a/interp/src/debugger/commands/mod.rs +++ b/interp/src/debugger/commands/mod.rs @@ -1,3 +1,4 @@ pub(crate) mod command_parser; pub mod core; pub use command_parser::parse_command; +pub use core::Command; diff --git a/interp/src/debugger/io_utils.rs b/interp/src/debugger/io_utils.rs index c63d9a1e25..9c59fae7ce 100644 --- a/interp/src/debugger/io_utils.rs +++ b/interp/src/debugger/io_utils.rs @@ -1,5 +1,5 @@ +use super::commands::parse_command; use super::commands::Command; -use super::parser::parse_command; use crate::errors::InterpreterResult; use rustyline::Editor; use std::collections::VecDeque; From 219c709a3ee0e59233bc28a8aea3d8ed641f5e93 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Wed, 26 Jun 2024 14:31:16 -0400 Subject: [PATCH 16/76] a checkpoint I guess, everything is still super broken. working top-down now --- interp/src/debugger/cidr.rs | 22 ++++-- interp/src/debugger/commands/core.rs | 29 +++++--- interp/src/debugger/commands/mod.rs | 2 + interp/src/debugger/context.rs | 73 +++++++------------ interp/src/debugger/mod.rs | 2 +- interp/src/debugger/source/mod.rs | 1 + .../debugger/{ => source}/new_metadata.pest | 0 .../src/debugger/{ => source}/new_parser.rs | 4 +- interp/src/debugger/structures.rs | 0 interp/src/errors.rs | 2 +- .../src/flatten/structures/environment/env.rs | 16 ++++ interp/src/main.rs | 15 +--- 12 files changed, 85 insertions(+), 81 deletions(-) rename interp/src/debugger/{ => source}/new_metadata.pest (100%) rename interp/src/debugger/{ => source}/new_parser.rs (96%) create mode 100644 interp/src/debugger/structures.rs diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/cidr.rs index 37fcfb7c8d..c63e7ee914 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/cidr.rs @@ -6,8 +6,6 @@ use super::{ new_parser::parse_metadata, source::structures::NewSourceMap, }; -use crate::interpreter::{ComponentInterpreter, ConstCell, Interpreter}; -use crate::structures::names::{CompGroupName, ComponentQualifiedInstanceName}; use crate::structures::state_views::StateView; use crate::utils::AsRaw; use crate::{configuration, debugger::source::SourceMap}; @@ -19,6 +17,14 @@ use crate::{ errors::{InterpreterError, InterpreterResult}, structures::names::GroupQIN, }; +use crate::{ + flatten::structures::context::Context, + structures::names::{CompGroupName, ComponentQualifiedInstanceName}, +}; +use crate::{ + flatten::structures::environment::Simulator, + interpreter::{ComponentInterpreter, ConstCell, Interpreter}, +}; use crate::{interpreter_ir as iir, serialization::Serializable}; use std::collections::HashSet; @@ -70,15 +76,15 @@ impl ProgramStatus { /// The interactive Calyx debugger. The debugger itself is run with the /// [Debugger::main_loop] function while this struct holds auxilliary /// information used to coordinate the debugging process. -pub struct Debugger { - _context: iir::ComponentCtx, - main_component: Rc, - debugging_ctx: DebuggingContext, +pub struct Debugger<'a> { + simulator: Simulator<'a>, + // this is technically redundant but is here for mutability reasons + program_context: &'a Context, + debugging_context: DebuggingContext, source_map: Option, - interpreter: ComponentInterpreter, } -impl Debugger { +impl<'a> Debugger<'a> { /// construct a debugger instance from the target calyx file pub fn from_file( file: &Path, diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index e62f1f2b6a..e9db613080 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -37,22 +37,31 @@ impl ParsedGroupName { self.component.is_some() } - pub fn unwrap_concrete(self) -> CompGroupName { - CompGroupName::new(self.group, self.component.unwrap()) + pub fn concretize(&self, component: calyx_ir::Id) -> GroupName { + GroupName { + component: self.component.unwrap_or(component), + group: self.group, + } } - pub fn concretize( - mut self, - main_comp_name: &calyx_ir::Id, - ) -> CompGroupName { - if !self.is_concrete() { - self.component = Some(*main_comp_name); + pub fn get_concrete(&self) -> Option { + if self.is_concrete() { + Some(GroupName { + component: self.component.unwrap(), + group: self.group, + }) + } else { + None } - - self.unwrap_concrete() } } +#[derive(Debug, Clone)] +pub struct GroupName { + pub component: Id, + pub group: Id, +} + pub enum BreakPointId { Name(ParsedGroupName), Number(u64), diff --git a/interp/src/debugger/commands/mod.rs b/interp/src/debugger/commands/mod.rs index 576e75177b..3598b066d6 100644 --- a/interp/src/debugger/commands/mod.rs +++ b/interp/src/debugger/commands/mod.rs @@ -2,3 +2,5 @@ pub(crate) mod command_parser; pub mod core; pub use command_parser::parse_command; pub use core::Command; + +pub use core::*; diff --git a/interp/src/debugger/context.rs b/interp/src/debugger/context.rs index 2df59edeb3..8bcce2e137 100644 --- a/interp/src/debugger/context.rs +++ b/interp/src/debugger/context.rs @@ -1,7 +1,7 @@ -use super::cidr::SPACING; use super::commands::{ BreakPointId, ParsedGroupName, PrintTuple, WatchPosition, }; +use super::{cidr::SPACING, commands::GroupName}; use calyx_ir::Id; use owo_colors::OwoColorize; @@ -22,7 +22,7 @@ impl Counter { } } -enum BreakPointState { +enum BreakPointStatus { /// this breakpoint is active Enabled, /// this breakpoint is inactive @@ -31,32 +31,32 @@ enum BreakPointState { Deleted, } -impl BreakPointState { +impl BreakPointStatus { pub fn enabled(&self) -> bool { - matches!(self, BreakPointState::Enabled) + matches!(self, BreakPointStatus::Enabled) } } struct BreakPoint { id: u64, - name: CompGroupName, // Name of the group (may not strictly be needed) - state: BreakPointState, + name: GroupName, // Name of the group (may not strictly be needed) + state: BreakPointStatus, } impl BreakPoint { pub fn enable(&mut self) { - self.state = BreakPointState::Enabled; + self.state = BreakPointStatus::Enabled; } pub fn disable(&mut self) { - self.state = BreakPointState::Disabled; + self.state = BreakPointStatus::Disabled; } pub fn delete(&mut self) { - self.state = BreakPointState::Deleted + self.state = BreakPointStatus::Deleted } pub fn is_deleted(&self) -> bool { - matches!(self.state, BreakPointState::Deleted) + matches!(self.state, BreakPointStatus::Deleted) } } @@ -80,9 +80,9 @@ impl std::fmt::Debug for BreakPoint { &self.id, &self.name, match &self.state { - BreakPointState::Enabled => "enabled", - BreakPointState::Disabled => "disabled", - BreakPointState::Deleted => "deleted", + BreakPointStatus::Enabled => "enabled", + BreakPointStatus::Disabled => "disabled", + BreakPointStatus::Deleted => "deleted", } ) } @@ -153,14 +153,12 @@ impl BreakpointAction { } pub(super) struct DebuggingContext { - breakpoints: HashMap, - watchpoints_before: - HashMap)>, - watchpoints_after: - HashMap)>, + breakpoints: HashMap, + watchpoints_before: HashMap)>, + watchpoints_after: HashMap)>, count: Counter, watch_count: Counter, - group_exec_info: GroupExecutionInfo, + group_exec_info: GroupExecutionInfo, // used primarially for checking if a given group exists comp_ctx: HashMap>, main_comp_name: Id, @@ -224,7 +222,7 @@ impl DebuggingContext { let br = BreakPoint { id: self.count.next(), name: target, - state: BreakPointState::Enabled, + state: BreakPointStatus::Enabled, }; e.insert(br); } else { @@ -254,14 +252,14 @@ impl DebuggingContext { WatchPosition::Before => { self.watchpoints_before .entry(key) - .or_insert((BreakPointState::Enabled, Vec::new())) + .or_insert((BreakPointStatus::Enabled, Vec::new())) .1 .push(watchpoint); } WatchPosition::After => { self.watchpoints_after .entry(key) - .or_insert((BreakPointState::Enabled, Vec::new())) + .or_insert((BreakPointStatus::Enabled, Vec::new())) .1 .push(watchpoint); } @@ -347,10 +345,7 @@ impl DebuggingContext { } #[inline] - pub fn concretize_group_name( - &self, - target: ParsedGroupName, - ) -> CompGroupName { + pub fn concretize_group_name(&self, target: ParsedGroupName) -> GroupName { target.concretize(&self.main_comp_name) } @@ -360,13 +355,13 @@ impl DebuggingContext { } pub fn set_current_time(&mut self, current: HashSet) { - let current: HashSet = + let current: HashSet = current.into_iter().map(|x| x.into()).collect(); self.group_exec_info.shift_current(current.clone()); self.group_exec_info.shift_current(current); } - pub fn hit_breakpoints(&self) -> Vec<&CompGroupName> { + pub fn hit_breakpoints(&self) -> Vec<&GroupName> { self.group_exec_info .groups_new_on() .filter(|x| { @@ -417,9 +412,9 @@ impl DebuggingContext { pub fn is_group_running( &self, current_executing: HashSet, - target: &CompGroupName, + target: &GroupName, ) -> bool { - let current: HashSet = + let current: HashSet = current_executing.into_iter().map(|x| x.into()).collect(); current.contains(target) @@ -456,21 +451,3 @@ impl DebuggingContext { } } } - -pub(super) trait ConcretizableName { - fn concretize(self, context: &DebuggingContext) -> CompGroupName; -} - -impl ConcretizableName for CompGroupName { - #[inline] - fn concretize(self, _context: &DebuggingContext) -> CompGroupName { - self - } -} - -impl ConcretizableName for ParsedGroupName { - #[inline] - fn concretize(self, context: &DebuggingContext) -> CompGroupName { - context.concretize_group_name(self) - } -} diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index 0f3b8d7f70..395aacf8ce 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -4,8 +4,8 @@ mod context; mod interactive_errors; mod io_utils; pub(crate) mod name_tree; -pub(crate) mod new_parser; pub mod source; +pub mod structures; pub use cidr::Debugger; pub use cidr::ProgramStatus; diff --git a/interp/src/debugger/source/mod.rs b/interp/src/debugger/source/mod.rs index 6a135cc76d..d7e23adc46 100644 --- a/interp/src/debugger/source/mod.rs +++ b/interp/src/debugger/source/mod.rs @@ -1,4 +1,5 @@ pub(crate) mod metadata_parser; +pub(crate) mod new_parser; pub mod structures; pub use structures::{NamedTag, SourceMap}; diff --git a/interp/src/debugger/new_metadata.pest b/interp/src/debugger/source/new_metadata.pest similarity index 100% rename from interp/src/debugger/new_metadata.pest rename to interp/src/debugger/source/new_metadata.pest diff --git a/interp/src/debugger/new_parser.rs b/interp/src/debugger/source/new_parser.rs similarity index 96% rename from interp/src/debugger/new_parser.rs rename to interp/src/debugger/source/new_parser.rs index dbc780846e..2eb3b2b979 100644 --- a/interp/src/debugger/new_parser.rs +++ b/interp/src/debugger/source/new_parser.rs @@ -1,4 +1,4 @@ -use super::source::structures::{GroupContents, NewSourceMap}; +use super::structures::{GroupContents, NewSourceMap}; use crate::errors::InterpreterResult; use pest_consume::{match_nodes, Error, Parser}; use std::collections::HashMap; @@ -9,7 +9,7 @@ type Node<'i> = pest_consume::Node<'i, Rule, ()>; const _GRAMMAR: &str = include_str!("new_metadata.pest"); #[derive(Parser)] -#[grammar = "debugger/new_metadata.pest"] +#[grammar = "debugger/source/new_metadata.pest"] pub struct MetadataParser; #[pest_consume::parser] diff --git a/interp/src/debugger/structures.rs b/interp/src/debugger/structures.rs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/interp/src/errors.rs b/interp/src/errors.rs index e02a3eab52..ac12575b7c 100644 --- a/interp/src/errors.rs +++ b/interp/src/errors.rs @@ -77,7 +77,7 @@ pub enum InterpreterError { // Unable to parse metadata #[error(transparent)] NewMetadataParseError( - #[from] pest_consume::Error, + #[from] pest_consume::Error, ), // Missing metadata diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 00873e10ef..2cb619d633 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -694,6 +694,22 @@ impl<'a> Simulator<'a> { pub fn _unpack_env(self) -> Environment<'a> { self.env } + + pub fn build_simulator( + ctx: &'a Context, + data_file: &Option, + ) -> Result { + let data_dump = data_file + .map(|path| { + let mut file = std::fs::File::open(path)?; + DataDump::deserialize(&mut file) + }) + // flip to a result of an option + .map_or(Ok(None), |res| res.map(Some))?; + + let mut sim = Simulator::new(Environment::new(ctx, data_dump)); + Ok(sim) + } } // =========================== simulation functions =========================== diff --git a/interp/src/main.rs b/interp/src/main.rs index 46753ed808..d3a14db87c 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -151,19 +151,12 @@ fn main() -> InterpreterResult<()> { let command = opts.mode.unwrap_or(Command::Interpret(CommandInterpret {})); + // general setup + let i_ctx = interp::flatten::flat_ir::translate(&ctx); + match &command { Command::Interpret(_) => { - let i_ctx = interp::flatten::flat_ir::translate(&ctx); - let data_dump = opts - .data_file - .map(|path| { - let mut file = std::fs::File::open(path)?; - DataDump::deserialize(&mut file) - }) - // flip to a result of an option - .map_or(Ok(None), |res| res.map(Some))?; - - let mut sim = Simulator::new(Environment::new(&i_ctx, data_dump)); + let mut sim = Simulator::build_simulator(&i_ctx, opts)?; sim.run_program()?; From 53bfd30cea18d8a7bb336736d663f2d6383bdf85 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Wed, 26 Jun 2024 15:27:35 -0400 Subject: [PATCH 17/76] I am not having fun --- interp/src/debugger/cidr.rs | 573 ++++++++---------- interp/src/debugger/commands/core.rs | 15 +- interp/src/debugger/context.rs | 453 -------------- .../src/debugger/debugging_context/context.rs | 390 ++++++++++++ interp/src/debugger/debugging_context/mod.rs | 1 + interp/src/debugger/mod.rs | 3 +- interp/src/debugger/name_tree.rs | 135 ----- 7 files changed, 637 insertions(+), 933 deletions(-) delete mode 100644 interp/src/debugger/context.rs create mode 100644 interp/src/debugger/debugging_context/context.rs create mode 100644 interp/src/debugger/debugging_context/mod.rs delete mode 100644 interp/src/debugger/name_tree.rs diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/cidr.rs index c63e7ee914..f305665494 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/cidr.rs @@ -1,40 +1,24 @@ use super::{ - commands::{Command, PrintCode, PrintMode}, + commands::{Command, PrintMode}, context::DebuggingContext, interactive_errors::DebuggerError, io_utils::Input, - new_parser::parse_metadata, source::structures::NewSourceMap, }; -use crate::structures::state_views::StateView; -use crate::utils::AsRaw; -use crate::{configuration, debugger::source::SourceMap}; -use crate::{ - environment::{InterpreterState, PrimitiveMap}, - MemoryMap, -}; use crate::{ + debugger::source::SourceMap, errors::{InterpreterError, InterpreterResult}, - structures::names::GroupQIN, -}; -use crate::{ - flatten::structures::context::Context, - structures::names::{CompGroupName, ComponentQualifiedInstanceName}, -}; -use crate::{ - flatten::structures::environment::Simulator, - interpreter::{ComponentInterpreter, ConstCell, Interpreter}, + flatten::structures::{context::Context, environment::Simulator}, + serialization::{PrintCode, Serializable}, }; -use crate::{interpreter_ir as iir, serialization::Serializable}; + use std::collections::HashSet; -use calyx_frontend::Workspace; -use calyx_ir::{self as ir, Id, RRC}; +use calyx_ir::{Id, RRC}; -use calyx_opt::pass_manager::PassManager; use owo_colors::OwoColorize; +use std::path::Path; use std::{cell::Ref, collections::HashMap, rc::Rc}; -use std::{fmt::Write, path::Path}; /// Constant amount of space used for debugger messages pub(super) const SPACING: &str = " "; @@ -50,16 +34,8 @@ pub struct ProgramStatus { impl ProgramStatus { /// Create a new program status on the fly - pub fn generate(current_groups: HashSet, is_done: bool) -> Self { - let mut set: HashSet = HashSet::new(); - for item in current_groups { - set.insert(item.get_suffix()); - } - - ProgramStatus { - status: set, - done: is_done, - } + pub fn generate() -> Self { + todo!() } /// get status @@ -90,98 +66,56 @@ impl<'a> Debugger<'a> { file: &Path, lib_path: &Path, ) -> InterpreterResult<(Self, NewSourceMap)> { - // create a workspace using the file and lib_path, run the standard - // passes (see main.rs). Construct the initial environment then use that - // to create a new debugger instance with new - - let builder = configuration::ConfigBuilder::new(); - - let config = builder - .quiet(false) - .allow_invalid_memory_access(false) - .error_on_overflow(false) - .allow_par_conflicts(false) - .build(); - - let ws = Workspace::construct(&Some(file.to_path_buf()), lib_path)?; - let mut ctx = ir::from_ast::ast_to_ir(ws)?; - let pm = PassManager::default_passes()?; - - // if !opts.skip_verification - pm.execute_plan(&mut ctx, &["validate".to_string()], &[], &[], false)?; - - let entry_point = ctx.entrypoint; - - let components: iir::ComponentCtx = Rc::new( - ctx.components - .into_iter() - .map(|x| Rc::new(x.into())) - .collect(), - ); - - let main_component = components - .iter() - .find(|&cm| cm.name == entry_point) - .ok_or(InterpreterError::MissingMainComponent)?; - - let mut mems = MemoryMap::inflate_map(&None)?; - - let env = InterpreterState::init_top_level( - &components, - main_component, - &mut mems, - &config, - )?; - // Make NewSourceMap, if we can't then we explode - let mapping = ctx - .metadata - .map(|metadata| parse_metadata(&metadata)) - .unwrap_or_else(|| Err(InterpreterError::MissingMetaData.into()))?; - - Ok(( - Debugger::new(&components, main_component, None, env).unwrap(), - mapping, - )) + // let mapping = ctx + // .metadata + // .map(|metadata| parse_metadata(&metadata)) + // .unwrap_or_else(|| Err(InterpreterError::MissingMetaData.into()))?; + + // Ok(( + // Debugger::new(&components, main_component, None, env).unwrap(), + // mapping, + // )) + todo!(); } pub fn new( - context: &iir::ComponentCtx, - main_component: &Rc, + program_context: &'a Context, source_map: Option, - env: InterpreterState, + data_file: Option, ) -> InterpreterResult { - let qin = ComponentQualifiedInstanceName::new_single( - main_component, - main_component.name, - ); - let mut component_interpreter = - ComponentInterpreter::from_component(main_component, env, qin); - component_interpreter.set_go_high(); - - component_interpreter.converge()?; + let simulator = + Simulator::build_simulator(&program_context, &data_file)?; Ok(Self { - _context: Rc::clone(context), - main_component: Rc::clone(main_component), - debugging_ctx: DebuggingContext::new(context, &main_component.name), + simulator, + program_context, + debugging_context: todo!(), source_map, - interpreter: component_interpreter, }) } + pub fn status(&self) -> ProgramStatus { + todo!() + } + // Go to next step pub fn step(&mut self, n: u64) -> InterpreterResult { + self.do_step(n)?; + + Ok(self.status()) + } + + #[inline] + fn do_step( + &mut self, + n: u64, + ) -> Result<(), crate::errors::BoxedInterpreterError> { for _ in 0..n { self.interpreter.step()?; } self.interpreter.converge()?; - - // Create new HashSet with Ids - Ok(ProgramStatus::generate( - self.interpreter.currently_executing_group(), - self.interpreter.is_done(), - )) + Ok(()) } pub fn cont(&mut self) -> InterpreterResult<()> { @@ -234,7 +168,7 @@ impl<'a> Debugger<'a> { // so on and so forth - pub fn main_loop(mut self) -> InterpreterResult { + pub fn main_loop(mut self) -> InterpreterResult<()> { let mut input_stream = Input::new()?; println!("== Calyx Interactive Debugger =="); @@ -558,233 +492,200 @@ impl<'a> Debugger<'a> { } } - fn do_print( - main_comp_name: Id, - print_list: &[Id], - code: &Option, - root: StateView, - print_mode: &PrintMode, - ) -> Result { - let orig_string = print_list - .iter() - .map(|s| s.id.as_str()) - .collect::>() - .join("."); - - let mut iter = print_list.iter(); - - let length = if main_comp_name == print_list[0] { - iter.next(); - print_list.len() - 1 - } else { - print_list.len() - }; - - let mut current_target = CurrentTarget::Env(&root); - - for (idx, target) in iter.enumerate() { - let current_ref = current_target.borrow(); - let current_env = current_ref.get_env().unwrap(); - - // lowest level - if idx == length - 1 { - // first look for cell - let cell = current_env.get_cell(*target); - if let Some(cell) = cell { - return Ok(print_cell( - &cell, - ¤t_env, - code, - print_mode, - )); - } else if idx != 0 { - let prior = &print_list[idx - 1]; - - if let Some(parent) = current_env.get_cell(*prior) { - let parent_ref = parent.borrow(); - let pt = parent_ref - .ports() - .iter() - .find(|x| x.borrow().name == target); - if let Some(port) = pt { - return Ok(print_port( - port, - ¤t_env, - None, - code, - )); - } else { - return Err(DebuggerError::CannotFind(orig_string)); - // cannot find - } - } else if let Some(port) = - current_env.get_comp().signature.borrow().find(target) - { - return Ok(print_port( - &port, - ¤t_env, - Some(print_list[idx - 1]), - code, - )); - } else { - // cannot find - return Err(DebuggerError::CannotFind(orig_string)); - } - } else { - return Err(DebuggerError::CannotFind(orig_string)); - } - } - // still walking - else { - let map = Rc::clone(current_env.get_cell_map()); - let cell = current_env.get_cell(*target); - if let Some(rrc_cell) = cell { - // need to release these references to replace current - // target - if map.borrow()[&rrc_cell.as_raw()].get_state().is_some() { - drop(current_env); - drop(current_ref); - - current_target = CurrentTarget::Target { - name: rrc_cell.as_raw(), - map, - } - } - // otherwise leave the same - } else { - // cannot find - return Err(DebuggerError::CannotFind(orig_string)); - } - } - } - - unreachable!() - } + // fn do_print( + // main_comp_name: Id, + // print_list: &[Id], + // code: &Option, + // root: StateView, + // print_mode: &PrintMode, + // ) -> Result { + // let orig_string = print_list + // .iter() + // .map(|s| s.id.as_str()) + // .collect::>() + // .join("."); + + // let mut iter = print_list.iter(); + + // let length = if main_comp_name == print_list[0] { + // iter.next(); + // print_list.len() - 1 + // } else { + // print_list.len() + // }; + + // let mut current_target = CurrentTarget::Env(&root); + + // for (idx, target) in iter.enumerate() { + // let current_ref = current_target.borrow(); + // let current_env = current_ref.get_env().unwrap(); + + // // lowest level + // if idx == length - 1 { + // // first look for cell + // let cell = current_env.get_cell(*target); + // if let Some(cell) = cell { + // return Ok(print_cell( + // &cell, + // ¤t_env, + // code, + // print_mode, + // )); + // } else if idx != 0 { + // let prior = &print_list[idx - 1]; + + // if let Some(parent) = current_env.get_cell(*prior) { + // let parent_ref = parent.borrow(); + // let pt = parent_ref + // .ports() + // .iter() + // .find(|x| x.borrow().name == target); + // if let Some(port) = pt { + // return Ok(print_port( + // port, + // ¤t_env, + // None, + // code, + // )); + // } else { + // return Err(DebuggerError::CannotFind(orig_string)); + // // cannot find + // } + // } else if let Some(port) = + // current_env.get_comp().signature.borrow().find(target) + // { + // return Ok(print_port( + // &port, + // ¤t_env, + // Some(print_list[idx - 1]), + // code, + // )); + // } else { + // // cannot find + // return Err(DebuggerError::CannotFind(orig_string)); + // } + // } else { + // return Err(DebuggerError::CannotFind(orig_string)); + // } + // } + // // still walking + // else { + // let map = Rc::clone(current_env.get_cell_map()); + // let cell = current_env.get_cell(*target); + // if let Some(rrc_cell) = cell { + // // need to release these references to replace current + // // target + // if map.borrow()[&rrc_cell.as_raw()].get_state().is_some() { + // drop(current_env); + // drop(current_ref); + + // current_target = CurrentTarget::Target { + // name: rrc_cell.as_raw(), + // map, + // } + // } + // // otherwise leave the same + // } else { + // // cannot find + // return Err(DebuggerError::CannotFind(orig_string)); + // } + // } + // } + + // unreachable!() + // } } -fn print_cell( - target: &RRC, - state: &StateView, - code: &Option, - mode: &PrintMode, -) -> String { - let cell_ref = target.borrow(); - - match mode { - PrintMode::State => { - let actual_code = - code.as_ref().copied().unwrap_or(PrintCode::Binary); - let cell_state = state.get_cell_state(&cell_ref, &actual_code); - if matches!(&cell_state, &Serializable::Empty) { - print_cell(target, state, code, &PrintMode::Port) - } else { - format!( - "{}{} = {}", - SPACING, - cell_ref.name().green().bold(), - cell_state.blue().bold() - ) - } - } - - PrintMode::Port => { - let mut output: String = String::new(); - writeln!(output, "{}{}", SPACING, cell_ref.name().red()) - .expect("Something went wrong trying to print the port"); - for port in cell_ref.ports.iter() { - let v = state.lookup(port.as_raw()); - writeln!( - output, - "{} {} = {}", - SPACING, - port.borrow().name.red(), - if let Some(code) = code { - match code { - PrintCode::Unsigned => { - format!("{}", v.as_unsigned()) - } - PrintCode::Signed => { - format!("{}", v.as_signed().green()) - } - PrintCode::UFixed(num) => { - format!("{}", v.as_ufp(*num).blue()) - } - PrintCode::SFixed(num) => { - format!("{}", v.as_sfp(*num).purple()) - } - PrintCode::Binary => format!("{}", v.cyan()), - } - } else { - format!("{}", &v.magenta()) - } - ) - .expect("Something went wrong trying to print the port"); - } - output - } - } -} - -fn print_port( - target: &RRC, - state: &StateView, - prior_name: Option, - code: &Option, -) -> String { - let port_ref = target.borrow(); - let parent_name = if let Some(prior) = prior_name { - prior - } else { - port_ref.get_parent_name() - }; - - let v = state.lookup(port_ref.as_raw()); - let code = code.as_ref().copied().unwrap_or(PrintCode::Binary); - - format!( - "{}{}.{} = {}", - SPACING, - parent_name.red(), - port_ref.name.green(), - match code { - PrintCode::Unsigned => format!("{}", v.as_unsigned()), - PrintCode::Signed => format!("{}", v.as_signed()), - PrintCode::UFixed(num) => format!("{}", v.as_ufp(num)), - PrintCode::SFixed(num) => format!("{}", v.as_sfp(num)), - PrintCode::Binary => format!("{}", v), - } - ) -} - -enum CurrentTarget<'a> { - Env(&'a StateView<'a>), - Target { name: ConstCell, map: PrimitiveMap }, -} - -impl<'a> CurrentTarget<'a> { - pub fn borrow(&self) -> TargetRef<'_, '_> { - match self { - CurrentTarget::Env(e) => TargetRef::Env(e), - CurrentTarget::Target { name, map } => { - TargetRef::Target(*name, map.borrow()) - } - } - } -} - -enum TargetRef<'a, 'c> { - Env(&'c StateView<'a>), - Target( - ConstCell, - Ref<'c, HashMap>>, - ), -} - -impl<'a, 'c> TargetRef<'a, 'c> { - pub fn get_env(&self) -> Option> { - match self { - TargetRef::Env(e) => Some((*e).clone()), - TargetRef::Target(target, map) => map[target].get_state(), - } - } -} +// fn print_cell( +// target: &RRC, +// state: &StateView, +// code: &Option, +// mode: &PrintMode, +// ) -> String { +// let cell_ref = target.borrow(); + +// match mode { +// PrintMode::State => { +// let actual_code = +// code.as_ref().copied().unwrap_or(PrintCode::Binary); +// let cell_state = state.get_cell_state(&cell_ref, &actual_code); +// if matches!(&cell_state, &Serializable::Empty) { +// print_cell(target, state, code, &PrintMode::Port) +// } else { +// format!( +// "{}{} = {}", +// SPACING, +// cell_ref.name().green().bold(), +// cell_state.blue().bold() +// ) +// } +// } + +// PrintMode::Port => { +// let mut output: String = String::new(); +// writeln!(output, "{}{}", SPACING, cell_ref.name().red()) +// .expect("Something went wrong trying to print the port"); +// for port in cell_ref.ports.iter() { +// let v = state.lookup(port.as_raw()); +// writeln!( +// output, +// "{} {} = {}", +// SPACING, +// port.borrow().name.red(), +// if let Some(code) = code { +// match code { +// PrintCode::Unsigned => { +// format!("{}", v.as_unsigned()) +// } +// PrintCode::Signed => { +// format!("{}", v.as_signed().green()) +// } +// PrintCode::UFixed(num) => { +// format!("{}", v.as_ufp(*num).blue()) +// } +// PrintCode::SFixed(num) => { +// format!("{}", v.as_sfp(*num).purple()) +// } +// PrintCode::Binary => format!("{}", v.cyan()), +// } +// } else { +// format!("{}", &v.magenta()) +// } +// ) +// .expect("Something went wrong trying to print the port"); +// } +// output +// } +// } +// } + +// fn print_port( +// target: &RRC, +// state: &StateView, +// prior_name: Option, +// code: &Option, +// ) -> String { +// let port_ref = target.borrow(); +// let parent_name = if let Some(prior) = prior_name { +// prior +// } else { +// port_ref.get_parent_name() +// }; + +// let v = state.lookup(port_ref.as_raw()); +// let code = code.as_ref().copied().unwrap_or(PrintCode::Binary); + +// format!( +// "{}{}.{} = {}", +// SPACING, +// parent_name.red(), +// port_ref.name.green(), +// match code { +// PrintCode::Unsigned => format!("{}", v.as_unsigned()), +// PrintCode::Signed => format!("{}", v.as_signed()), +// PrintCode::UFixed(num) => format!("{}", v.as_ufp(num)), +// PrintCode::SFixed(num) => format!("{}", v.as_sfp(num)), +// PrintCode::Binary => format!("{}", v), +// } +// ) +// } diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index e9db613080..9561ecfcf2 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -7,7 +7,7 @@ use std::{ marker::PhantomData, }; -use crate::serialization::PrintCode; +use crate::{flatten::flat_ir::prelude::GroupIdx, serialization::PrintCode}; #[derive(Debug)] pub struct ParsedGroupName { @@ -63,15 +63,16 @@ pub struct GroupName { } pub enum BreakPointId { - Name(ParsedGroupName), + Name(GroupIdx), Number(u64), } -impl From for BreakPointId { - fn from(grp: ParsedGroupName) -> Self { - Self::Name(grp) +impl From for BreakPointId { + fn from(v: GroupIdx) -> Self { + Self::Name(v) } } + impl From for BreakPointId { fn from(n: u64) -> Self { Self::Number(n) @@ -90,12 +91,12 @@ impl Default for WatchPosition { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub enum PrintMode { State, Port, } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct PrintTuple(Vec>, Option, PrintMode); impl PrintTuple { diff --git a/interp/src/debugger/context.rs b/interp/src/debugger/context.rs deleted file mode 100644 index 8bcce2e137..0000000000 --- a/interp/src/debugger/context.rs +++ /dev/null @@ -1,453 +0,0 @@ -use super::commands::{ - BreakPointId, ParsedGroupName, PrintTuple, WatchPosition, -}; -use super::{cidr::SPACING, commands::GroupName}; - -use calyx_ir::Id; -use owo_colors::OwoColorize; -use std::collections::HashMap; -use std::collections::HashSet; -use std::fmt::Display; -use std::rc::Rc; - -pub struct Counter(u64); - -impl Counter { - pub fn next(&mut self) -> u64 { - self.0 += 1; - self.0 - } - pub fn new() -> Self { - Self(0) - } -} - -enum BreakPointStatus { - /// this breakpoint is active - Enabled, - /// this breakpoint is inactive - Disabled, - /// This breakpoint has been deleted, but has yet to be cleaned up - Deleted, -} - -impl BreakPointStatus { - pub fn enabled(&self) -> bool { - matches!(self, BreakPointStatus::Enabled) - } -} -struct BreakPoint { - id: u64, - name: GroupName, // Name of the group (may not strictly be needed) - state: BreakPointStatus, -} - -impl BreakPoint { - pub fn enable(&mut self) { - self.state = BreakPointStatus::Enabled; - } - - pub fn disable(&mut self) { - self.state = BreakPointStatus::Disabled; - } - - pub fn delete(&mut self) { - self.state = BreakPointStatus::Deleted - } - - pub fn is_deleted(&self) -> bool { - matches!(self.state, BreakPointStatus::Deleted) - } -} - -#[derive(Debug)] -struct WatchPoint { - id: u64, - print_details: PrintTuple, -} - -impl Display for WatchPoint { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}. {}", self.id, self.print_details.blue().bold()) - } -} - -impl std::fmt::Debug for BreakPoint { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "{}. {} {}", - &self.id, - &self.name, - match &self.state { - BreakPointStatus::Enabled => "enabled", - BreakPointStatus::Disabled => "disabled", - BreakPointStatus::Deleted => "deleted", - } - ) - } -} - -struct GroupExecutionInfo { - previous: HashSet, - current: HashSet, -} - -impl GroupExecutionInfo { - fn new() -> Self { - Self { - previous: HashSet::new(), - current: HashSet::new(), - } - } - - fn shift_current(&mut self, current: HashSet) { - std::mem::swap(&mut self.previous, &mut self.current); - self.current = current; - } - - fn _in_previous(&self, key: &T) -> bool { - self.previous.contains(key) - } - - fn _in_current(&self, key: &T) -> bool { - self.current.contains(key) - } - - fn groups_new_off(&self) -> impl Iterator { - self.previous.difference(&self.current) - } - - fn groups_new_on(&self) -> impl Iterator { - self.current.difference(&self.previous) - } -} - -enum BreakpointAction { - Enable, - Disable, - Delete, -} - -impl BreakpointAction { - fn take_action(&self, breakpoint: &mut BreakPoint) { - match self { - BreakpointAction::Enable => breakpoint.enable(), - BreakpointAction::Disable => breakpoint.disable(), - BreakpointAction::Delete => breakpoint.delete(), - } - } - - fn take_action_with_feedback(&self, breakpoint: &mut BreakPoint) { - self.take_action(breakpoint); - println!( - "{} '{}'", - match self { - BreakpointAction::Enable => "enabled", - BreakpointAction::Disable => "disabled", - BreakpointAction::Delete => "deleted", - }, - &breakpoint.name - ) - } -} - -pub(super) struct DebuggingContext { - breakpoints: HashMap, - watchpoints_before: HashMap)>, - watchpoints_after: HashMap)>, - count: Counter, - watch_count: Counter, - group_exec_info: GroupExecutionInfo, - // used primarially for checking if a given group exists - comp_ctx: HashMap>, - main_comp_name: Id, -} - -impl DebuggingContext { - pub fn new(ctx: &iir::ComponentCtx, main_component: &Id) -> Self { - Self { - count: Counter::new(), - watch_count: Counter::new(), - breakpoints: HashMap::new(), - watchpoints_before: HashMap::new(), - watchpoints_after: HashMap::new(), - group_exec_info: GroupExecutionInfo::new(), - main_comp_name: *main_component, - - comp_ctx: ctx.iter().map(|x| (x.name, Rc::clone(x))).collect(), - } - } - - pub fn add_breakpoint(&mut self, target: N) - where - N: ConcretizableName, - { - let target = target.concretize(self); - let component_ref = self.comp_ctx.get(&target.component_name); - - if component_ref.is_none() { - println!( - "{} Error: there is no component named {}", - SPACING, - target.component_name.purple().bold() - ); - return; - } - - let component_ref = component_ref.unwrap(); - - let group_exists = { - let exists = component_ref.groups.find(target.group_name).is_some(); - // if there is no non-comb group, check comb groups - if !exists { - component_ref.comb_groups.find(target.group_name).is_some() - } else { - true - } - }; - - if !group_exists { - println!( - "{} Error: the group {} does not exist", - SPACING, - target.purple().bold() - ); - return; - } - - if let std::collections::hash_map::Entry::Vacant(e) = - self.breakpoints.entry(target.clone()) - { - let br = BreakPoint { - id: self.count.next(), - name: target, - state: BreakPointStatus::Enabled, - }; - e.insert(br); - } else { - println!( - "A breakpoint already exists for \"{}\"", - &target.green().bold() - ) - } - } - - pub fn add_watchpoint( - &mut self, - key: N, - position: WatchPosition, - print: P, - ) where - P: Into, - N: ConcretizableName, - { - let key = key.concretize(self); - let watchpoint = WatchPoint { - id: self.watch_count.next(), - print_details: print.into(), - }; - - match position { - WatchPosition::Before => { - self.watchpoints_before - .entry(key) - .or_insert((BreakPointStatus::Enabled, Vec::new())) - .1 - .push(watchpoint); - } - WatchPosition::After => { - self.watchpoints_after - .entry(key) - .or_insert((BreakPointStatus::Enabled, Vec::new())) - .1 - .push(watchpoint); - } - } - } - - fn act_breakpoint( - &mut self, - target: BreakPointId, - action: BreakpointAction, - ) { - match target { - BreakPointId::Name(target) => { - let key = self.concretize_group_name(target); - - if let Some(breakpoint) = self.breakpoints.get_mut(&key) { - action.take_action_with_feedback(breakpoint); - } else { - println!( - "Error: There is no breakpoint named '{}'", - key.red().bold().strikethrough() - ) - }; - } - BreakPointId::Number(target) => { - let mut found = false; - for x in self.breakpoints.values_mut() { - if x.id == target { - action.take_action_with_feedback(x); - found = true; - break; - } - } - if !found { - println!( - "Error: There is no breakpoint numbered {}", - target.red().bold().strikethrough() - ) - }; - } - } - } - - pub fn enable_breakpoint(&mut self, target: BreakPointId) { - self.act_breakpoint(target, BreakpointAction::Enable) - } - pub fn disable_breakpoint(&mut self, target: BreakPointId) { - self.act_breakpoint(target, BreakpointAction::Disable) - } - pub fn remove_breakpoint(&mut self, target: BreakPointId) { - self.act_breakpoint(target, BreakpointAction::Delete); - self.cleanup_deleted_breakpoints() - } - - pub fn remove_watchpoint(&mut self, target: BreakPointId) { - match target { - BreakPointId::Name(name) => self.remove_watchpoint_by_name(name), - BreakPointId::Number(num) => self.remove_watchpoint_by_number(num), - } - } - - fn cleanup_deleted_breakpoints(&mut self) { - self.breakpoints.retain(|_k, x| !x.is_deleted()); - } - - fn remove_watchpoint_by_name(&mut self, target: ParsedGroupName) { - let key = self.concretize_group_name(target); - - self.watchpoints_before.remove(&key); - self.watchpoints_after.remove(&key); - } - - fn remove_watchpoint_by_number(&mut self, target: u64) { - // TODO (Griffin): Make this less inefficient, if it becomes a problem - // probably add a reverse lookup table or something - for watchpoints in self - .watchpoints_before - .values_mut() - .chain(self.watchpoints_after.values_mut()) - { - watchpoints.1.retain(|x| x.id != target); - } - } - - #[inline] - pub fn concretize_group_name(&self, target: ParsedGroupName) -> GroupName { - target.concretize(&self.main_comp_name) - } - - pub fn advance_time(&mut self, current: HashSet) { - self.group_exec_info - .shift_current(current.into_iter().map(|x| x.into()).collect()); - } - - pub fn set_current_time(&mut self, current: HashSet) { - let current: HashSet = - current.into_iter().map(|x| x.into()).collect(); - self.group_exec_info.shift_current(current.clone()); - self.group_exec_info.shift_current(current); - } - - pub fn hit_breakpoints(&self) -> Vec<&GroupName> { - self.group_exec_info - .groups_new_on() - .filter(|x| { - if let Some(brk) = self.breakpoints.get(x) { - return brk.state.enabled(); - } - false - }) - .collect() - } - - pub fn process_watchpoints(&self) -> Vec<&'_ PrintTuple> { - let mut output_vec: Vec<_> = vec![]; - - let before_iter = self.group_exec_info.groups_new_on().filter(|x| { - if let Some((state, _)) = self.watchpoints_before.get(x) { - return state.enabled(); - } - false - }); - - let after_iter = self.group_exec_info.groups_new_off().filter(|x| { - if let Some((state, _)) = self.watchpoints_after.get(x) { - return state.enabled(); - } - false - }); - - for target in before_iter { - if let Some(x) = self.watchpoints_before.get(target) { - for val in x.1.iter() { - output_vec.push(&val.print_details) - } - } - } - - for target in after_iter { - if let Some(x) = self.watchpoints_after.get(target) { - for val in x.1.iter() { - output_vec.push(&val.print_details) - } - } - } - - output_vec - } - - pub fn is_group_running( - &self, - current_executing: HashSet, - target: &GroupName, - ) -> bool { - let current: HashSet = - current_executing.into_iter().map(|x| x.into()).collect(); - - current.contains(target) - } - - pub fn print_breakpoints(&self) { - println!("{}Current breakpoints:", SPACING); - for breakpoint in self.breakpoints.values() { - println!("{}{:?}", SPACING, breakpoint.red().bold()) - } - } - - pub fn print_watchpoints(&self) { - println!("{}Current watchpoints:", SPACING); - let inner_spacing = format!("{} ", SPACING); - let outer_spacing = format!("{} ", SPACING); - - for (group, (_brk, watchpoints)) in self.watchpoints_before.iter() { - println!("{}Before {}:", outer_spacing, group.magenta().bold()); - for watchpoint in watchpoints.iter() { - println!("{}{}", inner_spacing, watchpoint.magenta()); - } - } - - println!(); - - for (group, (_brk, watchpoints)) in self.watchpoints_after.iter() { - if !watchpoints.is_empty() { - println!("{}After {}:", outer_spacing, group.green().bold()); - for watchpoint in watchpoints.iter() { - println!("{}{}", inner_spacing, watchpoint.green()); - } - } - } - } -} diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs new file mode 100644 index 0000000000..d72c420587 --- /dev/null +++ b/interp/src/debugger/debugging_context/context.rs @@ -0,0 +1,390 @@ +use crate::flatten::flat_ir::prelude::GroupIdx; + +use super::super::{ + cidr::SPACING, + commands::{ + BreakPointId, GroupName, ParsedGroupName, PrintTuple, WatchPosition, + }, +}; + +use calyx_ir::Id; +use owo_colors::OwoColorize; +use std::collections::HashMap; +use std::collections::HashSet; +use std::fmt::Display; +use std::rc::Rc; + +#[derive(Debug, Clone)] +pub struct Counter(u64); + +impl Counter { + pub fn next(&mut self) -> u64 { + self.0 += 1; + self.0 + } + pub fn new() -> Self { + Self(0) + } +} + +#[derive(Debug, Clone)] +enum BreakPointStatus { + /// this breakpoint is active + Enabled, + /// this breakpoint is inactive + Disabled, + /// This breakpoint has been deleted, but has yet to be cleaned up + Deleted, +} + +impl BreakPointStatus { + pub fn enabled(&self) -> bool { + matches!(self, BreakPointStatus::Enabled) + } +} + +#[derive(Clone)] +struct BreakPoint { + id: u64, + group: GroupIdx, + state: BreakPointStatus, +} + +impl BreakPoint { + pub fn enable(&mut self) { + self.state = BreakPointStatus::Enabled; + } + + pub fn disable(&mut self) { + self.state = BreakPointStatus::Disabled; + } + + pub fn delete(&mut self) { + self.state = BreakPointStatus::Deleted + } + + pub fn is_deleted(&self) -> bool { + matches!(self.state, BreakPointStatus::Deleted) + } +} + +#[derive(Debug, Clone)] +struct WatchPoint { + id: u64, + print_details: PrintTuple, +} + +impl Display for WatchPoint { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}. {}", self.id, self.print_details.blue().bold()) + } +} + +impl std::fmt::Debug for BreakPoint { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}. {:?} {}", + &self.id, + &self.group, + match &self.state { + BreakPointStatus::Enabled => "enabled", + BreakPointStatus::Disabled => "disabled", + BreakPointStatus::Deleted => "deleted", + } + ) + } +} + +struct GroupExecutionInfo { + previous: HashSet, + current: HashSet, +} + +impl GroupExecutionInfo { + fn new() -> Self { + Self { + previous: HashSet::new(), + current: HashSet::new(), + } + } + + fn shift_current(&mut self, current: HashSet) { + std::mem::swap(&mut self.previous, &mut self.current); + self.current = current; + } + + fn _in_previous(&self, key: &T) -> bool { + self.previous.contains(key) + } + + fn _in_current(&self, key: &T) -> bool { + self.current.contains(key) + } + + fn groups_new_off(&self) -> impl Iterator { + self.previous.difference(&self.current) + } + + fn groups_new_on(&self) -> impl Iterator { + self.current.difference(&self.previous) + } +} + +enum BreakpointAction { + Enable, + Disable, + Delete, +} + +impl BreakpointAction { + fn take_action(&self, breakpoint: &mut BreakPoint) { + match self { + BreakpointAction::Enable => breakpoint.enable(), + BreakpointAction::Disable => breakpoint.disable(), + BreakpointAction::Delete => breakpoint.delete(), + } + } + + fn take_action_with_feedback(&self, breakpoint: &mut BreakPoint) { + self.take_action(breakpoint); + println!( + "{} '{:?}'", + match self { + BreakpointAction::Enable => "enabled", + BreakpointAction::Disable => "disabled", + BreakpointAction::Delete => "deleted", + }, + &breakpoint.group + ) + } +} + +#[derive(Debug, Clone)] +pub(super) struct DebuggingContext { + breakpoints: HashMap, + watchpoints_before: HashMap)>, + watchpoints_after: HashMap)>, + break_count: Counter, + watch_count: Counter, +} + +impl DebuggingContext { + pub fn new() -> Self { + Self { + break_count: Counter::new(), + watch_count: Counter::new(), + breakpoints: HashMap::new(), + watchpoints_before: HashMap::new(), + watchpoints_after: HashMap::new(), + } + } + + pub fn add_breakpoint(&mut self, target: GroupIdx) { + if let std::collections::hash_map::Entry::Vacant(e) = + self.breakpoints.entry(target) + { + let br = BreakPoint { + id: self.break_count.next(), + group: target, + state: BreakPointStatus::Enabled, + }; + e.insert(br); + } else { + println!("A breakpoint already exists",) + } + } + + pub fn add_watchpoint

( + &mut self, + group: GroupIdx, + position: WatchPosition, + print: P, + ) where + P: Into, + { + let map = match position { + WatchPosition::Before => &mut self.watchpoints_before, + WatchPosition::After => &mut self.watchpoints_after, + }; + + map.entry(group) + .or_insert((BreakPointStatus::Enabled, Vec::with_capacity(1))) + .1 + .push(WatchPoint { + id: self.watch_count.next(), + print_details: print.into(), + }); + } + + fn act_breakpoint( + &mut self, + target: BreakPointId, + action: BreakpointAction, + ) { + match target { + BreakPointId::Name(target) => { + if let Some(breakpoint) = self.breakpoints.get_mut(&target) { + action.take_action_with_feedback(breakpoint); + } else { + println!( + "Error: There is no breakpoint named '{:?}'", + target.red().bold().strikethrough() + ) + }; + } + BreakPointId::Number(target) => { + let mut found = false; + for x in self.breakpoints.values_mut() { + if x.id == target { + action.take_action_with_feedback(x); + found = true; + break; + } + } + if !found { + println!( + "Error: There is no breakpoint numbered {}", + target.red().bold().strikethrough() + ) + }; + } + } + } + + pub fn enable_breakpoint(&mut self, target: BreakPointId) { + self.act_breakpoint(target, BreakpointAction::Enable) + } + pub fn disable_breakpoint(&mut self, target: BreakPointId) { + self.act_breakpoint(target, BreakpointAction::Disable) + } + pub fn remove_breakpoint(&mut self, target: BreakPointId) { + self.act_breakpoint(target, BreakpointAction::Delete); + self.cleanup_deleted_breakpoints() + } + + pub fn remove_watchpoint(&mut self, target: BreakPointId) { + match target { + BreakPointId::Name(name) => self.remove_watchpoint_by_name(name), + BreakPointId::Number(num) => self.remove_watchpoint_by_number(num), + } + } + + fn cleanup_deleted_breakpoints(&mut self) { + self.breakpoints.retain(|_k, x| !x.is_deleted()); + } + + fn remove_watchpoint_by_name(&mut self, target: GroupIdx) { + self.watchpoints_before.remove(&target); + self.watchpoints_after.remove(&target); + } + + fn remove_watchpoint_by_number(&mut self, target: u64) { + // TODO (Griffin): Make this less inefficient, if it becomes a problem + // probably add a reverse lookup table or something + for watchpoints in self + .watchpoints_before + .values_mut() + .chain(self.watchpoints_after.values_mut()) + { + watchpoints.1.retain(|x| x.id != target); + } + } + + pub fn hit_breakpoints(&self) -> Vec<&GroupName> { + // self.group_exec_info + // .groups_new_on() + // .filter(|x| { + // if let Some(brk) = self.breakpoints.get(x) { + // return brk.state.enabled(); + // } + // false + // }) + // .collect() + todo!() + } + + pub fn process_watchpoints(&self) -> Vec<&'_ PrintTuple> { + // let mut output_vec: Vec<_> = vec![]; + + // let before_iter = self.group_exec_info.groups_new_on().filter(|x| { + // if let Some((state, _)) = self.watchpoints_before.get(x) { + // return state.enabled(); + // } + // false + // }); + + // let after_iter = self.group_exec_info.groups_new_off().filter(|x| { + // if let Some((state, _)) = self.watchpoints_after.get(x) { + // return state.enabled(); + // } + // false + // }); + + // for target in before_iter { + // if let Some(x) = self.watchpoints_before.get(target) { + // for val in x.1.iter() { + // output_vec.push(&val.print_details) + // } + // } + // } + + // for target in after_iter { + // if let Some(x) = self.watchpoints_after.get(target) { + // for val in x.1.iter() { + // output_vec.push(&val.print_details) + // } + // } + // } + + // output_vec + + todo!() + } + + pub fn is_group_running( + &self, + current_executing: HashSet, + target: &GroupName, + ) -> bool { + // let current: HashSet = + // current_executing.into_iter().map(|x| x.into()).collect(); + + // current.contains(target) + todo!() + } + + pub fn print_breakpoints(&self) { + // println!("{}Current breakpoints:", SPACING); + // for breakpoint in self.breakpoints.values() { + // println!("{}{:?}", SPACING, breakpoint.red().bold()) + // } + + todo!() + } + + pub fn print_watchpoints(&self) { + todo!() + // println!("{}Current watchpoints:", SPACING); + // let inner_spacing = format!("{} ", SPACING); + // let outer_spacing = format!("{} ", SPACING); + + // for (group, (_brk, watchpoints)) in self.watchpoints_before.iter() { + // println!("{}Before {}:", outer_spacing, group.magenta().bold()); + // for watchpoint in watchpoints.iter() { + // println!("{}{}", inner_spacing, watchpoint.magenta()); + // } + // } + + // println!(); + + // for (group, (_brk, watchpoints)) in self.watchpoints_after.iter() { + // if !watchpoints.is_empty() { + // println!("{}After {}:", outer_spacing, group.green().bold()); + // for watchpoint in watchpoints.iter() { + // println!("{}{}", inner_spacing, watchpoint.green()); + // } + // } + // } + } +} diff --git a/interp/src/debugger/debugging_context/mod.rs b/interp/src/debugger/debugging_context/mod.rs new file mode 100644 index 0000000000..9efb2ab19f --- /dev/null +++ b/interp/src/debugger/debugging_context/mod.rs @@ -0,0 +1 @@ +pub mod context; diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index 395aacf8ce..d114e31fc1 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -1,9 +1,8 @@ mod cidr; pub mod commands; -mod context; +mod debugging_context; mod interactive_errors; mod io_utils; -pub(crate) mod name_tree; pub mod source; pub mod structures; diff --git a/interp/src/debugger/name_tree.rs b/interp/src/debugger/name_tree.rs deleted file mode 100644 index 751da232cb..0000000000 --- a/interp/src/debugger/name_tree.rs +++ /dev/null @@ -1,135 +0,0 @@ -use serde::Serialize; - -use crate::structures::names::GroupQualifiedInstanceName; -use owo_colors::OwoColorize; -use std::{collections::HashSet, fmt::Write, iter::once}; - -#[derive(Debug, Clone)] -pub struct ActiveTreeNode { - name: GroupQualifiedInstanceName, - children: Vec, -} -impl ActiveTreeNode { - pub fn new(node: GroupQualifiedInstanceName) -> Self { - Self { - name: node, - children: vec![], - } - } - - pub fn insert(&mut self, node: ActiveTreeNode) { - self.children.push(node); - } - - pub fn format_tree(&self, indent_level: usize) -> String { - let mut out = String::new(); - write!(out, "{}", " ".repeat(indent_level)).unwrap(); - - if TOP { - write!(out, "{}", self.name.prefix.as_id().blue()).unwrap(); - } else if let crate::structures::names::GroupName::None = - &self.name.group - { - write!( - out, - "{}", - self.name.prefix.last().unwrap().instance.green() - ) - .unwrap(); - } else { - write!( - out, - "{}", - self.name.prefix.last().unwrap().component_id.name.blue() - ) - .unwrap(); - } - - match &self.name.group { - crate::structures::names::GroupName::Group(g) => { - write!(out, "::{}", g.blue()).unwrap() - } - crate::structures::names::GroupName::Phantom(p) => { - write!(out, "::<{}>", p.magenta()).unwrap() - } - crate::structures::names::GroupName::None => {} - } - - writeln!(out).unwrap(); - - for child in self.children.iter() { - let child_out = child.format_tree::(indent_level + 2); - write!(out, "{}", child_out.magenta()).unwrap(); - } - - out - } - - pub fn flatten(self) -> ActiveVec { - if self.name.is_leaf() { - once(self.name) - .chain(self.children.into_iter().flat_map(Self::flatten)) - .collect() - } else { - self.children.into_iter().flat_map(Self::flatten).collect() - } - } - - #[inline] - pub fn flat_set(self) -> ActiveSet { - self.flatten().into() - } -} - -#[derive(Debug)] -pub struct ActiveVec(Vec); - -impl From> for ActiveVec { - fn from(v: Vec) -> Self { - Self(v) - } -} - -impl FromIterator for ActiveVec { - fn from_iter>( - iter: T, - ) -> Self { - Self(Vec::from_iter(iter)) - } -} - -impl IntoIterator for ActiveVec { - type Item = GroupQualifiedInstanceName; - - type IntoIter = std::vec::IntoIter; - - fn into_iter(self) -> Self::IntoIter { - self.0.into_iter() - } -} - -#[derive(Debug, Clone, Serialize)] -#[serde(transparent)] -pub struct ActiveSet(HashSet<(u64, String)>); - -impl From for ActiveSet { - fn from(v: ActiveVec) -> Self { - Self( - v.0.into_iter() - .filter_map(|x| { - x.pos_tag.and_then(|tag| (tag, x.format_name()).into()) - }) - .collect(), - ) - } -} - -impl ActiveSet { - pub fn iter(&self) -> impl Iterator { - self.0.iter() - } - - pub fn into_iter(self) -> impl Iterator { - self.0.into_iter() - } -} From 6191bfacb27b0fbef94a844f222d5c501b51f3d6 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Wed, 26 Jun 2024 15:30:50 -0400 Subject: [PATCH 18/76] the trashfire rages on --- .../src/debugger/commands/command_parser.rs | 4 +-- interp/src/debugger/commands/core.rs | 23 ++++++++++------- .../src/debugger/debugging_context/context.rs | 25 +++++++++++-------- .../src/flatten/structures/environment/env.rs | 1 + 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/interp/src/debugger/commands/command_parser.rs b/interp/src/debugger/commands/command_parser.rs index bf38921543..c23e2b7bb0 100644 --- a/interp/src/debugger/commands/command_parser.rs +++ b/interp/src/debugger/commands/command_parser.rs @@ -1,5 +1,5 @@ use super::core::{ - BreakPointId, Command, ParsedGroupName, PrintMode, WatchPosition, + Command, ParsedBreakPointID, ParsedGroupName, PrintMode, WatchPosition, }; use calyx_ir::Id; use pest_consume::{match_nodes, Error, Parser}; @@ -133,7 +133,7 @@ impl CommandParser { .map_err(|_| input.error("Expected non-negative number")) } - fn brk_id(input: Node) -> ParseResult { + fn brk_id(input: Node) -> ParseResult { Ok(match_nodes!(input.into_children(); [num(n)] => n.into(), [group(g)] => g.into() diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index 9561ecfcf2..28bdb571af 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -62,23 +62,28 @@ pub struct GroupName { pub group: Id, } -pub enum BreakPointId { - Name(GroupIdx), +pub enum ParsedBreakPointID { + Name(ParsedGroupName), Number(u64), } -impl From for BreakPointId { - fn from(v: GroupIdx) -> Self { +impl From for ParsedBreakPointID { + fn from(v: ParsedGroupName) -> Self { Self::Name(v) } } -impl From for BreakPointId { +impl From for ParsedBreakPointID { fn from(n: u64) -> Self { Self::Number(n) } } +pub enum BreakpointID { + Name(GroupIdx), + Number(u64), +} + #[derive(Clone, Copy, Debug)] pub enum WatchPosition { Before, @@ -156,10 +161,10 @@ pub enum Command { Exit, // Exit the debugger InfoBreak, // List breakpoints InfoWatch, - Disable(Vec), - Enable(Vec), - Delete(Vec), - DeleteWatch(Vec), + Disable(Vec), + Enable(Vec), + Delete(Vec), + DeleteWatch(Vec), StepOver(ParsedGroupName), Watch( ParsedGroupName, diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index d72c420587..b628185393 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -1,9 +1,12 @@ -use crate::flatten::flat_ir::prelude::GroupIdx; +use crate::{ + debugger::commands::BreakpointID, flatten::flat_ir::prelude::GroupIdx, +}; use super::super::{ cidr::SPACING, commands::{ - BreakPointId, GroupName, ParsedGroupName, PrintTuple, WatchPosition, + GroupName, ParsedBreakPointID, ParsedGroupName, PrintTuple, + WatchPosition, }, }; @@ -219,11 +222,11 @@ impl DebuggingContext { fn act_breakpoint( &mut self, - target: BreakPointId, + target: BreakpointID, action: BreakpointAction, ) { match target { - BreakPointId::Name(target) => { + BreakpointID::Name(target) => { if let Some(breakpoint) = self.breakpoints.get_mut(&target) { action.take_action_with_feedback(breakpoint); } else { @@ -233,7 +236,7 @@ impl DebuggingContext { ) }; } - BreakPointId::Number(target) => { + BreakpointID::Number(target) => { let mut found = false; for x in self.breakpoints.values_mut() { if x.id == target { @@ -252,21 +255,21 @@ impl DebuggingContext { } } - pub fn enable_breakpoint(&mut self, target: BreakPointId) { + pub fn enable_breakpoint(&mut self, target: BreakpointID) { self.act_breakpoint(target, BreakpointAction::Enable) } - pub fn disable_breakpoint(&mut self, target: BreakPointId) { + pub fn disable_breakpoint(&mut self, target: BreakpointID) { self.act_breakpoint(target, BreakpointAction::Disable) } - pub fn remove_breakpoint(&mut self, target: BreakPointId) { + pub fn remove_breakpoint(&mut self, target: BreakpointID) { self.act_breakpoint(target, BreakpointAction::Delete); self.cleanup_deleted_breakpoints() } - pub fn remove_watchpoint(&mut self, target: BreakPointId) { + pub fn remove_watchpoint(&mut self, target: BreakpointID) { match target { - BreakPointId::Name(name) => self.remove_watchpoint_by_name(name), - BreakPointId::Number(num) => self.remove_watchpoint_by_number(num), + BreakpointID::Name(name) => self.remove_watchpoint_by_name(name), + BreakpointID::Number(num) => self.remove_watchpoint_by_number(num), } } diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 2cb619d633..8a59e3debd 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -700,6 +700,7 @@ impl<'a> Simulator<'a> { data_file: &Option, ) -> Result { let data_dump = data_file + .as_ref() .map(|path| { let mut file = std::fs::File::open(path)?; DataDump::deserialize(&mut file) From eba0247200deeef9fc5ca7cd7f46761ac34bf133 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Thu, 27 Jun 2024 16:34:21 -0400 Subject: [PATCH 19/76] Do some clever nonsense --- .../src/flatten/structures/environment/env.rs | 189 +++++++++++------- 1 file changed, 114 insertions(+), 75 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 8a59e3debd..7b7e0da1ac 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -159,7 +159,10 @@ pub(crate) enum CellLedger { } impl CellLedger { - fn new_comp(idx: ComponentIdx, env: &Environment) -> Self { + fn new_comp + Clone>( + idx: ComponentIdx, + env: &Environment, + ) -> Self { Self::Component(ComponentLedger { index_bases: BaseIndices::new( env.ports.peek_next_idx(), @@ -215,7 +218,7 @@ impl Debug for CellLedger { } #[derive(Debug)] -pub struct Environment<'a> { +pub struct Environment + Clone> { /// A map from global port IDs to their current values. pub(crate) ports: PortMap, /// A map from global cell IDs to their current state and execution info. @@ -229,13 +232,13 @@ pub struct Environment<'a> { pc: ProgramCounter, /// The immutable context. This is retained for ease of use. - ctx: &'a Context, + ctx: C, } -impl<'a> Environment<'a> { - pub fn new(ctx: &'a Context, data_map: Option) -> Self { - let root = ctx.entry_point; - let aux = &ctx.secondary[root]; +impl + Clone> Environment { + pub fn new(ctx: C, data_map: Option) -> Self { + let root = ctx.as_ref().entry_point; + let aux = &ctx.as_ref().secondary[root]; let mut env = Self { ports: PortMap::with_capacity(aux.port_offset_map.count()), @@ -258,7 +261,9 @@ impl<'a> Environment<'a> { // TODO griffin: Maybe refactor into a separate function for (idx, ledger) in env.cells.iter() { if let CellLedger::Component(comp) = ledger { - if let Some(ctrl) = &env.ctx.primary[comp.comp_id].control { + if let Some(ctrl) = + &env.ctx.as_ref().primary[comp.comp_id].control + { env.pc.vec_mut().push(ControlPoint { comp: idx, control_node_idx: *ctrl, @@ -284,16 +289,21 @@ impl<'a> Environment<'a> { data_map: Option, memories_initialized: &mut HashSet, ) { + // for mutability reasons, see note in `[Environment::new]` + let ctx = self.ctx.clone(); + let ctx_ref = ctx.as_ref(); + let ComponentLedger { index_bases, comp_id, } = self.cells[comp] .as_comp() .expect("Called layout component with a non-component cell."); - let comp_aux = &self.ctx.secondary[*comp_id]; + let comp_aux = &ctx_ref.secondary[*comp_id]; // Insert the component's continuous assignments into the program counter, if non-empty - let cont_assigns = self.ctx.primary[*comp_id].continuous_assignments; + let cont_assigns = + self.ctx.as_ref().primary[*comp_id].continuous_assignments; if !cont_assigns.is_empty() { self.pc.push_continuous_assigns(comp, cont_assigns); } @@ -312,10 +322,13 @@ impl<'a> Environment<'a> { let done = self.ports.push(PortValue::new_undef()); // quick sanity check asserts - let go_actual = index_bases + self.ctx.primary[group_idx].go; - let done_actual = index_bases + self.ctx.primary[group_idx].done; + let go_actual = + index_bases + self.ctx.as_ref().primary[group_idx].go; + let done_actual = + index_bases + self.ctx.as_ref().primary[group_idx].done; // Case 1 - Go defined before done - if self.ctx.primary[group_idx].go < self.ctx.primary[group_idx].done + if self.ctx.as_ref().primary[group_idx].go + < self.ctx.as_ref().primary[group_idx].done { debug_assert_eq!(done, done_actual); debug_assert_eq!(go, go_actual); @@ -331,7 +344,7 @@ impl<'a> Environment<'a> { } for (cell_off, def_idx) in comp_aux.cell_offset_map.iter() { - let info = &self.ctx.secondary[*def_idx]; + let info = &self.ctx.as_ref().secondary[*def_idx]; if !info.prototype.is_component() { let port_base = self.ports.peek_next_idx(); for port in info.ports.iter() { @@ -344,7 +357,7 @@ impl<'a> Environment<'a> { let cell_dyn = primitives::build_primitive( info, port_base, - self.ctx, + self.ctx.as_ref(), &data_map, memories_initialized, ); @@ -380,7 +393,7 @@ impl<'a> Environment<'a> { // ref cells and ports are initialized to None for (ref_cell, def_idx) in comp_aux.ref_cell_offset_map.iter() { - let info = &self.ctx.secondary[*def_idx]; + let info = &self.ctx.as_ref().secondary[*def_idx]; for port_idx in info.ports.iter() { let port_actual = self.ref_ports.push(None); debug_assert_eq!( @@ -401,7 +414,7 @@ impl<'a> Environment<'a> { .as_comp() .expect("Called get_comp_go with a non-component cell."); - &ledger.index_bases + self.ctx.primary[ledger.comp_id].go + &ledger.index_bases + self.ctx.as_ref().primary[ledger.comp_id].go } pub fn get_comp_done(&self, comp: GlobalCellIdx) -> GlobalPortIdx { @@ -409,7 +422,7 @@ impl<'a> Environment<'a> { .as_comp() .expect("Called get_comp_done with a non-component cell."); - &ledger.index_bases + self.ctx.primary[ledger.comp_id].done + &ledger.index_bases + self.ctx.as_ref().primary[ledger.comp_id].done } #[inline] @@ -424,7 +437,7 @@ impl<'a> Environment<'a> { } // ===================== Environment print implementations ===================== -impl<'a> Environment<'a> { +impl + Clone> Environment { pub fn _print_env(&self) { let root_idx = GlobalCellIdx::new(0); let mut hierarchy = Vec::new(); @@ -437,7 +450,7 @@ impl<'a> Environment<'a> { hierarchy: &mut Vec, ) { let info = self.cells[target].as_comp().unwrap(); - let comp = &self.ctx.secondary[info.comp_id]; + let comp = &self.ctx.as_ref().secondary[info.comp_id]; hierarchy.push(target); // This funky iterator chain first pulls the first element (the @@ -451,33 +464,37 @@ impl<'a> Environment<'a> { .iter() .map(|x| { let info = self.cells[**x].as_comp().unwrap(); - let prior_comp = &self.ctx.secondary[info.comp_id]; - &self.ctx.secondary[prior_comp.name] + let prior_comp = &self.ctx.as_ref().secondary[info.comp_id]; + &self.ctx.as_ref().secondary[prior_comp.name] }) .chain(hierarchy.iter().zip(hierarchy.iter().skip(1)).map( |(l, r)| { let info = self.cells[*l].as_comp().unwrap(); - let prior_comp = &self.ctx.secondary[info.comp_id]; + let prior_comp = &self.ctx.as_ref().secondary[info.comp_id]; let local_target = r - (&info.index_bases); let def_idx = &prior_comp.cell_offset_map[local_target]; - let id = &self.ctx.secondary[*def_idx]; - &self.ctx.secondary[id.name] + let id = &self.ctx.as_ref().secondary[*def_idx]; + &self.ctx.as_ref().secondary[id.name] }, )) .join("."); for (cell_off, def_idx) in comp.cell_offset_map.iter() { - let definition = &self.ctx.secondary[*def_idx]; + let definition = &self.ctx.as_ref().secondary[*def_idx]; - println!("{}.{}", name_prefix, self.ctx.secondary[definition.name]); + println!( + "{}.{}", + name_prefix, + self.ctx.as_ref().secondary[definition.name] + ); for port in definition.ports.iter() { let definition = - &self.ctx.secondary[comp.port_offset_map[port]]; + &self.ctx.as_ref().secondary[comp.port_offset_map[port]]; println!( " {}: {} ({:?})", - self.ctx.secondary[definition.name], + self.ctx.as_ref().secondary[definition.name], self.ports[&info.index_bases + port], &info.index_bases + port ); @@ -528,9 +545,9 @@ impl<'a> Environment<'a> { let component = self.cells[parent].unwrap_comp(); let local_offset = cell - &component.index_bases; - let def_idx = &self.ctx.secondary[component.comp_id].cell_offset_map - [local_offset]; - let def_info = &self.ctx.secondary[*def_idx]; + let def_idx = &self.ctx.as_ref().secondary[component.comp_id] + .cell_offset_map[local_offset]; + let def_info = &self.ctx.as_ref().secondary[*def_idx]; def_info.name } @@ -547,14 +564,17 @@ impl<'a> Environment<'a> { comp: GlobalCellIdx, ) -> Option { let component = self.cells[comp].unwrap_comp(); - let comp_info = &self.ctx.secondary[component.comp_id]; + let comp_info = &self.ctx.as_ref().secondary[component.comp_id]; match port { PortRef::Local(l) => { for (cell_offset, cell_def_idx) in comp_info.cell_offset_map.iter() { - if self.ctx.secondary[*cell_def_idx].ports.contains(l) { + if self.ctx.as_ref().secondary[*cell_def_idx] + .ports + .contains(l) + { return Some(&component.index_bases + cell_offset); } } @@ -563,7 +583,10 @@ impl<'a> Environment<'a> { for (cell_offset, cell_def_idx) in comp_info.ref_cell_offset_map.iter() { - if self.ctx.secondary[*cell_def_idx].ports.contains(r) { + if self.ctx.as_ref().secondary[*cell_def_idx] + .ports + .contains(r) + { let ref_cell_idx = &component.index_bases + cell_offset; return Some( self.ref_cells[ref_cell_idx] @@ -594,7 +617,7 @@ impl<'a> Environment<'a> { let current_comp_ledger = self.cells[*current].as_comp().unwrap(); let comp_info = - &self.ctx.secondary[current_comp_ledger.comp_id]; + &self.ctx.as_ref().secondary[current_comp_ledger.comp_id]; let possible_relative_offset = target - ¤t_comp_ledger.index_bases; @@ -645,17 +668,18 @@ impl<'a> Environment<'a> { | InterpreterError::UndefinedWriteAddr(s) | InterpreterError::UndefinedReadAddr(s) => { let root_comp = self.cells[self.get_root()].unwrap_comp(); - let root_name = &self.ctx.secondary[root_comp.comp_id].name; + let root_name = + &self.ctx.as_ref().secondary[root_comp.comp_id].name; let parent_path = self.get_parent_path_from_cell(cell).unwrap(); let name = parent_path .iter() .zip(parent_path.iter().skip(1).chain(once(&cell))) .fold( - self.ctx.secondary[*root_name].clone(), + self.ctx.as_ref().secondary[*root_name].clone(), |acc, (a, b)| { let id = self.get_name_from_cell_and_parent(*a, *b); - acc + "." + &self.ctx.secondary[id] + acc + "." + &self.ctx.as_ref().secondary[id] }, ); @@ -671,12 +695,12 @@ impl<'a> Environment<'a> { /// A wrapper struct for the environment that provides the functions used to /// simulate the actual program. This is just to keep the simulation logic under /// a different namespace than the environment to avoid confusion -pub struct Simulator<'a> { - env: Environment<'a>, +pub struct Simulator + Clone> { + env: Environment, } -impl<'a> Simulator<'a> { - pub fn new(env: Environment<'a>) -> Self { +impl + Clone> Simulator { + pub fn new(env: Environment) -> Self { let mut output = Self { env }; output.set_root_go_high(); output @@ -688,15 +712,15 @@ impl<'a> Simulator<'a> { #[inline] pub fn ctx(&self) -> &Context { - self.env.ctx + self.env.ctx.as_ref() } - pub fn _unpack_env(self) -> Environment<'a> { + pub fn _unpack_env(self) -> Environment { self.env } pub fn build_simulator( - ctx: &'a Context, + ctx: C, data_file: &Option, ) -> Result { let data_dump = data_file @@ -714,7 +738,7 @@ impl<'a> Simulator<'a> { } // =========================== simulation functions =========================== -impl<'a> Simulator<'a> { +impl + Clone> Simulator { #[inline] fn lookup_global_port_id(&self, port: GlobalPortRef) -> GlobalPortIdx { match port { @@ -768,7 +792,8 @@ impl<'a> Simulator<'a> { /// Finds the root component of the simulation and sets its go port to high fn set_root_go_high(&mut self) { let ledger = self.get_root_component(); - let go = &ledger.index_bases + self.env.ctx.primary[ledger.comp_id].go; + let go = &ledger.index_bases + + self.env.ctx.as_ref().primary[ledger.comp_id].go; self.env.ports[go] = PortValue::new_implicit(Value::bit_high()); } @@ -842,7 +867,8 @@ impl<'a> Simulator<'a> { } let parent_ledger = self.env.cells[parent_comp].unwrap_comp(); - let parent_info = &self.env.ctx.secondary[parent_ledger.comp_id]; + let parent_info = + &self.env.ctx.as_ref().secondary[parent_ledger.comp_id]; let child_comp = self.get_global_cell_idx(&invoke.cell, parent_comp); // this unwrap should never fail because ref-cells can only exist on @@ -850,7 +876,7 @@ impl<'a> Simulator<'a> { let child_ledger = self.env.cells[child_comp] .as_comp() .expect("malformed invoke?"); - let child_info = &self.env.ctx.secondary[child_ledger.comp_id]; + let child_info = &self.env.ctx.as_ref().secondary[child_ledger.comp_id]; for (offset, cell_ref) in invoke.ref_cells.iter() { // first set the ref cell @@ -861,13 +887,13 @@ impl<'a> Simulator<'a> { Some(global_actual_cell_idx); // then set the ports - let child_ref_cell_info = &self.env.ctx.secondary + let child_ref_cell_info = &self.env.ctx.as_ref().secondary [child_info.ref_cell_offset_map[*offset]]; let cell_info_idx = parent_info.get_cell_info_idx(*cell_ref); match cell_info_idx { Local(l) => { - let info = &self.env.ctx.secondary[l]; + let info = &self.env.ctx.as_ref().secondary[l]; assert_eq!( child_ref_cell_info.ports.size(), info.ports.size() @@ -882,7 +908,7 @@ impl<'a> Simulator<'a> { } } Ref(r) => { - let info = &self.env.ctx.secondary[r]; + let info = &self.env.ctx.as_ref().secondary[r]; assert_eq!( child_ref_cell_info.ports.size(), info.ports.size() @@ -921,7 +947,7 @@ impl<'a> Simulator<'a> { let child_ledger = self.env.cells[child_comp] .as_comp() .expect("malformed invoke?"); - let child_info = &self.env.ctx.secondary[child_ledger.comp_id]; + let child_info = &self.env.ctx.as_ref().secondary[child_ledger.comp_id]; for (offset, _) in invoke.ref_cells.iter() { // first unset the ref cell @@ -929,7 +955,7 @@ impl<'a> Simulator<'a> { self.env.ref_cells[global_ref_cell_idx] = None; // then unset the ports - let child_ref_cell_info = &self.env.ctx.secondary + let child_ref_cell_info = &self.env.ctx.as_ref().secondary [child_info.ref_cell_offset_map[*offset]]; for port in child_ref_cell_info.ports.iter() { @@ -954,6 +980,11 @@ impl<'a> Simulator<'a> { let (mut vecs, mut par_map, mut with_map, mut repeat_map) = self.env.pc.take_fields(); + // for mutability reasons, this should be a cheap clone, either an RC in + // the owned case or a simple reference clone + let ctx = self.env.ctx.clone(); + let ctx_ref = ctx.as_ref(); + // TODO griffin: This has become an unwieldy mess and should really be // refactored into a handful of internal functions vecs.retain_mut(|node| { @@ -985,9 +1016,9 @@ impl<'a> Simulator<'a> { } for node in &leaf_nodes { - match &self.env.ctx.primary[node.control_node_idx] { + match &ctx_ref.primary[node.control_node_idx] { ControlNode::Enable(e) => { - let go_local = self.env.ctx.primary[e.group()].go; + let go_local = ctx_ref.primary[e.group()].go; let index_bases = &self.env.cells[node.comp] .as_comp() .unwrap() @@ -1048,6 +1079,10 @@ impl<'a> Simulator<'a> { let comp_go = self.env.get_comp_go(node.comp); let comp_done = self.env.get_comp_done(node.comp); + // mutability trick + let ctx_clone = self.env.ctx.clone(); + let ctx = ctx_clone.as_ref(); + // if the done is not high & defined, we need to set it to low if !self.env.ports[comp_done].as_bool().unwrap_or_default() { set_done_low.insert(comp_done); @@ -1062,14 +1097,14 @@ impl<'a> Simulator<'a> { } // just considering a single node case for the moment - let retain_bool = match &self.env.ctx.primary[node.control_node_idx] { + let retain_bool = match &ctx.primary[node.control_node_idx] { ControlNode::Seq(seq) => { if !seq.is_empty() { let next = seq.stms()[0]; *node = node.new_retain_comp(next); true } else { - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } } ControlNode::Par(par) => { @@ -1078,7 +1113,7 @@ impl<'a> Simulator<'a> { *count -= 1; if *count == 0 { par_map.remove(node); - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } else { false } @@ -1102,7 +1137,7 @@ impl<'a> Simulator<'a> { *count -= 1; if *count == 0 { repeat_map.remove(node); - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } else { *node = node.new_retain_comp(rep.body); true @@ -1115,9 +1150,11 @@ impl<'a> Simulator<'a> { } // ===== leaf nodes ===== - ControlNode::Empty(_) => node.mutate_into_next(self.env.ctx), + ControlNode::Empty(_) => { + node.mutate_into_next(self.env.ctx.as_ref()) + } ControlNode::Enable(e) => { - let done_local = self.env.ctx.primary[e.group()].done; + let done_local = self.env.ctx.as_ref().primary[e.group()].done; let done_idx = &self.env.cells[node.comp].as_comp().unwrap().index_bases + done_local; @@ -1131,7 +1168,7 @@ impl<'a> Simulator<'a> { // relies on the fact that the group done port will // still be high since convergence hasn't propagated the // low done signal yet. - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } } ControlNode::Invoke(i) => { @@ -1151,14 +1188,14 @@ impl<'a> Simulator<'a> { with_map.remove(node); } - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } } }; - if !retain_bool && ControlPoint::get_next(node, self.env.ctx).is_none() && + if !retain_bool && ControlPoint::get_next(node, self.env.ctx.as_ref()).is_none() && // either we are not a par node, or we are the last par node - (!matches!(&self.env.ctx.primary[node.control_node_idx], ControlNode::Par(_)) || !par_map.contains_key(node)) + (!matches!(&self.env.ctx.as_ref().primary[node.control_node_idx], ControlNode::Par(_)) || !par_map.contains_key(node)) { let done_port = self.env.get_comp_done(node.comp); set_done_high.push(done_port); @@ -1166,7 +1203,9 @@ impl<'a> Simulator<'a> { set_done_low.remove(&done_port); let comp_ledger = self.env.cells[node.comp].unwrap_comp(); *node = node.new_retain_comp( - self.env.ctx.primary[comp_ledger.comp_id].control.unwrap(), + self.env.ctx.as_ref().primary[comp_ledger.comp_id] + .control + .unwrap(), ); true } else { @@ -1186,7 +1225,7 @@ impl<'a> Simulator<'a> { .or_insert(w.cond_group().unwrap()); let comb_assigns = ScheduledAssignments::new( node.comp, - self.env.ctx.primary[*comb_group].assignments, + self.env.ctx.as_ref().primary[*comb_group].assignments, None, ); @@ -1221,7 +1260,7 @@ impl<'a> Simulator<'a> { with_map.remove(node); } // ascend the tree - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } } @@ -1237,7 +1276,7 @@ impl<'a> Simulator<'a> { let comb_group = i.cond_group().unwrap(); let comb_assigns = ScheduledAssignments::new( node.comp, - self.env.ctx.primary[comb_group].assignments, + self.env.ctx.as_ref().primary[comb_group].assignments, None, ); @@ -1252,7 +1291,7 @@ impl<'a> Simulator<'a> { } if i.cond_group().is_some() && contains_node { with_map.remove(node); - node.mutate_into_next(self.env.ctx) + node.mutate_into_next(self.env.ctx.as_ref()) } else { let target = GlobalPortRef::from_local( i.cond_port(), @@ -1276,7 +1315,7 @@ impl<'a> Simulator<'a> { } } - fn is_done(&self) -> bool { + pub fn is_done(&self) -> bool { self.env.ports[self.env.get_root_done()] .as_bool() .unwrap_or_default() @@ -1386,7 +1425,7 @@ impl<'a> Simulator<'a> { let comp_go = self.env.get_comp_go(*active_cell); for assign_idx in assignments { - let assign = &self.env.ctx.primary[assign_idx]; + let assign = &self.env.ctx.as_ref().primary[assign_idx]; // TODO griffin: Come back to this unwrap default later // since we may want to do something different if the guard @@ -1428,7 +1467,7 @@ impl<'a> Simulator<'a> { has_changed |= changed.as_bool(); } else if self.env.ports[dest].is_def() { - todo!("Raise an error here since this assignment is undefining things: {}. Port currently has value: {}", self.env.ctx.printer().print_assignment(ledger.comp_id, assign_idx), &self.env.ports[dest]) + todo!("Raise an error here since this assignment is undefining things: {}. Port currently has value: {}", self.env.ctx.as_ref().printer().print_assignment(ledger.comp_id, assign_idx), &self.env.ports[dest]) } } } From 14e16b5ce7b84008cb81eb2f92953f297fa59bc1 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 28 Jun 2024 14:20:15 -0400 Subject: [PATCH 20/76] watchpoint stuff --- interp/src/debugger/commands/core.rs | 71 ++- .../src/debugger/debugging_context/context.rs | 435 +++++++++++++----- 2 files changed, 384 insertions(+), 122 deletions(-) diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index 28bdb571af..e9c6f3fbfc 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -7,7 +7,29 @@ use std::{ marker::PhantomData, }; -use crate::{flatten::flat_ir::prelude::GroupIdx, serialization::PrintCode}; +use crate::{ + debugger::debugging_context::context, + flatten::{ + flat_ir::prelude::GroupIdx, structures::index_trait::impl_index, + }, + serialization::PrintCode, +}; + +/// Identifier for breakpoints +#[derive(Debug, Eq, Copy, Clone, PartialEq, Hash)] +pub struct BreakpointIdx(u32); + +impl Display for BreakpointIdx { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) + } +} +impl_index!(BreakpointIdx); + +/// Identifier for watchpoints +#[derive(Debug, Eq, Copy, Clone, PartialEq, Hash)] +pub struct WatchpointIdx(u32); +impl_index!(WatchpointIdx); #[derive(Debug)] pub struct ParsedGroupName { @@ -81,7 +103,52 @@ impl From for ParsedBreakPointID { pub enum BreakpointID { Name(GroupIdx), - Number(u64), + Number(BreakpointIdx), +} + +impl BreakpointID { + #[must_use] + pub fn as_number(&self) -> Option<&BreakpointIdx> { + if let Self::Number(v) = self { + Some(v) + } else { + None + } + } + + #[must_use] + pub fn as_name(&self) -> Option<&GroupIdx> { + if let Self::Name(v) = self { + Some(v) + } else { + None + } + } +} + +pub enum WatchID { + Name(GroupIdx), + Number(WatchpointIdx), +} + +impl WatchID { + #[must_use] + pub fn as_name(&self) -> Option<&GroupIdx> { + if let Self::Name(v) = self { + Some(v) + } else { + None + } + } + + #[must_use] + pub fn as_number(&self) -> Option<&WatchpointIdx> { + if let Self::Number(v) = self { + Some(v) + } else { + None + } + } } #[derive(Clone, Copy, Debug)] diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index b628185393..c34ca89ee6 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -1,5 +1,9 @@ use crate::{ - debugger::commands::BreakpointID, flatten::flat_ir::prelude::GroupIdx, + debugger::commands::{BreakpointID, BreakpointIdx, WatchID, WatchpointIdx}, + flatten::{ + flat_ir::prelude::GroupIdx, + structures::{index_trait::impl_index, indexed_map::IndexedMap}, + }, }; use super::super::{ @@ -10,34 +14,20 @@ use super::super::{ }, }; +use ahash::{HashMap, HashMapExt, HashSet, HashSetExt}; use calyx_ir::Id; use owo_colors::OwoColorize; -use std::collections::HashMap; -use std::collections::HashSet; +use smallvec::{smallvec, SmallVec}; + use std::fmt::Display; use std::rc::Rc; -#[derive(Debug, Clone)] -pub struct Counter(u64); - -impl Counter { - pub fn next(&mut self) -> u64 { - self.0 += 1; - self.0 - } - pub fn new() -> Self { - Self(0) - } -} - #[derive(Debug, Clone)] enum BreakPointStatus { /// this breakpoint is active Enabled, /// this breakpoint is inactive Disabled, - /// This breakpoint has been deleted, but has yet to be cleaned up - Deleted, } impl BreakPointStatus { @@ -46,9 +36,8 @@ impl BreakPointStatus { } } -#[derive(Clone)] +#[derive(Clone, Debug)] struct BreakPoint { - id: u64, group: GroupIdx, state: BreakPointStatus, } @@ -62,43 +51,38 @@ impl BreakPoint { self.state = BreakPointStatus::Disabled; } - pub fn delete(&mut self) { - self.state = BreakPointStatus::Deleted - } - - pub fn is_deleted(&self) -> bool { - matches!(self.state, BreakPointStatus::Deleted) + pub fn is_disabled(&self) -> bool { + matches!(self.state, BreakPointStatus::Disabled) } } #[derive(Debug, Clone)] struct WatchPoint { - id: u64, + group: GroupIdx, + state: BreakPointStatus, print_details: PrintTuple, } -impl Display for WatchPoint { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}. {}", self.id, self.print_details.blue().bold()) +impl WatchPoint { + pub fn enable(&mut self) { + self.state = BreakPointStatus::Enabled; } -} -impl std::fmt::Debug for BreakPoint { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "{}. {:?} {}", - &self.id, - &self.group, - match &self.state { - BreakPointStatus::Enabled => "enabled", - BreakPointStatus::Disabled => "disabled", - BreakPointStatus::Deleted => "deleted", - } - ) + pub fn disable(&mut self) { + self.state = BreakPointStatus::Disabled; + } + + pub fn is_disabled(&self) -> bool { + matches!(self.state, BreakPointStatus::Disabled) } } +// impl Display for WatchPoint { +// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +// write!(f, "{}. {}", self.id, self.print_details.blue().bold()) +// } +// } + struct GroupExecutionInfo { previous: HashSet, current: HashSet, @@ -137,7 +121,6 @@ impl GroupExecutionInfo { enum BreakpointAction { Enable, Disable, - Delete, } impl BreakpointAction { @@ -145,7 +128,6 @@ impl BreakpointAction { match self { BreakpointAction::Enable => breakpoint.enable(), BreakpointAction::Disable => breakpoint.disable(), - BreakpointAction::Delete => breakpoint.delete(), } } @@ -156,45 +138,273 @@ impl BreakpointAction { match self { BreakpointAction::Enable => "enabled", BreakpointAction::Disable => "disabled", - BreakpointAction::Delete => "deleted", }, &breakpoint.group ) } } -#[derive(Debug, Clone)] -pub(super) struct DebuggingContext { - breakpoints: HashMap, - watchpoints_before: HashMap)>, - watchpoints_after: HashMap)>, - break_count: Counter, - watch_count: Counter, +#[derive(Debug)] +struct BreakpointMap { + group_idx_map: HashMap, + breakpoints: HashMap, + breakpoint_counter: IndexedMap, } -impl DebuggingContext { - pub fn new() -> Self { +impl BreakpointMap { + fn new() -> Self { Self { - break_count: Counter::new(), - watch_count: Counter::new(), + group_idx_map: HashMap::new(), breakpoints: HashMap::new(), + breakpoint_counter: IndexedMap::new(), + } + } + + fn insert(&mut self, breakpoint: BreakPoint) { + let idx = self.breakpoint_counter.next_key(); + self.group_idx_map.insert(breakpoint.group, idx); + self.breakpoints.insert(idx, breakpoint); + } + + fn get_by_idx(&self, idx: BreakpointIdx) -> Option<&BreakPoint> { + self.breakpoints.get(&idx) + } + + fn get_by_group(&self, group: GroupIdx) -> Option<&BreakPoint> { + self.group_idx_map + .get(&group) + .and_then(|idx| self.get_by_idx(*idx)) + } + + fn get_by_group_mut(&mut self, group: GroupIdx) -> Option<&mut BreakPoint> { + self.group_idx_map + .get(&group) + .and_then(|idx| self.breakpoints.get_mut(idx)) + } + + fn get_by_idx_mut( + &mut self, + idx: BreakpointIdx, + ) -> Option<&mut BreakPoint> { + self.breakpoints.get_mut(&idx) + } + + fn breakpoint_exists(&self, group: GroupIdx) -> bool { + self.group_idx_map.contains_key(&group) + } + + fn delete_by_idx(&mut self, idx: BreakpointIdx) { + let br = self.breakpoints.remove(&idx); + if let Some(br) = br { + self.group_idx_map.remove(&br.group); + } + } + + fn delete_by_group(&mut self, group: GroupIdx) { + if let Some(idx) = self.group_idx_map.remove(&group) { + self.breakpoints.remove(&idx); + } + } +} + +#[derive(Debug)] +enum WatchPointIndices { + Before(SmallVec<[WatchpointIdx; 8]>), + After(SmallVec<[WatchpointIdx; 8]>), + Both { + before: SmallVec<[WatchpointIdx; 4]>, + after: SmallVec<[WatchpointIdx; 4]>, + }, +} + +impl WatchPointIndices { + fn insert_before(&mut self, idx: WatchpointIdx) { + match self { + Self::Before(b) => b.push(idx), + Self::Both { before: b, .. } => b.push(idx), + Self::After(aft) => { + *self = Self::Both { + before: smallvec![idx], + after: SmallVec::from_iter(aft.drain(..)), + } + } + } + } + + fn insert_after(&mut self, idx: WatchpointIdx) { + match self { + Self::Before(bef) => { + *self = Self::Both { + before: SmallVec::from_iter(bef.drain(..)), + after: smallvec![idx], + } + } + Self::After(a) => a.push(idx), + Self::Both { after: a, .. } => a.push(idx), + } + } + + fn get_before(&self) -> Option<&[WatchpointIdx]> { + match self { + Self::Before(idx) => Some(&idx), + Self::Both { after, .. } => Some(&after), + Self::After(_) => None, + } + } + + fn get_after(&self) -> Option<&[WatchpointIdx]> { + match self { + Self::Before(_) => None, + Self::After(idx) => Some(&idx), + Self::Both { before, .. } => Some(&before), + } + } +} + +#[derive(Debug)] +struct WatchpointMap { + group_idx_map: HashMap, + watchpoints_before: HashMap, + watchpoints_after: HashMap, + watchpoint_counter: IndexedMap, +} + +impl WatchpointMap { + fn new() -> Self { + Self { + group_idx_map: HashMap::new(), watchpoints_before: HashMap::new(), watchpoints_after: HashMap::new(), + watchpoint_counter: IndexedMap::new(), + } + } + + fn insert(&mut self, watchpoint: WatchPoint, position: WatchPosition) { + let idx = self.watchpoint_counter.next_key(); + if let Some(current) = self.group_idx_map.get_mut(&watchpoint.group) { + match position { + WatchPosition::Before => current.insert_before(idx), + WatchPosition::After => current.insert_after(idx), + } + } else { + self.group_idx_map.insert( + watchpoint.group, + match position { + WatchPosition::Before => { + WatchPointIndices::Before(smallvec![idx]) + } + WatchPosition::After => { + WatchPointIndices::After(smallvec![idx]) + } + }, + ); + } + + match position { + WatchPosition::Before => { + self.watchpoints_before.insert(idx, watchpoint) + } + WatchPosition::After => { + self.watchpoints_after.insert(idx, watchpoint) + } + }; + } + + fn get_by_idx(&self, idx: WatchpointIdx) -> Option<&WatchPoint> { + self.watchpoints_before + .get(&idx) + .or_else(|| self.watchpoints_after.get(&idx)) + } + + fn get_by_group(&self, group: GroupIdx) -> Option<&WatchPointIndices> { + self.group_idx_map.get(&group) + } + + fn get_by_idx_mut( + &mut self, + idx: WatchpointIdx, + ) -> Option<&mut WatchPoint> { + self.watchpoints_before + .get_mut(&idx) + .or_else(|| self.watchpoints_after.get_mut(&idx)) + } + + fn delete_by_idx(&mut self, idx: WatchpointIdx) { + let point = self + .watchpoints_before + .remove(&idx) + .or_else(|| self.watchpoints_after.remove(&idx)); + + if let Some(point) = point { + self.group_idx_map + .get_mut(&point.group) + .map(|idxs| match idxs { + WatchPointIndices::Before(b) => b.retain(|i| *i != idx), + WatchPointIndices::After(a) => a.retain(|i| *i != idx), + WatchPointIndices::Both { before, after } => { + before.retain(|i| *i != idx); + after.retain(|i| *i != idx); + } + }); + } + } + + fn delete_by_group(&mut self, group: GroupIdx) { + if let Some(idx) = self.group_idx_map.remove(&group) { + match idx { + WatchPointIndices::Before(before) => { + for point in before { + self.watchpoints_before.remove(&point); + } + } + WatchPointIndices::After(after) => { + for point in after { + self.watchpoints_after.remove(&point); + } + } + WatchPointIndices::Both { before, after } => { + for point in before { + self.watchpoints_before.remove(&point); + } + for point in after { + self.watchpoints_after.remove(&point); + } + } + } + } + } +} + +#[derive(Debug)] +pub(crate) struct DebuggingContext { + breakpoints: BreakpointMap, + watchpoints: WatchpointMap, +} + +impl DebuggingContext { + pub fn new() -> Self { + Self { + breakpoints: BreakpointMap::new(), + watchpoints: WatchpointMap::new(), } } pub fn add_breakpoint(&mut self, target: GroupIdx) { - if let std::collections::hash_map::Entry::Vacant(e) = - self.breakpoints.entry(target) - { + if !self.breakpoints.breakpoint_exists(target) { let br = BreakPoint { - id: self.break_count.next(), group: target, state: BreakPointStatus::Enabled, }; - e.insert(br); + self.breakpoints.insert(br) } else { - println!("A breakpoint already exists",) + print!("A breakpoint already exists for this group",); + let br = self.breakpoints.get_by_group_mut(target).unwrap(); + if br.is_disabled() { + br.enable(); + println!(" but it was disabled. It has been re-enabled."); + } else { + println!("."); + } } } @@ -206,18 +416,13 @@ impl DebuggingContext { ) where P: Into, { - let map = match position { - WatchPosition::Before => &mut self.watchpoints_before, - WatchPosition::After => &mut self.watchpoints_after, + let watchpoint = WatchPoint { + group, + state: BreakPointStatus::Enabled, + print_details: print.into(), }; - - map.entry(group) - .or_insert((BreakPointStatus::Enabled, Vec::with_capacity(1))) - .1 - .push(WatchPoint { - id: self.watch_count.next(), - print_details: print.into(), - }); + // TODO griffin: Check if watchpoint already exists and avoid adding duplicates + self.watchpoints.insert(watchpoint, position); } fn act_breakpoint( @@ -225,33 +430,34 @@ impl DebuggingContext { target: BreakpointID, action: BreakpointAction, ) { - match target { - BreakpointID::Name(target) => { - if let Some(breakpoint) = self.breakpoints.get_mut(&target) { - action.take_action_with_feedback(breakpoint); - } else { - println!( - "Error: There is no breakpoint named '{:?}'", - target.red().bold().strikethrough() - ) - }; + let target_opt = match target { + BreakpointID::Name(group) => { + self.breakpoints.get_by_group_mut(group) } - BreakpointID::Number(target) => { - let mut found = false; - for x in self.breakpoints.values_mut() { - if x.id == target { - action.take_action_with_feedback(x); - found = true; - break; - } + BreakpointID::Number(idx) => self.breakpoints.get_by_idx_mut(idx), + }; + + if let Some(breakpoint) = target_opt { + match action { + BreakpointAction::Enable => { + breakpoint.enable(); + } + BreakpointAction::Disable => { + breakpoint.disable(); } - if !found { - println!( - "Error: There is no breakpoint numbered {}", - target.red().bold().strikethrough() - ) - }; } + } else if matches!(target, BreakpointID::Name(_)) { + let name = target.as_name().unwrap(); + println!( + "Error: There is no breakpoint named '{:?}'", + name.red().bold().strikethrough() + ) + } else { + let num = target.as_number().unwrap(); + println!( + "Error: There is no breakpoint numbered {}", + num.red().bold().strikethrough() + ) } } @@ -262,36 +468,25 @@ impl DebuggingContext { self.act_breakpoint(target, BreakpointAction::Disable) } pub fn remove_breakpoint(&mut self, target: BreakpointID) { - self.act_breakpoint(target, BreakpointAction::Delete); - self.cleanup_deleted_breakpoints() - } - - pub fn remove_watchpoint(&mut self, target: BreakpointID) { match target { - BreakpointID::Name(name) => self.remove_watchpoint_by_name(name), - BreakpointID::Number(num) => self.remove_watchpoint_by_number(num), + BreakpointID::Name(name) => self.breakpoints.delete_by_group(name), + BreakpointID::Number(num) => self.breakpoints.delete_by_idx(num), } } - fn cleanup_deleted_breakpoints(&mut self) { - self.breakpoints.retain(|_k, x| !x.is_deleted()); + pub fn remove_watchpoint(&mut self, target: WatchID) { + match target { + WatchID::Name(name) => self.remove_watchpoint_by_name(name), + WatchID::Number(num) => self.remove_watchpoint_by_number(num), + } } fn remove_watchpoint_by_name(&mut self, target: GroupIdx) { - self.watchpoints_before.remove(&target); - self.watchpoints_after.remove(&target); + self.watchpoints.delete_by_group(target); } - fn remove_watchpoint_by_number(&mut self, target: u64) { - // TODO (Griffin): Make this less inefficient, if it becomes a problem - // probably add a reverse lookup table or something - for watchpoints in self - .watchpoints_before - .values_mut() - .chain(self.watchpoints_after.values_mut()) - { - watchpoints.1.retain(|x| x.id != target); - } + fn remove_watchpoint_by_number(&mut self, target: WatchpointIdx) { + self.watchpoints.delete_by_idx(target) } pub fn hit_breakpoints(&self) -> Vec<&GroupName> { From d5d5883b426fee603592a43c09ffe28d10edfdfe Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 28 Jun 2024 14:38:00 -0400 Subject: [PATCH 21/76] more watchpoint stuff --- interp/src/debugger/commands/core.rs | 6 + .../src/debugger/debugging_context/context.rs | 128 ++++++++++++++---- 2 files changed, 106 insertions(+), 28 deletions(-) diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index e9c6f3fbfc..7dd8258189 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -29,7 +29,13 @@ impl_index!(BreakpointIdx); /// Identifier for watchpoints #[derive(Debug, Eq, Copy, Clone, PartialEq, Hash)] pub struct WatchpointIdx(u32); + impl_index!(WatchpointIdx); +impl Display for WatchpointIdx { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) + } +} #[derive(Debug)] pub struct ParsedGroupName { diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index c34ca89ee6..87585338d5 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -23,57 +23,57 @@ use std::fmt::Display; use std::rc::Rc; #[derive(Debug, Clone)] -enum BreakPointStatus { +enum PointStatus { /// this breakpoint is active Enabled, /// this breakpoint is inactive Disabled, } -impl BreakPointStatus { +impl PointStatus { pub fn enabled(&self) -> bool { - matches!(self, BreakPointStatus::Enabled) + matches!(self, PointStatus::Enabled) } } #[derive(Clone, Debug)] struct BreakPoint { group: GroupIdx, - state: BreakPointStatus, + state: PointStatus, } impl BreakPoint { pub fn enable(&mut self) { - self.state = BreakPointStatus::Enabled; + self.state = PointStatus::Enabled; } pub fn disable(&mut self) { - self.state = BreakPointStatus::Disabled; + self.state = PointStatus::Disabled; } pub fn is_disabled(&self) -> bool { - matches!(self.state, BreakPointStatus::Disabled) + matches!(self.state, PointStatus::Disabled) } } #[derive(Debug, Clone)] struct WatchPoint { group: GroupIdx, - state: BreakPointStatus, + state: PointStatus, print_details: PrintTuple, } impl WatchPoint { pub fn enable(&mut self) { - self.state = BreakPointStatus::Enabled; + self.state = PointStatus::Enabled; } pub fn disable(&mut self) { - self.state = BreakPointStatus::Disabled; + self.state = PointStatus::Disabled; } pub fn is_disabled(&self) -> bool { - matches!(self.state, BreakPointStatus::Disabled) + matches!(self.state, PointStatus::Disabled) } } @@ -118,16 +118,17 @@ impl GroupExecutionInfo { } } -enum BreakpointAction { +#[derive(Debug, Clone, Copy)] +enum PointAction { Enable, Disable, } -impl BreakpointAction { +impl PointAction { fn take_action(&self, breakpoint: &mut BreakPoint) { match self { - BreakpointAction::Enable => breakpoint.enable(), - BreakpointAction::Disable => breakpoint.disable(), + PointAction::Enable => breakpoint.enable(), + PointAction::Disable => breakpoint.disable(), } } @@ -136,8 +137,8 @@ impl BreakpointAction { println!( "{} '{:?}'", match self { - BreakpointAction::Enable => "enabled", - BreakpointAction::Disable => "disabled", + PointAction::Enable => "enabled", + PointAction::Disable => "disabled", }, &breakpoint.group ) @@ -259,6 +260,16 @@ impl WatchPointIndices { Self::Both { before, .. } => Some(&before), } } + + fn iter(&self) -> Box + '_> { + match self { + Self::Before(idx) => Box::new(idx.iter()), + Self::After(idx) => Box::new(idx.iter()), + Self::Both { before, after } => { + Box::new(before.iter().chain(after.iter())) + } + } + } } #[derive(Debug)] @@ -320,6 +331,13 @@ impl WatchpointMap { self.group_idx_map.get(&group) } + fn get_by_group_mut( + &mut self, + group: GroupIdx, + ) -> Option<&mut WatchPointIndices> { + self.group_idx_map.get_mut(&group) + } + fn get_by_idx_mut( &mut self, idx: WatchpointIdx, @@ -393,7 +411,7 @@ impl DebuggingContext { if !self.breakpoints.breakpoint_exists(target) { let br = BreakPoint { group: target, - state: BreakPointStatus::Enabled, + state: PointStatus::Enabled, }; self.breakpoints.insert(br) } else { @@ -418,18 +436,14 @@ impl DebuggingContext { { let watchpoint = WatchPoint { group, - state: BreakPointStatus::Enabled, + state: PointStatus::Enabled, print_details: print.into(), }; // TODO griffin: Check if watchpoint already exists and avoid adding duplicates self.watchpoints.insert(watchpoint, position); } - fn act_breakpoint( - &mut self, - target: BreakpointID, - action: BreakpointAction, - ) { + fn act_breakpoint(&mut self, target: BreakpointID, action: PointAction) { let target_opt = match target { BreakpointID::Name(group) => { self.breakpoints.get_by_group_mut(group) @@ -439,10 +453,10 @@ impl DebuggingContext { if let Some(breakpoint) = target_opt { match action { - BreakpointAction::Enable => { + PointAction::Enable => { breakpoint.enable(); } - BreakpointAction::Disable => { + PointAction::Disable => { breakpoint.disable(); } } @@ -462,10 +476,10 @@ impl DebuggingContext { } pub fn enable_breakpoint(&mut self, target: BreakpointID) { - self.act_breakpoint(target, BreakpointAction::Enable) + self.act_breakpoint(target, PointAction::Enable) } pub fn disable_breakpoint(&mut self, target: BreakpointID) { - self.act_breakpoint(target, BreakpointAction::Disable) + self.act_breakpoint(target, PointAction::Disable) } pub fn remove_breakpoint(&mut self, target: BreakpointID) { match target { @@ -489,6 +503,64 @@ impl DebuggingContext { self.watchpoints.delete_by_idx(target) } + fn act_watchpoint(&mut self, target: WatchID, action: PointAction) { + fn act(target: &mut WatchPoint, action: PointAction) { + match action { + PointAction::Enable => { + target.enable(); + } + PointAction::Disable => { + target.disable(); + } + } + } + + match target { + WatchID::Name(name) => { + if let Some(points) = self.watchpoints.get_by_group_mut(name) { + // mutability trickery + let points_actual = std::mem::replace( + points, + WatchPointIndices::Before(SmallVec::new()), + ); + + for point_idx in points_actual.iter() { + if let Some(point) = + self.watchpoints.get_by_idx_mut(*point_idx) + { + act(point, action); + } + } + + *self.watchpoints.get_by_group_mut(name).unwrap() = + points_actual; + } else { + println!( + "Error: There are no watchpoints for specified group", + ) + } + } + WatchID::Number(num) => { + if let Some(point) = self.watchpoints.get_by_idx_mut(num) { + act(point, action); + } else { + println!( + "Error: There is no watchpoint numbered {}", + num.red().bold().strikethrough() + ) + } + } + } + } + + pub fn enable_watchpoint(&mut self, target: WatchID) { + self.act_watchpoint(target, PointAction::Enable) + } + + pub fn disable_watchpoint(&mut self, target: WatchID) { + self.act_watchpoint(target, PointAction::Disable) + } + pub fn hit_breakpoints(&self) -> Vec<&GroupName> { // self.group_exec_info // .groups_new_on() From ae59c56ff9c94e85575856f1ed5b8e3de05fe484 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 1 Jul 2024 16:25:59 -0400 Subject: [PATCH 22/76] it compiles again --- cider-dap/src/adapter.rs | 6 +- interp/src/debugger/cidr.rs | 534 +++++++++--------- .../src/debugger/commands/command_parser.rs | 4 +- interp/src/debugger/commands/commands.pest | 86 +-- interp/src/debugger/commands/core.rs | 73 ++- .../src/debugger/debugging_context/context.rs | 79 ++- interp/src/debugger/macros.rs | 14 + interp/src/debugger/mod.rs | 4 + interp/src/flatten/primitives/builder.rs | 6 +- interp/src/flatten/structures/context.rs | 50 +- .../src/flatten/structures/environment/env.rs | 72 ++- interp/src/main.rs | 55 +- tools/cider-data-converter/src/converter.rs | 2 +- tools/cider-data-converter/src/json_data.rs | 2 +- tools/cider-data-converter/src/main.rs | 5 +- 15 files changed, 537 insertions(+), 455 deletions(-) create mode 100644 interp/src/debugger/macros.rs diff --git a/cider-dap/src/adapter.rs b/cider-dap/src/adapter.rs index 1ece2c6411..ed85191985 100644 --- a/cider-dap/src/adapter.rs +++ b/cider-dap/src/adapter.rs @@ -1,12 +1,12 @@ use crate::error::AdapterResult; use dap::types::{Breakpoint, Source, SourceBreakpoint, StackFrame, Thread}; use interp::debugger::source::structures::NewSourceMap; -use interp::debugger::Debugger; +use interp::debugger::OwnedDebugger; use std::path::PathBuf; pub struct MyAdapter { #[allow(dead_code)] - debugger: Debugger, + debugger: OwnedDebugger, break_count: Counter, thread_count: Counter, stack_count: Counter, @@ -20,7 +20,7 @@ pub struct MyAdapter { impl MyAdapter { pub fn new(path: &str, std_path: PathBuf) -> AdapterResult { let (debugger, metadata) = - Debugger::from_file(&PathBuf::from(path), &std_path).unwrap(); + OwnedDebugger::from_file(&PathBuf::from(path), &std_path).unwrap(); Ok(MyAdapter { debugger, break_count: Counter::new(), diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/cidr.rs index f305665494..e73b3e9927 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/cidr.rs @@ -1,24 +1,27 @@ use super::{ commands::{Command, PrintMode}, - context::DebuggingContext, + debugging_context::context::DebuggingContext, interactive_errors::DebuggerError, io_utils::Input, source::structures::NewSourceMap, }; use crate::{ - debugger::source::SourceMap, + debugger::{source::SourceMap, unwrap_error_message}, errors::{InterpreterError, InterpreterResult}, - flatten::structures::{context::Context, environment::Simulator}, - serialization::{PrintCode, Serializable}, + flatten::{ + flat_ir::prelude::GroupIdx, + structures::{context::Context, environment::Simulator}, + }, + serialization::PrintCode, }; use std::collections::HashSet; -use calyx_ir::{Id, RRC}; +use calyx_ir::Id; use owo_colors::OwoColorize; use std::path::Path; -use std::{cell::Ref, collections::HashMap, rc::Rc}; +use std::rc::Rc; /// Constant amount of space used for debugger messages pub(super) const SPACING: &str = " "; @@ -52,15 +55,17 @@ impl ProgramStatus { /// The interactive Calyx debugger. The debugger itself is run with the /// [Debugger::main_loop] function while this struct holds auxilliary /// information used to coordinate the debugging process. -pub struct Debugger<'a> { - simulator: Simulator<'a>, +pub struct Debugger + Clone> { + interpreter: Simulator, // this is technically redundant but is here for mutability reasons - program_context: &'a Context, + program_context: C, debugging_context: DebuggingContext, source_map: Option, } -impl<'a> Debugger<'a> { +pub type OwnedDebugger = Debugger>; + +impl OwnedDebugger { /// construct a debugger instance from the target calyx file pub fn from_file( file: &Path, @@ -78,17 +83,19 @@ impl<'a> Debugger<'a> { // )) todo!(); } +} +impl + Clone> Debugger { pub fn new( - program_context: &'a Context, + program_context: C, source_map: Option, data_file: Option, ) -> InterpreterResult { - let simulator = - Simulator::build_simulator(&program_context, &data_file)?; + let interpreter = + Simulator::build_simulator(program_context.clone(), &data_file)?; Ok(Self { - simulator, + interpreter, program_context, debugging_context: todo!(), source_map, @@ -100,17 +107,14 @@ impl<'a> Debugger<'a> { } // Go to next step - pub fn step(&mut self, n: u64) -> InterpreterResult { + pub fn step(&mut self, n: u32) -> InterpreterResult { self.do_step(n)?; Ok(self.status()) } #[inline] - fn do_step( - &mut self, - n: u64, - ) -> Result<(), crate::errors::BoxedInterpreterError> { + fn do_step(&mut self, n: u32) -> InterpreterResult<()> { for _ in 0..n { self.interpreter.step()?; } @@ -118,47 +122,50 @@ impl<'a> Debugger<'a> { Ok(()) } - pub fn cont(&mut self) -> InterpreterResult<()> { - self.debugging_ctx - .set_current_time(self.interpreter.currently_executing_group()); + fn do_continue(&mut self) -> InterpreterResult<()> { + self.debugging_context + .set_current_time(self.interpreter.get_currently_running_groups()); - let mut ctx = std::mem::replace( - &mut self.debugging_ctx, - DebuggingContext::new(&self._context, &self.main_component.name), - ); + // let mut ctx = std::mem::replace( + // &mut self.debugging_context, + // DebuggingContext::new(&self._context, &self.main_component.name), + // ); - let mut breakpoints: Vec = vec![]; + let mut breakpoints: Vec = vec![]; while breakpoints.is_empty() && !self.interpreter.is_done() { self.interpreter.step()?; - let current_exec = self.interpreter.currently_executing_group(); - - ctx.advance_time(current_exec); - - for watch in ctx.process_watchpoints() { - for target in watch.target() { - if let Ok(msg) = Self::do_print( - self.main_component.name, - target, - watch.print_code(), - self.interpreter.get_env(), - watch.print_mode(), - ) { - println!("{}", msg.on_black().yellow().bold()); - } - } + self.debugging_context + .advance_time(self.interpreter.get_currently_running_groups()); + + for watch in self.debugging_context.process_watchpoints() { + // for target in watch.target() { + // if let Ok(msg) = Self::do_print( + // self.main_component.name, + // target, + // watch.print_code(), + // self.interpreter.get_env(), + // watch.print_mode(), + // ) { + // println!("{}", msg.on_black().yellow().bold()); + // } + // } } - breakpoints = ctx.hit_breakpoints().into_iter().cloned().collect(); + breakpoints.extend(self.debugging_context.hit_breakpoints()); } - self.debugging_ctx = ctx; + // self.debugging_context = ctx; if !self.interpreter.is_done() { - for breakpoint in breakpoints { + for group in breakpoints { println!( "Hit breakpoint: {}", - breakpoint.bright_purple().underline() + self.program_context + .as_ref() + .lookup_name(group) + .bright_purple() + .underline() ); } self.interpreter.converge()?; @@ -189,243 +196,96 @@ impl<'a> Debugger<'a> { }; match comm { - Command::Step(n) => { - for _ in 0..n { - self.interpreter.step()?; - } - self.interpreter.converge()?; - } - Command::Continue => { - self.debugging_ctx.set_current_time( - self.interpreter.currently_executing_group(), - ); - - let mut ctx = std::mem::replace( - &mut self.debugging_ctx, - DebuggingContext::new( - &self._context, - &self.main_component.name, - ), - ); - - let mut breakpoints: Vec = vec![]; - - while breakpoints.is_empty() && !self.interpreter.is_done() - { - self.interpreter.step()?; - let current_exec = - self.interpreter.currently_executing_group(); - - ctx.advance_time(current_exec); - - for watch in ctx.process_watchpoints() { - for target in watch.target() { - if let Ok(msg) = Self::do_print( - self.main_component.name, - target, - watch.print_code(), - self.interpreter.get_env(), - watch.print_mode(), - ) { - println!( - "{}", - msg.on_black().yellow().bold() - ); - } - } - } - - breakpoints = ctx - .hit_breakpoints() - .into_iter() - .cloned() - .collect(); - } - - self.debugging_ctx = ctx; - - if !self.interpreter.is_done() { - for breakpoint in breakpoints { - println!( - "Hit breakpoint: {}", - breakpoint.bright_purple().underline() - ); - } - self.interpreter.converge()?; - } + Command::Step(n) => self.do_step(n)?, + Command::StepOver(target) => { + self.do_step_over(target)?; } + Command::Continue => self.do_continue()?, Command::Empty => {} Command::Display => { - let state = self.interpreter.get_env(); - println!("{}", state.state_as_str().green().bold()); + todo!() } Command::Print(print_lists, code, print_mode) => { - for target in print_lists { - match Self::do_print( - self.main_component.name, - &target, - &code, - self.interpreter.get_env(), - &print_mode, - ) { - Ok(msg) => println!("{}", msg.magenta()), - Err(e) => println!("{}", e.bright_red().bold()), - } - } + self.do_print(print_lists, code, print_mode); } Command::Help => { print!("{}", Command::get_help_string().cyan()) } - Command::Break(targets) => { - if targets.is_empty() { - println!("Error: command requires a target"); - continue; - } + Command::Break(targets) => self.create_breakpoints(targets), - for target in targets { - let currently_executing = - self.interpreter.currently_executing_group(); - let target = - self.debugging_ctx.concretize_group_name(target); - - if self - .debugging_ctx - .is_group_running(currently_executing, &target) - { - println!("Warning: the group {} is already running. This breakpoint will not trigger until the next time the group runs.", &target.yellow().italic()) - } + // breakpoints + comm @ (Command::Delete(_) + | Command::Enable(_) + | Command::Disable(_)) => self.manipulate_breakpoint(comm), - self.debugging_ctx.add_breakpoint(target); - } - } Command::Exit => return Err(InterpreterError::Exit.into()), - Command::InfoBreak => self.debugging_ctx.print_breakpoints(), - Command::Delete(targets) => { - if targets.is_empty() { - println!("Error: command requires a target"); - continue; - } - for t in targets { - self.debugging_ctx.remove_breakpoint(t) - } + + Command::InfoBreak => { + self.debugging_context.print_breakpoints() } + Command::DeleteWatch(targets) => { - if targets.is_empty() { - println!("Error: command requires a target"); - continue; - } for target in targets { - self.debugging_ctx.remove_watchpoint(target) - } - } - Command::Disable(targets) => { - if targets.is_empty() { - println!("Error: command requires a target"); - continue; - } - for t in targets { - self.debugging_ctx.disable_breakpoint(t) - } - } - Command::Enable(targets) => { - if targets.is_empty() { - println!("Error: command requires a target"); - continue; - } - for t in targets { - self.debugging_ctx.enable_breakpoint(t) - } - } - Command::StepOver(target) => { - let mut current = - self.interpreter.currently_executing_group(); - let target = - self.debugging_ctx.concretize_group_name(target); - - if !self.debugging_ctx.is_group_running(current, &target) { - println!("Group is not running") - } else { - self.interpreter.step()?; - current = self.interpreter.currently_executing_group(); - while self - .debugging_ctx - .is_group_running(current, &target) - { - self.interpreter.step()?; - current = - self.interpreter.currently_executing_group(); - } + let target = target + .parse_to_watch_ids(self.program_context.as_ref()); + unwrap_error_message!(target); + self.debugging_context.remove_watchpoint(target) } } + Command::Watch( group, watch_pos, print_target, print_code, print_mode, - ) => { - let mut error_occurred = false; - - for target in print_target.iter() { - if let Err(e) = Self::do_print( - self.main_component.name, - target, - &print_code, - self.interpreter.get_env(), - &print_mode, - ) { - error_occurred = true; - println!("{}", e.red().bold()); - } - } - - if error_occurred { - continue; - } - - self.debugging_ctx.add_watchpoint( - group, - watch_pos, - (print_target, print_code, print_mode), - ) + ) => self.create_watchpoint( + print_target, + print_code, + print_mode, + group, + watch_pos, + ), + Command::InfoWatch => { + self.debugging_context.print_watchpoints() } - Command::InfoWatch => self.debugging_ctx.print_watchpoints(), Command::PrintPC(override_flag) => { - if self.source_map.is_some() && !override_flag { - let map = self.source_map.as_ref().unwrap(); - let mut printed = false; - for x in self - .interpreter - .get_active_tree() - .remove(0) - .flat_set() - .into_iter() - { - if let Some(output) = map.lookup(x) { - printed = true; - println!("{}", output); - } - } - - if !printed { - println!("Falling back to Calyx"); - print!( - "{}", - self.interpreter - .get_active_tree() - .remove(0) - .format_tree::(0) - ); - } - } else { - print!( - "{}", - self.interpreter - .get_active_tree() - .remove(0) - .format_tree::(0) - ); - } + // if self.source_map.is_some() && !override_flag { + // let map = self.source_map.as_ref().unwrap(); + // let mut printed = false; + // for x in self + // .interpreter + // .get_active_tree() + // .remove(0) + // .flat_set() + // .into_iter() + // { + // if let Some(output) = map.lookup(x) { + // printed = true; + // println!("{}", output); + // } + // } + + // if !printed { + // println!("Falling back to Calyx"); + // print!( + // "{}", + // self.interpreter + // .get_active_tree() + // .remove(0) + // .format_tree::(0) + // ); + // } + // } else { + // print!( + // "{}", + // self.interpreter + // .get_active_tree() + // .remove(0) + // .format_tree::(0) + // ); + // } + todo!() } Command::Explain => { @@ -434,8 +294,6 @@ impl<'a> Debugger<'a> { } } - let final_env = self.interpreter.deconstruct()?; - println!("Main component has finished executing. Debugger is now in inspection mode."); loop { @@ -456,23 +314,25 @@ impl<'a> Debugger<'a> { match comm { Command::Empty => {} Command::Display => { - let state = final_env.as_state_view(); - println!("{}", state.state_as_str().purple()); + // let state = final_env.as_state_view(); + // println!("{}", state.state_as_str().purple()); + todo!() } Command::Print(print_lists, code, print_mode) => { for target in print_lists { - match Self::do_print( - self.main_component.name, - &target, - &code, - final_env.as_state_view(), - &print_mode, - ) { - Ok(msg) => println!("{}", msg.green()), - Err(e) => { - println!("{}", e.red().underline().bold()) - } - } + // match Self::do_print( + // self.main_component.name, + // &target, + // &code, + // final_env.as_state_view(), + // &print_mode, + // ) { + // Ok(msg) => println!("{}", msg.green()), + // Err(e) => { + // println!("{}", e.red().underline().bold()) + // } + // } + todo!() } } @@ -492,6 +352,130 @@ impl<'a> Debugger<'a> { } } + fn create_watchpoint( + &mut self, + print_target: Vec>, + print_code: Option, + print_mode: PrintMode, + group: super::commands::ParsedGroupName, + watch_pos: super::commands::WatchPosition, + ) { + let mut error_occurred = false; + for target in print_target.iter() { + if let Err(e) = + self.construct_print_string(target, print_code, print_mode) + { + error_occurred = true; + println!("{}", e.red().bold()); + } + } + + if error_occurred { + return; + } + + let watch_target = + match group.lookup_group(self.program_context.as_ref()) { + Ok(v) => v, + Err(e) => { + println!("Error: {}", owo_colors::OwoColorize::red(&e)); + return; + } + }; + + self.debugging_context.add_watchpoint( + watch_target, + watch_pos, + (print_target, print_code, print_mode), + ); + } + + fn do_step_over( + &mut self, + target: super::commands::ParsedGroupName, + ) -> Result<(), crate::errors::BoxedInterpreterError> { + let target = match target.lookup_group(self.program_context.as_ref()) { + Ok(v) => v, + Err(e) => { + println!("Error: {}", owo_colors::OwoColorize::red(&e)); + return Ok(()); + } + }; + + Ok(if !self.interpreter.is_group_running(target) { + println!("Group is not currently running") + } else { + while self.interpreter.is_group_running(target) { + self.interpreter.step()?; + } + }) + } + + fn create_breakpoints( + &mut self, + targets: Vec, + ) { + for target in targets { + let target = target.lookup_group(self.program_context.as_ref()); + unwrap_error_message!(target); + + if self.interpreter.is_group_running(target) { + println!("Warning: the group {} is already running. This breakpoint will not trigger until the next time the group runs.", + self.program_context.as_ref().lookup_name(target).yellow().italic()) + } + + self.debugging_context.add_breakpoint(target); + } + } + + fn do_print( + &self, + print_lists: Vec>, + code: Option, + print_mode: PrintMode, + ) { + for target in print_lists { + todo!() + } + } + + fn manipulate_breakpoint(&mut self, command: Command) { + match &command { + Command::Disable(targets) + | Command::Enable(targets) + | Command::Delete(targets) => { + for t in targets { + let target = + t.parse_to_break_ids(self.program_context.as_ref()); + unwrap_error_message!(target); + + match &command { + Command::Disable(_) => { + self.debugging_context.disable_breakpoint(target) + } + Command::Enable(_) => { + self.debugging_context.enable_breakpoint(target) + } + Command::Delete(_) => { + self.debugging_context.remove_breakpoint(target) + } + _ => unreachable!(), + } + } + } + _ => unreachable!(), + } + } + + fn construct_print_string( + &self, + print_list: &Vec, + code: Option, + print_mode: PrintMode, + ) -> Result { + todo!() + } + // fn do_print( // main_comp_name: Id, // print_list: &[Id], diff --git a/interp/src/debugger/commands/command_parser.rs b/interp/src/debugger/commands/command_parser.rs index c23e2b7bb0..2a2d0fe798 100644 --- a/interp/src/debugger/commands/command_parser.rs +++ b/interp/src/debugger/commands/command_parser.rs @@ -126,10 +126,10 @@ impl CommandParser { )) } - fn num(input: Node) -> ParseResult { + fn num(input: Node) -> ParseResult { input .as_str() - .parse::() + .parse::() .map_err(|_| input.error("Expected non-negative number")) } diff --git a/interp/src/debugger/commands/commands.pest b/interp/src/debugger/commands/commands.pest index 31fb869792..7a8817eb2e 100644 --- a/interp/src/debugger/commands/commands.pest +++ b/interp/src/debugger/commands/commands.pest @@ -1,44 +1,37 @@ WHITESPACE = _{ " " | "\t" | NEWLINE } -dot = _{"."} +dot = _{ "." } ident_syms = _{ "_" | "-" | "'" } -num = @{ASCII_DIGIT+} - - +num = @{ ASCII_DIGIT+ } identifier = @{ ("_" | ASCII_ALPHA)+ ~ (ident_syms | ASCII_ALPHA | ASCII_DIGIT)* } -group = {(identifier ~ "::" ~ identifier | identifier)} +group = { (identifier ~ "::" ~ identifier | identifier) } name = { identifier ~ (dot ~ identifier)* } -pc_un = { ^"u" } -pc_s = { ^"s" } -pc_ufx = { ^"u." ~ num } -pc_sfx = { ^"s." ~ num } -code_calyx = {^"calyx"} - -print_code = { "\\" ~ - ( - pc_ufx | - pc_sfx | - pc_s | - pc_un - ) +pc_un = { ^"u" } +pc_s = { ^"s" } +pc_ufx = { ^"u." ~ num } +pc_sfx = { ^"s." ~ num } +code_calyx = { ^"calyx" } + +print_code = { + "\\" ~ (pc_ufx | pc_sfx | pc_s | pc_un) } -pc_fail = @{ "\\" ~ ASCII_ALPHANUMERIC* } +pc_fail = @{ "\\" ~ ASCII_ALPHANUMERIC* } print = { (^"print" | ^"p") ~ (print_code)? ~ name+ } -print_state = {^"print-state" ~ (print_code)? ~ name+ } +print_state = { ^"print-state" ~ (print_code)? ~ name+ } print_fail = { (^"print-state" | ^"print" | ^"p") ~ (print_code | pc_fail)? } -before = {^"before"} -after = {^"after"} +before = { ^"before" } +after = { ^"after" } watch_position = { before | after } @@ -46,59 +39,36 @@ watch = { (^"watch" | ^"w") ~ (watch_position)? ~ group ~ ^"with" ~ (print_state | print) } -step_over = {^"step-over" ~ group } +step_over = { ^"step-over" ~ group } -step = { (^"step" | ^"s") ~ num? } -cont = { +step = { (^"step" | ^"s") ~ num? } +cont = { (^"continue" | ^"c") } -help = { +help = { (^"help" | ^"h") } -display = { ^"display" | ^"d" } +display = { ^"display" | ^"d" } info_break = { (^"info" ~ ^"break") | ^"i" ~ ^"b" } info_watch = { (^"info" ~ ^"watch") | ^"i" ~ ^"w" } -brk = { (^"break" | ^"br") ~ group* } +brk = { (^"break" | ^"br") ~ group+ } brk_id = { (group | num) } -delete = { (^"delete" | ^"del") ~ brk_id* } +delete = { (^"delete" | ^"del") ~ brk_id+ } -delete_watch = { (^"delete-watch" | ^"del-watch") ~ brk_id* } +delete_watch = { (^"delete-watch" | ^"del-watch") ~ brk_id+ } -enable = { (^"enable") ~ brk_id* } -disable = { (^"disable") ~ brk_id* } +enable = { (^"enable") ~ brk_id+ } +disable = { (^"disable") ~ brk_id+ } exit = { ^"exit" | ^"quit" } - -comm_where = { (^"where"| "pc") ~ (code_calyx)?} +comm_where = { (^"where" | "pc") ~ (code_calyx)? } explain = { ^"explain" } command = { - SOI ~ - ( - watch - | comm_where - | print_state - | print - | print_fail - | delete_watch - | delete - | brk - | enable - | disable - | step_over - | step - // commands without input - | cont - | help - | info_break - | info_watch - | display - | exit - | explain - )? - ~ EOI + SOI ~ (watch | comm_where | print_state | print | print_fail | delete_watch | delete | brk | enable | disable | step_over | step // commands without input + | cont | help | info_break | info_watch | display | exit | explain)? ~ EOI } diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index 7dd8258189..ddcb758c89 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -10,7 +10,11 @@ use std::{ use crate::{ debugger::debugging_context::context, flatten::{ - flat_ir::prelude::GroupIdx, structures::index_trait::impl_index, + flat_ir::prelude::GroupIdx, + structures::{ + context::Context, + index_trait::{impl_index, IndexRef}, + }, }, serialization::PrintCode, }; @@ -82,6 +86,23 @@ impl ParsedGroupName { None } } + + pub fn lookup_group(&self, context: &Context) -> Result { + let comp = if let Some(c) = &self.component { + context + .lookup_comp_by_name(c.as_ref()) + .map_or(Err(format!("No component named {c}")), |c| Ok(c))? + } else { + context.entry_point + }; + + context + .lookup_group_by_name(self.group.as_ref(), comp) + .map_or( + Err(format!("No group named {} in component", self.group)), + |g| Ok(g), + ) + } } #[derive(Debug, Clone)] @@ -92,18 +113,50 @@ pub struct GroupName { pub enum ParsedBreakPointID { Name(ParsedGroupName), - Number(u64), + Number(u32), } -impl From for ParsedBreakPointID { - fn from(v: ParsedGroupName) -> Self { - Self::Name(v) +impl ParsedBreakPointID { + pub fn parse_to_break_ids( + &self, + context: &Context, + ) -> Result { + match self { + ParsedBreakPointID::Name(name) => { + let group = name.lookup_group(context)?; + Ok(BreakpointID::Name(group)) + } + ParsedBreakPointID::Number(v) => { + Ok(BreakpointID::Number(BreakpointIdx::from(*v))) + } + } + } + + pub fn parse_to_watch_ids( + &self, + context: &Context, + ) -> Result { + match self { + ParsedBreakPointID::Name(v) => { + let group = v.lookup_group(context)?; + Ok(WatchID::Name(group)) + } + ParsedBreakPointID::Number(v) => { + Ok(WatchID::Number(WatchpointIdx::from(*v))) + } + } } } -impl From for ParsedBreakPointID { - fn from(n: u64) -> Self { - Self::Number(n) +impl From for ParsedBreakPointID { + fn from(v: u32) -> Self { + Self::Number(v) + } +} + +impl From for ParsedBreakPointID { + fn from(v: ParsedGroupName) -> Self { + Self::Name(v) } } @@ -169,7 +222,7 @@ impl Default for WatchPosition { } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Copy)] pub enum PrintMode { State, Port, @@ -224,7 +277,7 @@ impl Display for PrintTuple { } pub enum Command { - Step(u64), // Step execution + Step(u32), // Step execution Continue, // Execute until breakpoint Empty, // Empty command, does nothing Display, // Display full environment contents diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index 87585338d5..ed01f7f9d3 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -54,6 +54,10 @@ impl BreakPoint { pub fn is_disabled(&self) -> bool { matches!(self.state, PointStatus::Disabled) } + + pub fn is_enabled(&self) -> bool { + matches!(self.state, PointStatus::Enabled) + } } #[derive(Debug, Clone)] @@ -83,6 +87,7 @@ impl WatchPoint { // } // } +#[derive(Debug)] struct GroupExecutionInfo { previous: HashSet, current: HashSet, @@ -124,27 +129,6 @@ enum PointAction { Disable, } -impl PointAction { - fn take_action(&self, breakpoint: &mut BreakPoint) { - match self { - PointAction::Enable => breakpoint.enable(), - PointAction::Disable => breakpoint.disable(), - } - } - - fn take_action_with_feedback(&self, breakpoint: &mut BreakPoint) { - self.take_action(breakpoint); - println!( - "{} '{:?}'", - match self { - PointAction::Enable => "enabled", - PointAction::Disable => "disabled", - }, - &breakpoint.group - ) - } -} - #[derive(Debug)] struct BreakpointMap { group_idx_map: HashMap, @@ -397,17 +381,21 @@ impl WatchpointMap { pub(crate) struct DebuggingContext { breakpoints: BreakpointMap, watchpoints: WatchpointMap, + // Emulating the original behavior for the time being, but this could be + // shifted to use individual control points or full control nodes instead. + group_info: GroupExecutionInfo, } impl DebuggingContext { pub fn new() -> Self { Self { + group_info: GroupExecutionInfo::new(), breakpoints: BreakpointMap::new(), watchpoints: WatchpointMap::new(), } } - pub fn add_breakpoint(&mut self, target: GroupIdx) { + pub fn add_breakpoint(&mut self, target: GroupIdx) { if !self.breakpoints.breakpoint_exists(target) { let br = BreakPoint { group: target, @@ -561,17 +549,30 @@ impl DebuggingContext { self.act_watchpoint(target, PointAction::Disable) } - pub fn hit_breakpoints(&self) -> Vec<&GroupName> { - // self.group_exec_info - // .groups_new_on() - // .filter(|x| { - // if let Some(brk) = self.breakpoints.get(x) { - // return brk.state.enabled(); - // } - // false - // }) - // .collect() - todo!() + pub fn hit_breakpoints(&self) -> impl Iterator + '_ { + self.group_info + .groups_new_on() + .filter(|&&x| { + self.breakpoints + .get_by_group(x) + .map(|x| x.is_enabled()) + .unwrap_or_default() + }) + .copied() + } + + pub fn set_current_time>( + &mut self, + groups: I, + ) { + let group_map: HashSet<_> = groups.collect(); + self.group_info.shift_current(group_map.clone()); + self.group_info.shift_current(group_map); + } + + pub fn advance_time>(&mut self, groups: I) { + let group_map: HashSet<_> = groups.collect(); + self.group_info.shift_current(group_map); } pub fn process_watchpoints(&self) -> Vec<&'_ PrintTuple> { @@ -612,18 +613,6 @@ impl DebuggingContext { todo!() } - pub fn is_group_running( - &self, - current_executing: HashSet, - target: &GroupName, - ) -> bool { - // let current: HashSet = - // current_executing.into_iter().map(|x| x.into()).collect(); - - // current.contains(target) - todo!() - } - pub fn print_breakpoints(&self) { // println!("{}Current breakpoints:", SPACING); // for breakpoint in self.breakpoints.values() { diff --git a/interp/src/debugger/macros.rs b/interp/src/debugger/macros.rs new file mode 100644 index 0000000000..ec6b5a5e14 --- /dev/null +++ b/interp/src/debugger/macros.rs @@ -0,0 +1,14 @@ +/// A simple macro which unwraps a Result. If the result is an error, it will +/// print the error and continue. Otherwise it returns the value. +macro_rules! unwrap_error_message { + ($name:ident) => { + let $name = match $name { + Ok(v) => v, + Err(e) => { + println!("Error: {}", owo_colors::OwoColorize::red(&e)); + continue; + } + }; + }; +} +pub(crate) use unwrap_error_message; diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index d114e31fc1..31d5eead1f 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -3,8 +3,12 @@ pub mod commands; mod debugging_context; mod interactive_errors; mod io_utils; +mod macros; pub mod source; pub mod structures; pub use cidr::Debugger; +pub use cidr::OwnedDebugger; pub use cidr::ProgramStatus; + +pub(crate) use macros::unwrap_error_message; diff --git a/interp/src/flatten/primitives/builder.rs b/interp/src/flatten/primitives/builder.rs index 5b864fbcbf..2b93755c32 100644 --- a/interp/src/flatten/primitives/builder.rs +++ b/interp/src/flatten/primitives/builder.rs @@ -125,21 +125,21 @@ pub fn build_primitive( is_external: _, } => { let data = dump.as_ref().and_then(|data| { - let string = ctx.lookup_string(prim.name); + let string = ctx.resolve_id(prim.name); data.get_data(string) }); match mem_type { MemType::Seq => Box::new(if let Some(data) = data { memories_initialized - .insert(ctx.lookup_string(prim.name).clone()); + .insert(ctx.resolve_id(prim.name).clone()); SeqMem::new_with_init(base_port, *width, false, dims, data) } else { SeqMemD1::new(base_port, *width, false, dims) }), MemType::Std => Box::new(if let Some(data) = data { memories_initialized - .insert(ctx.lookup_string(prim.name).clone()); + .insert(ctx.resolve_id(prim.name).clone()); CombMem::new_with_init(base_port, *width, false, dims, data) } else { CombMem::new(base_port, *width, false, dims) diff --git a/interp/src/flatten/structures/context.rs b/interp/src/flatten/structures/context.rs index 924bfd6d0a..fb8262193e 100644 --- a/interp/src/flatten/structures/context.rs +++ b/interp/src/flatten/structures/context.rs @@ -270,10 +270,7 @@ impl Context { pub fn printer(&self) -> Printer { Printer::new(self) } -} -// Internal helper functions -impl Context { pub fn lookup_port_def( &self, comp: &ComponentIdx, @@ -326,6 +323,25 @@ impl Context { } } + pub fn lookup_comp_by_name(&self, name: &str) -> Option { + self.primary + .components + .keys() + .find(|c| self.resolve_id(self.secondary[*c].name) == name) + } + + pub fn lookup_group_by_name( + &self, + name: &str, + comp: ComponentIdx, + ) -> Option { + self.secondary[comp] + .definitions + .groups() + .iter() + .find(|x| self.resolve_id(self.primary[*x].name()) == name) + } + /// This is a wildly inefficient search, only used for debugging right now. /// TODO Griffin: if relevant, replace with something more efficient. pub(crate) fn find_parent_cell( @@ -369,7 +385,31 @@ impl Context { } } - pub fn lookup_string(&self, id: Identifier) -> &String { - self.secondary.string_table.lookup_string(&id).unwrap() + pub fn lookup_name(&self, id: T) -> &String { + id.lookup_name(self) + } +} + +impl AsRef for &Context { + fn as_ref(&self) -> &Context { + self + } +} + +pub trait LookupName { + fn lookup_name<'ctx>(&self, ctx: &'ctx Context) -> &'ctx String; +} + +impl LookupName for GroupIdx { + #[inline] + fn lookup_name<'ctx>(&self, ctx: &'ctx Context) -> &'ctx String { + ctx.resolve_id(ctx.primary[*self].name()) + } +} + +impl LookupName for ComponentIdx { + #[inline] + fn lookup_name<'ctx>(&self, ctx: &'ctx Context) -> &'ctx String { + ctx.resolve_id(ctx.secondary[*self].name) } } diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 7b7e0da1ac..9a7264c6c9 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -15,8 +15,8 @@ use crate::{ CellDefinitionRef::{Local, Ref}, CellRef, CombGroupIdx, ComponentIdx, ControlNode, GlobalCellIdx, GlobalCellRef, GlobalPortIdx, GlobalPortRef, - GlobalRefCellIdx, GlobalRefPortIdx, GuardIdx, Identifier, If, - Invoke, PortRef, PortValue, While, + GlobalRefCellIdx, GlobalRefPortIdx, GroupIdx, GuardIdx, + Identifier, If, Invoke, PortRef, PortValue, While, }, wires::guards::Guard, }, @@ -232,6 +232,8 @@ pub struct Environment + Clone> { pc: ProgramCounter, /// The immutable context. This is retained for ease of use. + /// This value should have a cheap clone implementation, such as &Context + /// or RC. ctx: C, } @@ -434,6 +436,28 @@ impl + Clone> Environment { pub fn get_root(&self) -> GlobalCellIdx { GlobalCellIdx::new(0) } + + pub fn is_group_running(&self, group_idx: GroupIdx) -> bool { + self.pc.iter().any(|point| { + let point = &self.ctx.as_ref().primary[point.control_node_idx]; + match point { + ControlNode::Enable(x) => x.group() == group_idx, + _ => false, + } + }) + } + + pub fn get_currently_running_groups( + &self, + ) -> impl Iterator + '_ { + self.pc.iter().filter_map(|point| { + let point = &self.ctx.as_ref().primary[point.control_node_idx]; + match point { + ControlNode::Enable(x) => Some(x.group()), + _ => None, + } + }) + } } // ===================== Environment print implementations ===================== @@ -732,8 +756,17 @@ impl + Clone> Simulator { // flip to a result of an option .map_or(Ok(None), |res| res.map(Some))?; - let mut sim = Simulator::new(Environment::new(ctx, data_dump)); - Ok(sim) + Ok(Simulator::new(Environment::new(ctx, data_dump))) + } + + pub fn is_group_running(&self, group_idx: GroupIdx) -> bool { + self.env.is_group_running(group_idx) + } + + pub fn get_currently_running_groups( + &self, + ) -> impl Iterator + '_ { + self.env.get_currently_running_groups() } } @@ -805,42 +838,34 @@ impl + Clone> Simulator { ) -> Vec { control_points .iter() - .map(|node| { + .filter_map(|node| { match &self.ctx().primary[node.control_node_idx] { ControlNode::Enable(e) => { let group = &self.ctx().primary[e.group()]; - ScheduledAssignments::new( + Some(ScheduledAssignments::new( node.comp, group.assignments, Some(GroupInterfacePorts { go: group.go, done: group.done, }), - ) + )) } - ControlNode::Invoke(i) => ScheduledAssignments::new( + ControlNode::Invoke(i) => Some(ScheduledAssignments::new( node.comp, i.assignments, None, - ), + )), - ControlNode::Empty(_) => { - unreachable!( - "called `get_assignments` with an empty node" - ) - } + ControlNode::Empty(_) => None, // non-leaf nodes ControlNode::If(_) | ControlNode::While(_) | ControlNode::Repeat(_) | ControlNode::Seq(_) - | ControlNode::Par(_) => { - unreachable!( - "Called `get_assignments` with non-leaf nodes" - ) - } + | ControlNode::Par(_) => None, } }) .chain( @@ -965,6 +990,11 @@ impl + Clone> Simulator { } } + // + pub fn converge(&mut self) -> InterpreterResult<()> { + todo!() + } + pub fn step(&mut self) -> InterpreterResult<()> { // place to keep track of what groups we need to conclude at the end of // this step. These are indices into the program counter @@ -1524,7 +1554,7 @@ impl + Clone> Simulator { let entrypoint_secondary = &ctx.secondary[ctx.entry_point]; let mut dump = DataDump::new_empty_with_top_level( - ctx.lookup_string(entrypoint_secondary.name).clone(), + ctx.resolve_id(entrypoint_secondary.name).clone(), ); let root = self.get_root_component(); @@ -1532,7 +1562,7 @@ impl + Clone> Simulator { for (offset, idx) in entrypoint_secondary.cell_offset_map.iter() { let cell_info = &ctx.secondary[*idx]; let cell_index = &root.index_bases + offset; - let name = ctx.lookup_string(cell_info.name).clone(); + let name = ctx.resolve_id(cell_info.name).clone(); match &cell_info.prototype { CellPrototype::Memory { width, diff --git a/interp/src/main.rs b/interp/src/main.rs index d3a14db87c..9f156ec4c1 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -6,12 +6,9 @@ use calyx_utils::OutputFile; use interp::{ configuration, debugger::{source::SourceMap, Debugger}, - environment::InterpreterState, errors::{InterpreterError, InterpreterResult}, flatten::structures::environment::{Environment, Simulator}, - interpreter::ComponentInterpreter, - interpreter_ir as iir, - serialization::data_dump::DataDump, + serialization::DataDump, }; use rustyline::error::ReadlineError; use slog::warn; @@ -94,30 +91,30 @@ struct CommandInterpret {} /// Interpret the given program with the interactive debugger struct CommandDebug {} -#[inline] -fn print_res( - res: InterpreterResult, - raw: bool, -) -> InterpreterResult<()> { - match res { - Ok(env) => { - if raw { - env.print_env_raw() - } else { - env.print_env() - }; - Ok(()) - } - Err(e) => match *e { - InterpreterError::Exit - | InterpreterError::ReadlineError(ReadlineError::Eof) => { - println!("Exiting."); - Ok(()) - } - _ => Err(e), - }, - } -} +// #[inline] +// fn print_res( +// res: InterpreterResult, +// raw: bool, +// ) -> InterpreterResult<()> { +// match res { +// Ok(env) => { +// if raw { +// env.print_env_raw() +// } else { +// env.print_env() +// }; +// Ok(()) +// } +// Err(e) => match *e { +// InterpreterError::Exit +// | InterpreterError::ReadlineError(ReadlineError::Eof) => { +// println!("Exiting."); +// Ok(()) +// } +// _ => Err(e), +// }, +// } +// } /// Interpret a group from a Calyx program fn main() -> InterpreterResult<()> { @@ -156,7 +153,7 @@ fn main() -> InterpreterResult<()> { match &command { Command::Interpret(_) => { - let mut sim = Simulator::build_simulator(&i_ctx, opts)?; + let mut sim = Simulator::build_simulator(&i_ctx, &opts.data_file)?; sim.run_program()?; diff --git a/tools/cider-data-converter/src/converter.rs b/tools/cider-data-converter/src/converter.rs index bcb8ba7a0e..df3d74337c 100644 --- a/tools/cider-data-converter/src/converter.rs +++ b/tools/cider-data-converter/src/converter.rs @@ -2,7 +2,7 @@ use itertools::Itertools; use std::collections::HashMap; use super::json_data::*; -use interp::serialization::data_dump::*; +use interp::serialization::*; pub fn convert_to_data_dump(json: &JsonData) -> DataDump { let mut data_dump = DataDump::new_empty(); diff --git a/tools/cider-data-converter/src/json_data.rs b/tools/cider-data-converter/src/json_data.rs index 26a9dbffd0..cdea3b1da9 100644 --- a/tools/cider-data-converter/src/json_data.rs +++ b/tools/cider-data-converter/src/json_data.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use interp::serialization::data_dump::Dimensions; +use interp::serialization::Dimensions; use serde::{self, Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone, Copy)] diff --git a/tools/cider-data-converter/src/main.rs b/tools/cider-data-converter/src/main.rs index 5c8a50233d..9db19f1e4f 100644 --- a/tools/cider-data-converter/src/main.rs +++ b/tools/cider-data-converter/src/main.rs @@ -1,6 +1,6 @@ use argh::FromArgs; use cider_data_converter::{converter, json_data::JsonData}; -use interp::serialization::data_dump::{self, SerializationError}; +use interp::serialization::{self, SerializationError}; use std::{ fs::File, io::{self, Read, Write}, @@ -112,7 +112,8 @@ fn main() -> Result<(), CiderDataConverterError> { .serialize(&mut output)?; } Action::ToJson => { - let data_dump = data_dump::DataDump::deserialize(&mut input)?; + let data_dump = + serialization::DataDump::deserialize(&mut input)?; let json_data = converter::convert_from_data_dump(&data_dump); writeln!( &mut output, From b5aafd50a82ca80db5d5db88e4d3f40d12cb13f0 Mon Sep 17 00:00:00 2001 From: Akash Dhiraj Date: Mon, 1 Jul 2024 17:43:06 -0400 Subject: [PATCH 23/76] Docs, Queues: binary heap (#2182) More progress towards #2067! This PR takes a stab at tweaking `docs/frontends/queues.md` to incorporate additions from PRs #2164 and #2174. --------- Co-authored-by: Anshuman Mohan --- docs/frontends/queues.md | 41 +++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/docs/frontends/queues.md b/docs/frontends/queues.md index 6138e5696c..6e3bbab5cd 100644 --- a/docs/frontends/queues.md +++ b/docs/frontends/queues.md @@ -6,10 +6,10 @@ Because of the total order, some element of the queue is the _most favorably ran We can read this element using the `peek` operation. We can also remove this element from the queue using the `dequeue` operation, which is also known as `pop` or `remove` in some contexts. -We provision three types of queues in Calyx, which follow the same interface for ease of use. +We provision four types of queues in Calyx. The first three follow the same shared interface, while the fourth follows a slightly extended interface. The frontend is implemented using the [Calyx builder library][builder], and the source code is heavily commented. -We first describe the shared interface and then detail the three types of queues. +We first describe the shared interface and their associated testing harness and then detail the four types of queues. ## Shared Interface @@ -19,7 +19,7 @@ Selects the operation to perform: - `0`: `pop`. - `1`: `peek`. - `2`: `push`. -- Input port `value`, a 32-bit integer +- Input port `value`, a 32-bit integer. The value to push. - Register `ans`, a 32-bit integer that is passed to the queue by reference. If `peek` or `pop` is selected, the queue writes the result to this register. @@ -40,8 +40,8 @@ The Python code is in [`queue_data_gen.py`][queue_data_gen.py]. #### Oracles Next, we have a Python module _for each kind of queue_ that reads the `.data` file, simulates the queue in Python, and dumps the expected result out in a Calyx `.expect` file. -This Python code is aware of our [shared iterface](#shared-interface). -The oracles are in [`fifo_oracle.py`][fifo_oracle.py], [`pifo_oracle.py`][pifo_oracle.py], and [`pifo_tree_oracle.py`][pifo_tree_oracle.py]. +This Python code is aware of our [shared interface](#shared-interface). +The oracles are in [`fifo_oracle.py`][fifo_oracle.py], [`pifo_oracle.py`][pifo_oracle.py], [`pifo_tree_oracle.py`][pifo_tree_oracle.py], and [`binheap_oracle.py`][binheap_oracle.py]. They all appeal to pure-Python implementations of the queues, which are found in [`queues.py`][queues.py]. Each oracle also requires, as command line arguments, the number of operations being simulated and the queue's length. @@ -123,10 +123,40 @@ Internally, our PIFO tree is implemented by leveraging the PIFO frontend. The PIFO frontend seeks to orchestrate two queues, which in the simple case will just be two FIFOs. However, it is easy to generalize those two queues: instead of being FIFOs, they can be PIFOs or even PIFO trees. +## Minimum Binary Heap + +A minimum binary heap is another tree-shaped data structure where each node has at most two children. +However, unlike the queues discussed above, a heap exposes an extended interface: +in addition to the input ports and reference registers discussed above, a heap has an additional input `rank`. +The `push` operation now accepts both a `value` and the `rank` that the user wishes to associate with that value. +Consequently, a heap _orders_ its elements by `rank`, with the `pop` (resp. `peek`) operation set to remove (resp. read) the element with minimal rank. + +To maintain this ordering efficiently, a heap stores `(rank, value)` pairs in each node and takes special care to maintain the following invariant: +> **Min-Heap Property**: for any given node `C`, if `P` is a parent of `C`, then the rank of `P` is less than or equal to the rank of `C`. + +To `push` or `pop` an element is easy at the top level: write to or read from the correct node, and then massage the tree to restore the Min-Heap Property. +The `peek` operation is constant-time and `push` and `pop` are logarithmic in the size of the heap. + +Our frontend allows for the creation of minimum binary heaps in Calyx; the source code is available in [`binheap.py`][binheap.py]. + +One quirk of any minimum binary heap is its ambiguous behavior in the case of rank ties. +More specifically, if the value `a` is pushed with some rank, and then later value `b` is pushed with the same rank, it's unclear which will be popped first. +Often, it's desirable to break such ties in FIFO order: that is we'd like a guarantee that `a` will be popped first. +A binary heap that provides this guarantee is called a _stable binary heap_, and our frontend provides a thin layer over our heap that enforces this property. + +Our `stable_binheap` is a heap accepting 32-bit ranks and values. +It uses a counter `i` and instantiates, in turn, a binary heap that accepts 64-bit ranks and 32-bit values. +- To push a pair `(r, v)` into `stable_binheap`, we craft a new 64-bit rank that incorporates the counter `i` (specifically, we compute `r << 32 + i`), and we push `v` into our underlying binary heap with this new 64-bit rank. We also increment the counter `i`. +- To pop `stable_binheap`, we pop the underlying binary heap. +- To peek `stable_binheap`, we peek the underlying binary heap. + +The source code is available in [`stable_binheap.py`][stable_binheap.py]. [builder]: ../builder/calyx-py.md [fifo.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/test/correctness/queues/fifo.py [pifo.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/test/correctness/queues/pifo.py +[binheap.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/test/correctness/queues/binheap/binheap.py +[stable_binheap.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/test/correctness/queues/binheap/stable_binheap.py [pifo_tree.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/test/correctness/queues/pifo_tree.py [sivaraman16]: https://dl.acm.org/doi/10.1145/2934872.2934899 [mohan23]: https://dl.acm.org/doi/10.1145/3622845 @@ -135,6 +165,7 @@ However, it is easy to generalize those two queues: instead of being FIFOs, they [fifo_oracle.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/calyx/fifo_oracle.py [pifo_oracle.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/calyx/pifo_oracle.py [pifo_tree_oracle.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/calyx/pifo_tree_oracle.py +[binheap_oracle.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/calyx/binheap_oracle.py [gen_queue_data_expect.sh]: https://github.com/calyxir/calyx/blob/main/calyx-py/calyx/gen_queue_data_expect.sh [queue_call.py]: https://github.com/calyxir/calyx/blob/main/calyx-py/calyx/queue_call.py [runt-queues]: https://github.com/calyxir/calyx/blob/a4c2442675d3419be6d2f5cf912aa3f804b3c4ab/runt.toml#L131-L144 From ecf05ccbd279ec4ff934ccd761c63666660c4aa2 Mon Sep 17 00:00:00 2001 From: Anshuman Mohan <10830208+anshumanmohan@users.noreply.github.com> Date: Tue, 2 Jul 2024 14:35:58 -0400 Subject: [PATCH 24/76] Queues: edge case in data-gen when `num_cmds` is odd (#2190) --- calyx-py/calyx/queue_data_gen.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/calyx-py/calyx/queue_data_gen.py b/calyx-py/calyx/queue_data_gen.py index 9d4012b455..f2ec45eb39 100644 --- a/calyx-py/calyx/queue_data_gen.py +++ b/calyx-py/calyx/queue_data_gen.py @@ -52,7 +52,14 @@ def no_err_cmds_list(queue_size, num_cmds): commands += (push_goal - total_pop_count) * [0] break - assert len(commands) == num_cmds + # If the total number of commands is not `num_cmds`, pad it with `peek`s. + # This is because the `commands` list must have `num_cmds` items. + commands += (num_cmds - len(commands)) * [1] + # The above command will add either zero or one `peek` command to the end. + + assert ( + len(commands) == num_cmds + ), f"Length of commands list was {len(commands)}, expected {num_cmds}" return commands @@ -110,6 +117,7 @@ def dump_json(num_cmds, use_rank: bool, no_err: bool, queue_size: Optional[int] else: print(json.dumps(commands | values | ans_mem, indent=2)) + if __name__ == "__main__": # Accept a flag that we pass to dump_json. # This says whether we should use the special no_err helper. From ba0d5f0a7f9b3c0e5b2553ee7b6084cea5fc8e1a Mon Sep 17 00:00:00 2001 From: csziklai <142637613+csziklai@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:15:26 -0400 Subject: [PATCH 25/76] Round Robin oracle and eDSL (#2177) This PR makes progress towards #1810. It implements the python oracle for PIFOs generalized to n flows, now known as Round Robin queues. Just as with the PIFO, if a flow falls silent, the remaining flows will take their turns. That flow effectively skips its turn. To re-generate the test files with 20000 commands and a max length of 16, type in the command line after navigating to the directory calyx/calyx-py/calyx ``` ./gen_queue_data_expect.sh ``` Additionally, this PR also implements the Calyx version of Round Robin queues in rr_queue.py. This was originally supposed to be its own PR, but I thought it might be more complicated if I branched off a branch. To run these tests, type in the command line ``` runt -i "rr_queue" ``` --------- Co-authored-by: Cassandra Nicole Sziklai Co-authored-by: Anshuman Mohan Co-authored-by: Anshuman Mohan <10830208+anshumanmohan@users.noreply.github.com> --- calyx-py/calyx/builder.py | 8 + calyx-py/calyx/gen_queue_data_expect.sh | 8 + calyx-py/calyx/queues.py | 99 +- calyx-py/calyx/rrqueue_oracle.py | 35 + .../queues/rr_queues/roundrobin.py | 232 + .../queues/rr_queues/rr_queue_2flows.data | 60029 ++++++++++++++++ .../queues/rr_queues/rr_queue_2flows.expect | 60008 +++++++++++++++ .../queues/rr_queues/rr_queue_2flows.py | 6 + .../queues/rr_queues/rr_queue_3flows.data | 60029 ++++++++++++++++ .../queues/rr_queues/rr_queue_3flows.expect | 60008 +++++++++++++++ .../queues/rr_queues/rr_queue_3flows.py | 6 + .../queues/rr_queues/rr_queue_4flows.data | 60029 ++++++++++++++++ .../queues/rr_queues/rr_queue_4flows.expect | 60008 +++++++++++++++ .../queues/rr_queues/rr_queue_4flows.py | 6 + .../queues/rr_queues/rr_queue_5flows.data | 60029 ++++++++++++++++ .../queues/rr_queues/rr_queue_5flows.expect | 60008 +++++++++++++++ .../queues/rr_queues/rr_queue_5flows.py | 6 + .../queues/rr_queues/rr_queue_6flows.data | 60029 ++++++++++++++++ .../queues/rr_queues/rr_queue_6flows.expect | 60008 +++++++++++++++ .../queues/rr_queues/rr_queue_6flows.py | 6 + .../queues/rr_queues/rr_queue_7flows.data | 60029 ++++++++++++++++ .../queues/rr_queues/rr_queue_7flows.expect | 60008 +++++++++++++++ .../queues/rr_queues/rr_queue_7flows.py | 6 + runt.toml | 16 +- 24 files changed, 720651 insertions(+), 5 deletions(-) create mode 100644 calyx-py/calyx/rrqueue_oracle.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/roundrobin.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.data create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.expect create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.data create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.expect create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.data create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.expect create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.data create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.expect create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.data create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.expect create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.data create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.expect create mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py diff --git a/calyx-py/calyx/builder.py b/calyx-py/calyx/builder.py index bb28a7511a..a928073a15 100644 --- a/calyx-py/calyx/builder.py +++ b/calyx-py/calyx/builder.py @@ -1026,6 +1026,14 @@ def le_store_in_reg( cell = self.le(width, cellname, signed) return self.op_store_in_reg(cell, left, right, cell.name, 1, ans_reg) + def ge_store_in_reg( + self, left, right, ans_reg=None, cellname=None, width=None, signed=False + ): + """Inserts wiring into `self` to perform `reg := left >= right`.""" + width = width or self.try_infer_width(width, left, right) + cell = self.ge(width, cellname, signed) + return self.op_store_in_reg(cell, left, right, cell.name, 1, ans_reg) + def mult_store_in_reg( self, left, right, ans_reg=None, cellname=None, width=None, signed=False ): diff --git a/calyx-py/calyx/gen_queue_data_expect.sh b/calyx-py/calyx/gen_queue_data_expect.sh index 016e344d62..85dc843cf5 100755 --- a/calyx-py/calyx/gen_queue_data_expect.sh +++ b/calyx-py/calyx/gen_queue_data_expect.sh @@ -26,3 +26,11 @@ done # use binheap_oracle to generate the expected output python3 queue_data_gen.py $num_cmds --use-rank > ../test/correctness/queues/binheap/stable_binheap.data cat ../test/correctness/queues/binheap/stable_binheap.data | python3 binheap_oracle.py $num_cmds $queue_size --keepgoing > ../test/correctness/queues/binheap/stable_binheap.expect + +# For the Round Robin queues, we drop piezo mode as well and use rrqueue_oracle to +# generate the expected output for queues with 2..7 flows. This generates 6 data expect file pairs. + +for n in {2..7}; do + python3 queue_data_gen.py $num_cmds > ../test/correctness/queues/rr_queues/rr_queue_${n}flows.data + cat ../test/correctness/queues/rr_queues/rr_queue_${n}flows.data | python3 rrqueue_oracle.py $num_cmds $queue_size $n --keepgoing > ../test/correctness/queues/rr_queues/rr_queue_${n}flows.expect +done diff --git a/calyx-py/calyx/queues.py b/calyx-py/calyx/queues.py index 64ec03d618..46fc395dbd 100644 --- a/calyx-py/calyx/queues.py +++ b/calyx-py/calyx/queues.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Any, List, Optional +from typing import Any, Optional import heapq @@ -152,7 +152,7 @@ def __len__(self) -> int: @dataclass(order=True) class RankValue: priority: int - value: Any=field(compare=False) + value: Any = field(compare=False) @dataclass @@ -192,13 +192,104 @@ def __len__(self) -> int: return self.len +@dataclass +class RRQueue: + """ + This is a version of a PIFO generalized to `n` flows, with a work conserving + round robin policy. If a flow is silent when it is its turn, that flow + simply skips its turn and the next flow is offered service. + + Supports the operations `push`, `pop`, and `peek`. + It takes in a list `boundaries` that must be of length `n`, using which the + client can divide the incoming traffic into `n` flows. + For example, if n = 3 and the client passes boundaries [133, 266, 400], + packets will be divided into three flows: [0, 133], [134, 266], [267, 400]. + + - At push, we check the `boundaries` list to determine which flow to push to. + Take the boundaries example given earlier, [133, 266, 400]. + If we push the value 89, it will end up in flow 0 becuase 89 <= 133, + and 305 would end up in flow 2 since 266 <= 305 <= 400. + - Pop first tries to pop from `hot`. If this succeeds, great. If it fails, + it increments `hot` and therefore continues to check all other flows + in round robin fashion. + - Peek allows the client to see which element is at the head of the queue + without removing it. Thus, peek works in a similar fashion to `pop`, except + `hot` is restored to its original value at the every end. + Further, nothing is actually dequeued. + """ + + def __init__(self, n, boundaries, max_len: int): + self.hot = 0 + self.n = n + self.pifo_len = 0 + self.boundaries = boundaries + self.data = [Fifo(max_len) for _ in range(n)] + + self.max_len = max_len + assert ( + self.pifo_len <= self.max_len + ) # We can't be initialized with a PIFO that is too long. + + def push(self, val: int): + """Pushes `val` to the PIFO.""" + if self.pifo_len == self.max_len: + raise QueueError("Cannot push to full PIFO.") + for fifo, boundary in zip(self.data, self.boundaries): + if val <= boundary: + fifo.push(val) + self.pifo_len += 1 + break + + def increment_hot(self): + """Increments `hot`, taking into account wraparound.""" + self.hot = 0 if self.hot == (self.n - 1) else self.hot + 1 + + def pop(self) -> Optional[int]: + """Pops the PIFO by popping some internal FIFO. + Updates `hot` to be one more than the index of the internal FIFO that + we did pop. + """ + if self.pifo_len == 0: + raise QueueError("Cannot pop from empty PIFO.") + + while True: + try: + val = self.data[self.hot].pop() + if val is not None: + self.increment_hot() + self.pifo_len -= 1 + return val + self.increment_hot() + except QueueError: + self.increment_hot() + + def peek(self) -> Optional[int]: + """Peeks into the PIFO. Does not affect what `hot` is.""" + if self.pifo_len == 0: + raise QueueError("Cannot peek into empty PIFO.") + + original_hot = self.hot + while True: + try: + val = self.data[self.hot].peek() + if val is not None: + self.hot = original_hot + return val + self.increment_hot() + except QueueError: + self.increment_hot() + + def __len__(self) -> int: + return self.pifo_len + + def operate_queue(queue, max_cmds, commands, values, ranks=None, keepgoing=False): """Given the two lists, one of commands and one of values. Feed these into our queue, and return the answer memory. """ ans = [] - ranks_or_values = values if ranks == None else ranks + ranks_or_values = values if ranks is None else ranks for cmd, val, rnk in zip(commands, values, ranks_or_values): if cmd == 0: try: @@ -218,7 +309,7 @@ def operate_queue(queue, max_cmds, commands, values, ranks=None, keepgoing=False elif cmd == 2: try: - if ranks == None: + if ranks is None: queue.push(val) else: queue.push(rnk, val) diff --git a/calyx-py/calyx/rrqueue_oracle.py b/calyx-py/calyx/rrqueue_oracle.py new file mode 100644 index 0000000000..de7c5da463 --- /dev/null +++ b/calyx-py/calyx/rrqueue_oracle.py @@ -0,0 +1,35 @@ +# For usage, see gen_queue_data_expect.sh +import sys +import calyx.queues as queues +from calyx import queue_util + +if __name__ == "__main__": + num_cmds, len, numflows = int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]) + keepgoing = "--keepgoing" in sys.argv + commands, values, _ = queue_util.parse_json() + + # In reality, we would allow the user to specify the boundaries via + # command line arguments or a configuration file. For now, we hardcode them + # as a function of the number of flows. + if numflows == 2: + boundaries = [200, 400] + elif numflows == 3: + boundaries = [133, 266, 400] + elif numflows == 4: + boundaries = [100, 200, 300, 400] + elif numflows == 5: + boundaries = [80, 160, 240, 320, 400] + elif numflows == 6: + boundaries = [66, 100, 200, 220, 300, 400] + elif numflows == 7: + boundaries = [50, 100, 150, 200, 250, 300, 400] + else: + raise ValueError("Unsupported number of flows") + + # Our Round Robin Queue orchestrates n FIFOs, in this case provided as + # a command line argument. It orchestrates the FIFOs in a round-robin fashion. + pifo = queues.RRQueue(numflows, boundaries, len) + + ans = queues.operate_queue(pifo, num_cmds, commands, values, keepgoing=keepgoing) + + queue_util.dump_json(ans, commands, values) diff --git a/calyx-py/test/correctness/queues/rr_queues/roundrobin.py b/calyx-py/test/correctness/queues/rr_queues/roundrobin.py new file mode 100644 index 0000000000..59aa2217a2 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/roundrobin.py @@ -0,0 +1,232 @@ +# pylint: disable=import-error +"""Common code factored out, to be imported by the different flow implementations.""" +# pylint: disable=import-error +import os +import sys +import inspect + +# Hackery to import `fifo` from the parent directory. +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +import fifo +import calyx.builder as cb +import calyx.queue_call as qc + + +# This determines the maximum possible length of the queue: +# The max length of the queue will be 2^QUEUE_LEN_FACTOR. +QUEUE_LEN_FACTOR = 4 + + +def invoke_subqueue(queue_cell, cmd, value, ans, err) -> cb.invoke: + """Invokes the cell {queue_cell} with: + {cmd} passed by value + {value} passed by value + {ans} passed by reference + {err} passed by reference + """ + return cb.invoke( + queue_cell, + in_cmd=cmd, + in_value=value, + ref_ans=ans, + ref_err=err, + ) + + +def insert_rr_pifo( + prog, + name, + fifos, + boundaries, + numflows, + queue_len_factor=QUEUE_LEN_FACTOR, +): + """Inserts the component `pifo` into the program.""" + + pifo: cb.ComponentBuilder = prog.component(name) + cmd = pifo.input("cmd", 2) # the size in bits is 2 + # If this is 0, we pop. If it is 1, we peek. + # If it is 2, we push `value` to the queue. + value = pifo.input("value", 32) # The value to push to the queue + + fifo_cells = [pifo.cell(f"queue_{i}", fifo_i) for i, fifo_i in enumerate(fifos)] + + ans = pifo.reg(32, "ans", is_ref=True) + # If the user wants to pop, we will write the popped value to `ans`. + + err = pifo.reg(1, "err", is_ref=True) + # We'll raise this as a general error flag for overflow and underflow. + + length = pifo.reg(32, "length") # The active length of the PIFO. + + # A register that marks the next sub-queue to `pop` from. + hot = pifo.reg(32, "hot") + og_hot = pifo.reg(32, "og_hot") + copy_hot = pifo.reg_store(og_hot, hot.out) # og_hot := hot.out + restore_hot = pifo.reg_store(hot, og_hot.out) # hot := og_hot.out + + max_queue_len = 2**queue_len_factor + + # Some equality checks. + len_eq_0 = pifo.eq_use(length.out, 0) + len_eq_max_queue_len = pifo.eq_use(length.out, max_queue_len) + err_is_low = pifo.eq_use(err.out, 0) + err_is_high = pifo.neq_use(err.out, 0) + + raise_err = pifo.reg_store(err, 1, "raise_err") # err := 1 + lower_err = pifo.reg_store(err, 0, "lower_err") # err := 0 + + len_incr = pifo.incr(length) # len++ + len_decr = pifo.decr(length) # len-- + + # We create a dictionary of invokes handles and pass it to the case construct. + # Each invoke is uniquely guarded by an equality check on the hot register. + # This means we can execute all of these invokes in parallel and know that + # only one will succeed. + invoke_subqueues_hot_guard = pifo.case( + hot.out, + { + n: invoke_subqueue(fifo_cells[n], cmd, value, ans, err) + for n in range(numflows) + }, + ) + + # We create a list of invoke-statement handles. + # Each invoke is guarded by a pair of inequality checks on the value register, + # and each pair of guards is unique to the subqueue it is associated with. + # This means we can eventually execute all of these invokes in parallel. + invoke_subqueues_value_guard_seq = [ + cb.if_with( + pifo.le_use(value, boundaries[b + 1]), # value <= boundaries[b+1] + ( + invoke_subqueue(fifo_cells[b], cmd, value, ans, err) + # In the specical case when b = 0, + # we don't need to check the lower bound and we can just `invoke`. + if b == 0 + # Otherwise, we need to check the lower bound and `invoke` + # only if the value is in the interval. + else cb.if_with( + pifo.gt_use(value, boundaries[b]), # value > boundaries[b] + invoke_subqueue(fifo_cells[b], cmd, value, ans, err), + ) + ), + ) + for b in range(numflows) + ] + invoke_subqueues_value_guard = cb.par( + invoke_subqueues_value_guard_seq + ) # Execute the above in parallel. + + incr_hot_wraparound = cb.if_with( + # If hot = numflows - 1, we need to wrap around to 0. Otherwise, we increment. + pifo.eq_use(hot.out, numflows - 1), + pifo.reg_store(hot, 0, "reset_hot"), + pifo.incr(hot), + ) + + pop_logic = cb.if_with( + len_eq_0, + raise_err, # The queue is empty: underflow. + [ # The queue is not empty. Proceed. + raise_err, # We raise err so we enter the loop body at least once. + cb.while_with( + err_is_high, + [ # We have entered the loop body because `err` is high. + # Either we are here for the first time, + # or we are here because the previous iteration raised an error + # and incremented `hot` for us. + # We'll try to pop from `fifo_cells[hot]`. + # We'll pass it a lowered `err`. + lower_err, + invoke_subqueues_hot_guard, + incr_hot_wraparound, # Increment hot + ], # Some pop succeeded. Its answer is our answer. + ), + len_decr, + ], + ) + + peek_logic = cb.if_with( + len_eq_0, + raise_err, # The queue is empty: underflow. + [ # The queue is not empty. Proceed. + raise_err, # We raise err so we enter the loop body at least once. + copy_hot, # We remember `hot` so we can restore it later. + [ + cb.while_with( + err_is_high, + [ # We have entered the loop body because `err` is high. + # Either we are here for the first time, + # or we are here because the previous iteration raised an error + # and incremented `hot` for us. + # We'll try to peek from `fifo_cells[hot]`. + # We'll pass it a lowered `err`. + lower_err, + invoke_subqueues_hot_guard, + incr_hot_wraparound, # Increment hot: this will be used + # only if the current subqueue raised an error, + # and another iteration is needed. + ], + ), + ], + restore_hot, # Peeking must not affect `hot`, so we restore it. + ], + ) + + push_logic = cb.if_with( + len_eq_max_queue_len, + raise_err, # The queue is full: overflow. + [ # The queue is not full. Proceed. + lower_err, + # We'll push to the subqueue that the value belongs to. + invoke_subqueues_value_guard, + # If all went well, we'll increment the length of the queue. + cb.if_with(err_is_low, len_incr), + ], + ) + + # Was it a pop, peek, push, or an invalid command? + # We can do those four cases in parallel. + pifo.control += pifo.case( + cmd, + { + 0: pop_logic, + 1: peek_logic, + 2: push_logic, + 3: raise_err, + }, + ) + + return pifo + + +def build(numflows): + """Top-level function to build the program.""" + + if numflows == 2: + boundaries = [0, 200, 400] + elif numflows == 3: + boundaries = [0, 133, 266, 400] + elif numflows == 4: + boundaries = [0, 100, 200, 300, 400] + elif numflows == 5: + boundaries = [0, 80, 160, 240, 320, 400] + elif numflows == 6: + boundaries = [0, 66, 100, 200, 220, 300, 400] + elif numflows == 7: + boundaries = [0, 50, 100, 150, 200, 250, 300, 400] + else: + raise ValueError("Unsupported number of flows") + + num_cmds = int(sys.argv[1]) + + prog = cb.Builder() + sub_fifos = [ + fifo.insert_fifo(prog, f"fifo{i}", QUEUE_LEN_FACTOR) for i in range(numflows) + ] + pifo = insert_rr_pifo(prog, "pifo", sub_fifos, boundaries, numflows) + qc.insert_main(prog, pifo, num_cmds) + return prog.program diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.data b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.expect b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.expect new file mode 100644 index 0000000000..c31eaf912d --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 121, + 275, + 275, + 243, + 330, + 329, + 203, + 203, + 203, + 310, + 310, + 291, + 256, + 268, + 354, + 354, + 380, + 130, + 307, + 80, + 262, + 262, + 262, + 363, + 40, + 40, + 388, + 388, + 388, + 388, + 388, + 388, + 106, + 106, + 106, + 242, + 299, + 299, + 325, + 325, + 325, + 243, + 243, + 243, + 176, + 243, + 243, + 287, + 61, + 321, + 125, + 125, + 125, + 125, + 306, + 306, + 306, + 95, + 95, + 296, + 145, + 145, + 205, + 205, + 205, + 171, + 171, + 171, + 171, + 309, + 83, + 341, + 341, + 341, + 79, + 212, + 125, + 125, + 215, + 133, + 133, + 133, + 133, + 133, + 238, + 318, + 221, + 221, + 221, + 216, + 80, + 306, + 306, + 221, + 361, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 231, + 5, + 5, + 241, + 241, + 241, + 11, + 312, + 312, + 181, + 181, + 281, + 281, + 281, + 281, + 281, + 281, + 281, + 281, + 98, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 12, + 12, + 12, + 12, + 254, + 167, + 216, + 216, + 216, + 216, + 162, + 162, + 314, + 314, + 314, + 314, + 82, + 238, + 3, + 3, + 366, + 177, + 330, + 69, + 69, + 293, + 36, + 253, + 183, + 372, + 372, + 60, + 60, + 378, + 150, + 150, + 150, + 150, + 150, + 219, + 82, + 323, + 323, + 90, + 90, + 90, + 90, + 90, + 251, + 251, + 21, + 21, + 391, + 391, + 391, + 391, + 391, + 129, + 129, + 129, + 129, + 129, + 267, + 66, + 66, + 66, + 219, + 98, + 250, + 250, + 90, + 90, + 305, + 305, + 21, + 21, + 21, + 21, + 21, + 318, + 318, + 318, + 318, + 318, + 318, + 119, + 119, + 119, + 119, + 119, + 119, + 332, + 332, + 332, + 332, + 332, + 0, + 0, + 203, + 76, + 76, + 343, + 343, + 151, + 290, + 290, + 89, + 89, + 89, + 276, + 276, + 11, + 308, + 308, + 308, + 113, + 113, + 113, + 113, + 113, + 356, + 170, + 354, + 354, + 354, + 354, + 354, + 18, + 18, + 18, + 18, + 209, + 161, + 346, + 346, + 346, + 183, + 306, + 109, + 109, + 109, + 109, + 109, + 109, + 109, + 217, + 217, + 217, + 120, + 120, + 220, + 220, + 220, + 220, + 220, + 91, + 246, + 246, + 246, + 246, + 81, + 81, + 374, + 191, + 208, + 208, + 95, + 310, + 162, + 162, + 162, + 297, + 297, + 297, + 63, + 388, + 86, + 378, + 6, + 310, + 310, + 310, + 120, + 332, + 303, + 303, + 400, + 255, + 300, + 359, + 256, + 157, + 256, + 256, + 45, + 351, + 351, + 278, + 400, + 400, + 223, + 223, + 223, + 223, + 180, + 180, + 223, + 238, + 238, + 103, + 103, + 222, + 222, + 121, + 332, + 332, + 332, + 54, + 380, + 380, + 380, + 380, + 41, + 220, + 154, + 154, + 269, + 182, + 301, + 87, + 87, + 312, + 312, + 312, + 312, + 312, + 165, + 323, + 323, + 7, + 248, + 248, + 195, + 397, + 144, + 144, + 252, + 195, + 195, + 195, + 296, + 296, + 296, + 296, + 296, + 296, + 152, + 152, + 152, + 152, + 152, + 218, + 12, + 227, + 227, + 128, + 380, + 198, + 255, + 8, + 367, + 40, + 286, + 286, + 286, + 286, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 201, + 41, + 337, + 36, + 310, + 310, + 310, + 310, + 51, + 51, + 154, + 154, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 244, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 30, + 30, + 30, + 30, + 362, + 362, + 164, + 256, + 234, + 137, + 137, + 137, + 374, + 374, + 192, + 192, + 192, + 176, + 314, + 314, + 123, + 382, + 14, + 14, + 142, + 122, + 82, + 321, + 321, + 181, + 189, + 92, + 92, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 348, + 43, + 237, + 237, + 237, + 80, + 387, + 206, + 206, + 206, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 207, + 207, + 207, + 79, + 79, + 338, + 338, + 143, + 143, + 143, + 366, + 13, + 217, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 3, + 353, + 353, + 353, + 353, + 105, + 105, + 105, + 105, + 51, + 241, + 241, + 51, + 51, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 2, + 135, + 209, + 135, + 240, + 208, + 208, + 333, + 333, + 74, + 74, + 74, + 74, + 74, + 74, + 255, + 42, + 42, + 42, + 223, + 189, + 189, + 189, + 347, + 81, + 256, + 256, + 256, + 256, + 109, + 109, + 360, + 144, + 361, + 85, + 85, + 85, + 213, + 213, + 9, + 260, + 175, + 175, + 175, + 175, + 348, + 348, + 348, + 107, + 339, + 339, + 339, + 339, + 59, + 59, + 203, + 40, + 360, + 360, + 360, + 360, + 30, + 363, + 188, + 188, + 382, + 71, + 223, + 223, + 223, + 26, + 26, + 26, + 398, + 398, + 398, + 398, + 194, + 194, + 235, + 235, + 64, + 382, + 149, + 149, + 282, + 282, + 168, + 168, + 316, + 316, + 184, + 320, + 320, + 101, + 393, + 393, + 132, + 132, + 132, + 235, + 235, + 92, + 249, + 24, + 325, + 181, + 309, + 309, + 154, + 154, + 257, + 257, + 257, + 105, + 299, + 299, + 112, + 239, + 87, + 256, + 256, + 256, + 86, + 86, + 206, + 34, + 34, + 34, + 34, + 254, + 16, + 16, + 305, + 313, + 313, + 313, + 313, + 201, + 20, + 20, + 201, + 95, + 95, + 95, + 260, + 260, + 260, + 379, + 379, + 55, + 379, + 76, + 76, + 76, + 76, + 320, + 320, + 141, + 222, + 222, + 215, + 108, + 215, + 33, + 33, + 316, + 316, + 316, + 98, + 98, + 312, + 313, + 313, + 313, + 13, + 13, + 13, + 304, + 331, + 142, + 142, + 301, + 287, + 121, + 121, + 272, + 88, + 346, + 346, + 346, + 346, + 346, + 7, + 239, + 239, + 17, + 17, + 226, + 226, + 128, + 52, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 159, + 159, + 77, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 147, + 206, + 206, + 386, + 187, + 187, + 238, + 75, + 364, + 179, + 237, + 237, + 87, + 40, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 295, + 295, + 295, + 295, + 295, + 190, + 394, + 394, + 166, + 392, + 392, + 200, + 200, + 200, + 200, + 234, + 234, + 234, + 175, + 175, + 219, + 16, + 16, + 394, + 75, + 343, + 150, + 150, + 321, + 321, + 321, + 321, + 321, + 321, + 35, + 192, + 192, + 192, + 306, + 306, + 306, + 113, + 255, + 255, + 255, + 53, + 233, + 144, + 144, + 362, + 161, + 161, + 323, + 323, + 190, + 331, + 331, + 197, + 197, + 197, + 222, + 72, + 266, + 37, + 309, + 173, + 173, + 173, + 256, + 256, + 92, + 92, + 92, + 92, + 92, + 92, + 92, + 242, + 242, + 242, + 242, + 242, + 0, + 274, + 274, + 274, + 181, + 181, + 269, + 113, + 113, + 308, + 308, + 308, + 308, + 86, + 354, + 154, + 154, + 299, + 299, + 299, + 132, + 267, + 267, + 267, + 267, + 150, + 321, + 167, + 167, + 167, + 167, + 167, + 324, + 45, + 45, + 45, + 45, + 45, + 45, + 365, + 50, + 238, + 238, + 160, + 299, + 299, + 51, + 362, + 362, + 77, + 77, + 77, + 287, + 287, + 287, + 21, + 21, + 380, + 380, + 380, + 380, + 380, + 127, + 370, + 370, + 0, + 220, + 142, + 319, + 319, + 46, + 46, + 46, + 212, + 86, + 86, + 297, + 297, + 99, + 99, + 99, + 293, + 293, + 293, + 162, + 281, + 174, + 397, + 150, + 386, + 386, + 386, + 23, + 23, + 23, + 23, + 23, + 222, + 128, + 237, + 237, + 148, + 313, + 313, + 186, + 170, + 170, + 312, + 312, + 312, + 312, + 312, + 312, + 165, + 165, + 165, + 165, + 165, + 293, + 179, + 264, + 264, + 40, + 40, + 324, + 97, + 323, + 129, + 320, + 320, + 320, + 320, + 68, + 68, + 272, + 272, + 272, + 272, + 29, + 46, + 154, + 132, + 132, + 132, + 365, + 365, + 365, + 132, + 132, + 338, + 338, + 338, + 338, + 338, + 32, + 32, + 358, + 185, + 333, + 333, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 261, + 69, + 69, + 218, + 218, + 218, + 218, + 186, + 70, + 101, + 101, + 72, + 117, + 155, + 275, + 109, + 109, + 297, + 297, + 297, + 167, + 167, + 299, + 91, + 23, + 339, + 339, + 339, + 339, + 188, + 226, + 226, + 226, + 188, + 188, + 255, + 87, + 87, + 79, + 79, + 132, + 184, + 67, + 186, + 160, + 160, + 160, + 160, + 160, + 160, + 170, + 260, + 260, + 46, + 332, + 332, + 158, + 304, + 304, + 85, + 330, + 330, + 92, + 231, + 155, + 155, + 280, + 178, + 178, + 79, + 79, + 11, + 11, + 11, + 199, + 125, + 125, + 155, + 63, + 122, + 122, + 122, + 97, + 97, + 150, + 150, + 150, + 397, + 397, + 194, + 63, + 63, + 304, + 304, + 63, + 339, + 339, + 339, + 128, + 298, + 167, + 167, + 295, + 295, + 295, + 80, + 80, + 285, + 71, + 214, + 214, + 74, + 264, + 264, + 264, + 195, + 195, + 327, + 327, + 173, + 318, + 318, + 318, + 318, + 318, + 318, + 318, + 57, + 57, + 57, + 57, + 398, + 75, + 75, + 75, + 310, + 118, + 118, + 274, + 62, + 62, + 351, + 32, + 32, + 32, + 272, + 272, + 272, + 43, + 43, + 351, + 3, + 202, + 110, + 110, + 110, + 288, + 288, + 288, + 26, + 26, + 26, + 26, + 314, + 55, + 55, + 323, + 323, + 58, + 58, + 58, + 58, + 339, + 186, + 186, + 186, + 349, + 349, + 83, + 83, + 158, + 158, + 158, + 71, + 71, + 71, + 235, + 235, + 65, + 236, + 236, + 236, + 236, + 236, + 236, + 120, + 120, + 120, + 372, + 372, + 372, + 9, + 245, + 80, + 80, + 80, + 353, + 353, + 353, + 353, + 171, + 304, + 192, + 192, + 350, + 350, + 74, + 49, + 34, + 164, + 136, + 266, + 266, + 266, + 266, + 136, + 239, + 239, + 239, + 239, + 26, + 26, + 26, + 26, + 26, + 291, + 119, + 119, + 119, + 119, + 318, + 178, + 178, + 178, + 178, + 178, + 357, + 357, + 357, + 357, + 357, + 134, + 124, + 124, + 124, + 124, + 148, + 49, + 49, + 300, + 300, + 300, + 300, + 43, + 208, + 208, + 208, + 131, + 131, + 131, + 22, + 8, + 129, + 129, + 145, + 325, + 145, + 57, + 57, + 148, + 148, + 148, + 148, + 28, + 160, + 22, + 142, + 142, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 48, + 48, + 393, + 393, + 393, + 15, + 15, + 246, + 246, + 334, + 91, + 237, + 245, + 245, + 99, + 295, + 295, + 295, + 295, + 295, + 295, + 275, + 275, + 275, + 384, + 187, + 324, + 122, + 390, + 390, + 333, + 299, + 198, + 254, + 254, + 103, + 66, + 298, + 298, + 102, + 102, + 102, + 102, + 237, + 164, + 164, + 245, + 245, + 245, + 10, + 10, + 398, + 150, + 267, + 267, + 267, + 267, + 267, + 267, + 190, + 317, + 317, + 180, + 320, + 114, + 114, + 325, + 325, + 143, + 344, + 344, + 153, + 153, + 153, + 153, + 213, + 213, + 213, + 74, + 367, + 92, + 287, + 287, + 287, + 287, + 287, + 20, + 20, + 20, + 20, + 382, + 382, + 382, + 14, + 14, + 395, + 155, + 155, + 155, + 241, + 241, + 241, + 51, + 51, + 378, + 23, + 23, + 271, + 271, + 271, + 271, + 200, + 200, + 200, + 200, + 200, + 337, + 124, + 124, + 231, + 155, + 277, + 5, + 5, + 5, + 246, + 149, + 394, + 394, + 74, + 278, + 194, + 309, + 309, + 309, + 83, + 291, + 15, + 15, + 15, + 15, + 311, + 88, + 88, + 88, + 88, + 397, + 397, + 23, + 23, + 374, + 63, + 330, + 330, + 330, + 330, + 63, + 367, + 367, + 52, + 52, + 52, + 350, + 350, + 350, + 350, + 4, + 4, + 4, + 203, + 203, + 37, + 378, + 60, + 60, + 60, + 314, + 314, + 336, + 336, + 102, + 102, + 102, + 279, + 279, + 156, + 347, + 107, + 246, + 246, + 246, + 318, + 233, + 233, + 233, + 286, + 334, + 24, + 24, + 24, + 334, + 185, + 185, + 361, + 211, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 160, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 15, + 219, + 15, + 15, + 15, + 313, + 23, + 276, + 82, + 333, + 333, + 333, + 98, + 98, + 98, + 15, + 15, + 15, + 15, + 166, + 174, + 174, + 174, + 174, + 132, + 132, + 391, + 391, + 391, + 1, + 1, + 100, + 191, + 6, + 62, + 226, + 62, + 284, + 284, + 151, + 233, + 233, + 53, + 278, + 278, + 181, + 181, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 150, + 150, + 150, + 150, + 317, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 346, + 123, + 4, + 4, + 23, + 178, + 19, + 375, + 375, + 19, + 19, + 294, + 294, + 138, + 138, + 207, + 61, + 61, + 61, + 370, + 370, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 325, + 325, + 203, + 203, + 203, + 135, + 203, + 130, + 385, + 385, + 67, + 365, + 365, + 365, + 37, + 375, + 375, + 375, + 89, + 325, + 56, + 56, + 56, + 397, + 397, + 115, + 380, + 380, + 380, + 380, + 380, + 380, + 380, + 380, + 380, + 111, + 111, + 111, + 111, + 290, + 290, + 63, + 376, + 123, + 319, + 319, + 14, + 14, + 382, + 382, + 382, + 101, + 101, + 101, + 101, + 101, + 345, + 93, + 350, + 350, + 5, + 365, + 365, + 365, + 86, + 216, + 52, + 52, + 217, + 105, + 105, + 330, + 69, + 69, + 360, + 360, + 30, + 228, + 27, + 302, + 302, + 302, + 302, + 131, + 222, + 71, + 71, + 71, + 71, + 368, + 81, + 81, + 81, + 398, + 141, + 141, + 360, + 360, + 165, + 165, + 165, + 165, + 165, + 165, + 309, + 309, + 309, + 309, + 309, + 86, + 233, + 94, + 367, + 367, + 174, + 174, + 174, + 174, + 352, + 352, + 352, + 352, + 9, + 231, + 26, + 341, + 97, + 208, + 293, + 335, + 335, + 335, + 335, + 335, + 36, + 36, + 341, + 301, + 98, + 98, + 98, + 224, + 224, + 224, + 260, + 260, + 0, + 304, + 292, + 208, + 208, + 296, + 336, + 65, + 65, + 65, + 65, + 65, + 65, + 394, + 394, + 99, + 99, + 253, + 30, + 394, + 141, + 141, + 367, + 47, + 47, + 371, + 276, + 276, + 391, + 360, + 360, + 360, + 236, + 311, + 362, + 338, + 338, + 338, + 338, + 375, + 375, + 112, + 375, + 277, + 230, + 230, + 230, + 49, + 49, + 49, + 233, + 34, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 61, + 61, + 400, + 400, + 73, + 73, + 263, + 111, + 111, + 111, + 198, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 325, + 325, + 155, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 106, + 106, + 106, + 106, + 106, + 322, + 322, + 322, + 152, + 152, + 152, + 231, + 196, + 196, + 196, + 196, + 196, + 196, + 297, + 106, + 106, + 382, + 382, + 117, + 367, + 18, + 28, + 36, + 36, + 106, + 119, + 290, + 290, + 290, + 119, + 119, + 119, + 119, + 119, + 119, + 308, + 137, + 235, + 80, + 80, + 350, + 31, + 31, + 31, + 117, + 117, + 117, + 117, + 117, + 124, + 389, + 389, + 124, + 124, + 394, + 394, + 197, + 197, + 376, + 376, + 108, + 263, + 263, + 41, + 252, + 252, + 252, + 155, + 155, + 155, + 302, + 149, + 149, + 309, + 309, + 118, + 118, + 260, + 260, + 260, + 260, + 123, + 123, + 384, + 26, + 381, + 12, + 290, + 290, + 290, + 290, + 290, + 186, + 202, + 202, + 182, + 236, + 12, + 12, + 276, + 125, + 125, + 358, + 358, + 177, + 387, + 387, + 387, + 93, + 388, + 388, + 388, + 69, + 207, + 119, + 119, + 246, + 246, + 246, + 246, + 76, + 296, + 296, + 187, + 386, + 101, + 231, + 80, + 80, + 80, + 80, + 343, + 23, + 23, + 23, + 23, + 226, + 226, + 226, + 226, + 226, + 17, + 17, + 397, + 218, + 336, + 336, + 105, + 336, + 336, + 336, + 92, + 92, + 355, + 355, + 96, + 96, + 96, + 96, + 360, + 10, + 10, + 10, + 299, + 118, + 118, + 366, + 366, + 366, + 366, + 10, + 10, + 10, + 10, + 10, + 10, + 211, + 125, + 125, + 379, + 379, + 379, + 61, + 342, + 342, + 342, + 148, + 210, + 210, + 210, + 138, + 138, + 138, + 271, + 167, + 167, + 167, + 394, + 146, + 146, + 230, + 130, + 130, + 130, + 353, + 115, + 115, + 115, + 222, + 222, + 53, + 319, + 319, + 319, + 112, + 112, + 112, + 331, + 25, + 25, + 25, + 25, + 365, + 41, + 335, + 68, + 57, + 159, + 104, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 104, + 104, + 272, + 86, + 372, + 372, + 372, + 123, + 208, + 29, + 220, + 158, + 158, + 355, + 355, + 355, + 355, + 105, + 105, + 391, + 97, + 97, + 382, + 382, + 262, + 218, + 218, + 366, + 16, + 16, + 16, + 383, + 67, + 295, + 113, + 113, + 246, + 246, + 246, + 159, + 340, + 81, + 81, + 81, + 81, + 260, + 260, + 260, + 260, + 260, + 16, + 250, + 124, + 373, + 193, + 253, + 253, + 253, + 152, + 88, + 189, + 51, + 51, + 198, + 198, + 198, + 131, + 25, + 25, + 25, + 198, + 250, + 198, + 117, + 117, + 117, + 187, + 386, + 187, + 32, + 270, + 186, + 249, + 249, + 73, + 73, + 73, + 73, + 344, + 69, + 69, + 69, + 233, + 233, + 233, + 233, + 233, + 187, + 300, + 300, + 300, + 300, + 38, + 253, + 64, + 64, + 64, + 64, + 332, + 103, + 219, + 219, + 66, + 280, + 190, + 190, + 386, + 278, + 214, + 106, + 150, + 150, + 296, + 71, + 398, + 398, + 398, + 172, + 172, + 172, + 172, + 172, + 205, + 125, + 125, + 389, + 389, + 23, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 27, + 27, + 241, + 241, + 68, + 68, + 225, + 225, + 225, + 225, + 225, + 225, + 225, + 225, + 225, + 225, + 225, + 11, + 11, + 11, + 11, + 374, + 139, + 381, + 381, + 381, + 381, + 38, + 38, + 391, + 96, + 295, + 160, + 160, + 298, + 298, + 298, + 166, + 166, + 166, + 354, + 16, + 16, + 325, + 72, + 72, + 72, + 72, + 243, + 243, + 55, + 304, + 304, + 168, + 168, + 168, + 250, + 135, + 135, + 383, + 23, + 23, + 377, + 377, + 59, + 59, + 353, + 28, + 266, + 147, + 261, + 261, + 53, + 53, + 53, + 341, + 341, + 10, + 234, + 234, + 26, + 338, + 33, + 33, + 33, + 330, + 330, + 330, + 82, + 380, + 380, + 81, + 81, + 81, + 313, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 386, + 194, + 342, + 342, + 91, + 274, + 139, + 372, + 172, + 172, + 207, + 207, + 76, + 76, + 76, + 367, + 367, + 367, + 367, + 367, + 367, + 179, + 304, + 304, + 304, + 304, + 304, + 26, + 242, + 242, + 51, + 51, + 358, + 358, + 358, + 358, + 358, + 23, + 23, + 344, + 344, + 62, + 62, + 264, + 161, + 161, + 161, + 344, + 344, + 344, + 165, + 339, + 32, + 32, + 32, + 32, + 32, + 359, + 114, + 251, + 251, + 251, + 124, + 308, + 308, + 91, + 239, + 239, + 239, + 340, + 365, + 365, + 246, + 259, + 263, + 263, + 251, + 204, + 258, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 85, + 138, + 62, + 62, + 324, + 62, + 62, + 392, + 316, + 316, + 153, + 153, + 316, + 118, + 205, + 145, + 288, + 288, + 195, + 315, + 315, + 22, + 212, + 181, + 181, + 254, + 254, + 37, + 394, + 39, + 39, + 219, + 100, + 100, + 377, + 377, + 67, + 217, + 5, + 5, + 265, + 265, + 265, + 265, + 265, + 265, + 52, + 52, + 223, + 223, + 0, + 321, + 321, + 73, + 319, + 319, + 28, + 286, + 286, + 286, + 286, + 176, + 176, + 287, + 287, + 287, + 78, + 229, + 229, + 16, + 16, + 343, + 9, + 9, + 9, + 9, + 9, + 9, + 335, + 335, + 67, + 368, + 38, + 204, + 34, + 34, + 34, + 400, + 400, + 6, + 6, + 207, + 348, + 249, + 231, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 241, + 241, + 129, + 129, + 218, + 25, + 350, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 338, + 338, + 200, + 290, + 290, + 3, + 3, + 3, + 391, + 189, + 397, + 397, + 90, + 90, + 302, + 302, + 302, + 54, + 365, + 118, + 118, + 118, + 118, + 316, + 73, + 73, + 377, + 377, + 185, + 261, + 85, + 393, + 393, + 393, + 393, + 102, + 225, + 225, + 225, + 186, + 343, + 343, + 189, + 189, + 189, + 189, + 189, + 189, + 189, + 308, + 308, + 308, + 121, + 121, + 231, + 11, + 11, + 283, + 283, + 115, + 400, + 145, + 145, + 145, + 249, + 249, + 103, + 234, + 115, + 115, + 234, + 234, + 234, + 234, + 188, + 188, + 394, + 129, + 129, + 234, + 234, + 94, + 218, + 218, + 112, + 112, + 112, + 336, + 56, + 211, + 119, + 119, + 306, + 64, + 229, + 27, + 27, + 301, + 301, + 114, + 327, + 90, + 385, + 140, + 140, + 140, + 296, + 179, + 260, + 260, + 260, + 12, + 12, + 12, + 12, + 209, + 18, + 18, + 241, + 12, + 12, + 228, + 228, + 183, + 393, + 393, + 58, + 212, + 212, + 212, + 119, + 119, + 274, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 314, + 124, + 124, + 380, + 380, + 380, + 145, + 145, + 145, + 386, + 386, + 386, + 386, + 167, + 167, + 340, + 185, + 185, + 185, + 185, + 185, + 185, + 388, + 6, + 6, + 6, + 6, + 353, + 137, + 216, + 216, + 216, + 146, + 254, + 254, + 254, + 133, + 133, + 277, + 277, + 153, + 153, + 259, + 259, + 141, + 141, + 248, + 166, + 367, + 367, + 104, + 226, + 226, + 193, + 193, + 193, + 193, + 330, + 20, + 309, + 196, + 231, + 231, + 115, + 115, + 115, + 324, + 324, + 12, + 288, + 288, + 77, + 203, + 203, + 143, + 143, + 299, + 180, + 325, + 325, + 176, + 176, + 207, + 207, + 207, + 100, + 100, + 324, + 324, + 324, + 137, + 244, + 244, + 16, + 203, + 203, + 203, + 31, + 31, + 245, + 17, + 375, + 375, + 375, + 375, + 124, + 124, + 333, + 333, + 162, + 273, + 141, + 241, + 241, + 150, + 150, + 150, + 333, + 333, + 195, + 348, + 67, + 67, + 267, + 267, + 146, + 240, + 149, + 349, + 349, + 92, + 92, + 92, + 347, + 162, + 162, + 162, + 215, + 215, + 215, + 215, + 215, + 198, + 198, + 279, + 279, + 112, + 112, + 216, + 147, + 223, + 223, + 223, + 94, + 94, + 94, + 333, + 333, + 333, + 333, + 333, + 30, + 214, + 214, + 19, + 349, + 349, + 38, + 203, + 203, + 203, + 203, + 165, + 165, + 224, + 151, + 151, + 151, + 151, + 391, + 391, + 391, + 127, + 127, + 349, + 349, + 349, + 349, + 99, + 216, + 216, + 80, + 257, + 27, + 27, + 332, + 332, + 332, + 123, + 123, + 123, + 258, + 258, + 258, + 135, + 135, + 262, + 52, + 52, + 52, + 299, + 97, + 268, + 268, + 65, + 332, + 61, + 61, + 61, + 61, + 297, + 297, + 154, + 361, + 153, + 153, + 153, + 271, + 89, + 89, + 357, + 44, + 44, + 399, + 27, + 268, + 24, + 244, + 179, + 179, + 179, + 270, + 270, + 270, + 134, + 134, + 134, + 321, + 189, + 269, + 269, + 269, + 110, + 110, + 324, + 324, + 324, + 324, + 324, + 192, + 286, + 286, + 286, + 70, + 288, + 113, + 113, + 249, + 192, + 286, + 107, + 233, + 70, + 374, + 374, + 126, + 247, + 247, + 161, + 388, + 388, + 388, + 122, + 231, + 97, + 313, + 385, + 385, + 224, + 224, + 224, + 171, + 171, + 171, + 171, + 171, + 396, + 0, + 206, + 83, + 352, + 355, + 231, + 266, + 266, + 267, + 54, + 54, + 340, + 340, + 340, + 340, + 183, + 183, + 370, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 273, + 273, + 273, + 128, + 395, + 198, + 198, + 198, + 198, + 361, + 192, + 247, + 164, + 164, + 378, + 49, + 369, + 13, + 253, + 253, + 169, + 361, + 38, + 400, + 144, + 264, + 121, + 252, + 252, + 252, + 252, + 175, + 219, + 219, + 136, + 302, + 302, + 326, + 278, + 278, + 129, + 278, + 183, + 338, + 145, + 342, + 238, + 238, + 238, + 93, + 93, + 93, + 238, + 238, + 28, + 28, + 28, + 325, + 75, + 75, + 230, + 230, + 29, + 307, + 307, + 133, + 133, + 133, + 298, + 78, + 247, + 37, + 37, + 245, + 245, + 245, + 130, + 394, + 193, + 331, + 100, + 386, + 85, + 272, + 272, + 272, + 272, + 170, + 170, + 388, + 185, + 185, + 247, + 247, + 39, + 39, + 269, + 156, + 305, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 110, + 110, + 110, + 289, + 217, + 217, + 182, + 379, + 134, + 224, + 143, + 355, + 355, + 164, + 338, + 338, + 69, + 202, + 299, + 299, + 299, + 4, + 4, + 377, + 377, + 91, + 91, + 236, + 236, + 236, + 91, + 316, + 316, + 316, + 143, + 143, + 143, + 143, + 143, + 304, + 185, + 185, + 185, + 236, + 17, + 274, + 274, + 274, + 274, + 83, + 83, + 83, + 392, + 392, + 392, + 76, + 76, + 76, + 76, + 384, + 384, + 116, + 116, + 225, + 149, + 149, + 384, + 161, + 161, + 397, + 8, + 8, + 260, + 125, + 252, + 80, + 80, + 80, + 238, + 238, + 45, + 255, + 159, + 155, + 197, + 245, + 245, + 245, + 245, + 245, + 245, + 197, + 388, + 5, + 249, + 100, + 88, + 180, + 180, + 112, + 26, + 26, + 175, + 175, + 115, + 62, + 62, + 344, + 77, + 77, + 355, + 355, + 355, + 355, + 355, + 78, + 78, + 297, + 184, + 395, + 49, + 49, + 49, + 49, + 279, + 180, + 180, + 180, + 358, + 358, + 89, + 274, + 53, + 398, + 398, + 160, + 287, + 121, + 205, + 205, + 205, + 188, + 394, + 123, + 217, + 177, + 177, + 177, + 342, + 93, + 43, + 43, + 224, + 224, + 224, + 43, + 378, + 378, + 378, + 378, + 378, + 378, + 378, + 378, + 115, + 115, + 115, + 387, + 387, + 92, + 92, + 92, + 279, + 92, + 92, + 334, + 334, + 334, + 334, + 166, + 320, + 320, + 4, + 4, + 4, + 4, + 267, + 57, + 57, + 258, + 258, + 258, + 258, + 258, + 59, + 300, + 300, + 93, + 207, + 207, + 136, + 201, + 200, + 214, + 214, + 214, + 128, + 369, + 173, + 296, + 296, + 153, + 153, + 153, + 302, + 302, + 128, + 128, + 128, + 128, + 341, + 165, + 165, + 165, + 165, + 165, + 285, + 36, + 36, + 36, + 36, + 36, + 36, + 218, + 135, + 135, + 135, + 135, + 334, + 334, + 334, + 334, + 15, + 232, + 232, + 232, + 73, + 334, + 131, + 342, + 342, + 342, + 342, + 342, + 342, + 342, + 23, + 295, + 295, + 295, + 150, + 297, + 58, + 53, + 53, + 179, + 179, + 296, + 179, + 146, + 146, + 339, + 146, + 321, + 67, + 67, + 67, + 67, + 67, + 335, + 335, + 335, + 335, + 193, + 303, + 303, + 130, + 286, + 286, + 103, + 103, + 345, + 195, + 270, + 103, + 124, + 124, + 31, + 236, + 236, + 31, + 31, + 31, + 316, + 83, + 377, + 377, + 182, + 204, + 204, + 74, + 74, + 267, + 267, + 10, + 209, + 120, + 120, + 120, + 204, + 204, + 204, + 204, + 128, + 128, + 128, + 128, + 259, + 29, + 29, + 29, + 221, + 221, + 50, + 348, + 348, + 99, + 397, + 397, + 16, + 250, + 250, + 250, + 250, + 250, + 250, + 23, + 349, + 100, + 219, + 219, + 219, + 186, + 186, + 186, + 344, + 159, + 159, + 159, + 352, + 130, + 130, + 246, + 58, + 58, + 58, + 58, + 379, + 63, + 257, + 168, + 319, + 319, + 319, + 97, + 97, + 240, + 48, + 48, + 48, + 368, + 368, + 368, + 368, + 368, + 74, + 322, + 178, + 178, + 178, + 390, + 390, + 161, + 329, + 112, + 112, + 112, + 112, + 112, + 112, + 112, + 112, + 112, + 112, + 385, + 104, + 104, + 104, + 211, + 129, + 129, + 270, + 194, + 347, + 130, + 279, + 279, + 35, + 35, + 35, + 266, + 112, + 366, + 366, + 366, + 366, + 55, + 55, + 345, + 76, + 76, + 76, + 76, + 364, + 364, + 364, + 364, + 364, + 364, + 364, + 364, + 175, + 175, + 175, + 382, + 144, + 144, + 380, + 153, + 217, + 180, + 180, + 357, + 357, + 357, + 165, + 219, + 219, + 66, + 248, + 248, + 137, + 390, + 42, + 377, + 377, + 377, + 144, + 144, + 144, + 245, + 245, + 245, + 245, + 170, + 170, + 170, + 295, + 295, + 105, + 105, + 105, + 376, + 376, + 5, + 318, + 318, + 318, + 318, + 55, + 55, + 55, + 55, + 258, + 185, + 399, + 399, + 200, + 226, + 226, + 226, + 226, + 319, + 265, + 265, + 282, + 383, + 77, + 77, + 383, + 233, + 233, + 233, + 345, + 42, + 42, + 42, + 42, + 42, + 345, + 345, + 345, + 188, + 350, + 55, + 382, + 156, + 156, + 276, + 276, + 127, + 251, + 251, + 251, + 251, + 251, + 251, + 26, + 26, + 387, + 127, + 275, + 275, + 275, + 275, + 217, + 217, + 217, + 349, + 241, + 241, + 161, + 161, + 161, + 241, + 88, + 88, + 88, + 321, + 340, + 248, + 376, + 289, + 10, + 217, + 157, + 212, + 355, + 150, + 340, + 340, + 60, + 60, + 60, + 60, + 318, + 318, + 325, + 326, + 326, + 354, + 263, + 345, + 345, + 41, + 41, + 41, + 231, + 76, + 76, + 354, + 354, + 190, + 190, + 190, + 190, + 190, + 190, + 340, + 340, + 340, + 340, + 340, + 340, + 340, + 179, + 329, + 30, + 208, + 59, + 252, + 252, + 175, + 329, + 185, + 185, + 185, + 309, + 296, + 334, + 85, + 299, + 299, + 204, + 313, + 183, + 219, + 127, + 127, + 282, + 370, + 163, + 163, + 85, + 138, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 18, + 174, + 133, + 133, + 368, + 183, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 157, + 157, + 157, + 318, + 211, + 259, + 156, + 259, + 259, + 200, + 200, + 218, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 34, + 34, + 339, + 339, + 73, + 396, + 169, + 349, + 6, + 6, + 251, + 251, + 251, + 251, + 169, + 169, + 224, + 4, + 181, + 176, + 176, + 154, + 154, + 213, + 154, + 269, + 163, + 163, + 163, + 163, + 260, + 260, + 32, + 393, + 393, + 343, + 343, + 343, + 343, + 393, + 215, + 215, + 215, + 334, + 334, + 15, + 213, + 213, + 258, + 258, + 40, + 375, + 375, + 375, + 375, + 375, + 375, + 375, + 40, + 40, + 387, + 153, + 302, + 120, + 317, + 317, + 317, + 317, + 317, + 317, + 317, + 317, + 159, + 159, + 391, + 391, + 391, + 391, + 173, + 252, + 252, + 55, + 55, + 245, + 149, + 149, + 149, + 149, + 149, + 272, + 169, + 169, + 169, + 169, + 229, + 35, + 233, + 233, + 233, + 233, + 179, + 259, + 259, + 259, + 259, + 259, + 125, + 125, + 288, + 54, + 333, + 158, + 158, + 158, + 323, + 323, + 323, + 182, + 285, + 365, + 154, + 343, + 343, + 130, + 130, + 130, + 344, + 344, + 344, + 90, + 90, + 356, + 356, + 356, + 144, + 205, + 205, + 205, + 205, + 205, + 187, + 325, + 325, + 46, + 247, + 247, + 247, + 247, + 84, + 84, + 256, + 256, + 256, + 52, + 268, + 268, + 268, + 144, + 228, + 111, + 383, + 17, + 269, + 72, + 213, + 213, + 75, + 269, + 191, + 191, + 368, + 368, + 368, + 15, + 335, + 53, + 53, + 326, + 326, + 326, + 326, + 326, + 326, + 91, + 91, + 398, + 398, + 181, + 181, + 295, + 295, + 119, + 119, + 297, + 297, + 297, + 297, + 297, + 297, + 62, + 385, + 385, + 126, + 126, + 126, + 126, + 126, + 126, + 126, + 280, + 280, + 280, + 280, + 280, + 103, + 294, + 3, + 340, + 340, + 66, + 66, + 66, + 334, + 61, + 61, + 352, + 352, + 352, + 352, + 352, + 22, + 22, + 22, + 264, + 69, + 339, + 104, + 327, + 155, + 155, + 336, + 54, + 250, + 250, + 64, + 64, + 64, + 64, + 252, + 252, + 252, + 252, + 193, + 193, + 345, + 51, + 266, + 26, + 26, + 26, + 274, + 274, + 169, + 169, + 351, + 67, + 67, + 350, + 68, + 68, + 230, + 230, + 230, + 164, + 164, + 164, + 164, + 164, + 279, + 147, + 213, + 213, + 213, + 63, + 63, + 241, + 241, + 241, + 45, + 289, + 289, + 289, + 289, + 289, + 289, + 70, + 70, + 310, + 140, + 232, + 5, + 5, + 5, + 363, + 363, + 363, + 363, + 131, + 244, + 7, + 7, + 262, + 262, + 262, + 262, + 110, + 327, + 200, + 267, + 267, + 92, + 92, + 92, + 377, + 377, + 109, + 109, + 378, + 19, + 246, + 146, + 339, + 126, + 126, + 386, + 386, + 164, + 164, + 211, + 197, + 197, + 197, + 197, + 197, + 197, + 355, + 355, + 355, + 161, + 161, + 161, + 395, + 395, + 34, + 34, + 34, + 231, + 231, + 142, + 209, + 209, + 209, + 183, + 183, + 235, + 235, + 235, + 175, + 175, + 95, + 224, + 224, + 47, + 47, + 47, + 47, + 47, + 179, + 146, + 199, + 199, + 199, + 156, + 101, + 101, + 119, + 270, + 119, + 119, + 119, + 26, + 26, + 229, + 229, + 26, + 154, + 281, + 281, + 281, + 281, + 63, + 273, + 94, + 94, + 25, + 207, + 25, + 156, + 156, + 156, + 156, + 179, + 87, + 33, + 22, + 100, + 393, + 393, + 393, + 393, + 393, + 108, + 108, + 108, + 108, + 108, + 203, + 99, + 226, + 23, + 37, + 115, + 281, + 281, + 281, + 115, + 115, + 115, + 115, + 115, + 115, + 115, + 346, + 25, + 25, + 25, + 383, + 82, + 240, + 113, + 113, + 113, + 113, + 316, + 316, + 15, + 340, + 340, + 86, + 86, + 86, + 86, + 375, + 115, + 121, + 135, + 135, + 135, + 376, + 135, + 135, + 230, + 61, + 61, + 294, + 294, + 85, + 83, + 10, + 151, + 354, + 354, + 354, + 151, + 151, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 47, + 318, + 318, + 364, + 206, + 96, + 96, + 364, + 364, + 14, + 14, + 240, + 240, + 160, + 364, + 364, + 364, + 364, + 155, + 341, + 190, + 190, + 190, + 190, + 329, + 69, + 69, + 283, + 164, + 164, + 172, + 390, + 390, + 164, + 326, + 326, + 326, + 59, + 59, + 306, + 306, + 306, + 306, + 41, + 41, + 41, + 41, + 41, + 216, + 186, + 275, + 275, + 275, + 180, + 312, + 93, + 93, + 93, + 93, + 93, + 93, + 288, + 37, + 331, + 8, + 8, + 8, + 8, + 352, + 197, + 230, + 230, + 343, + 343, + 224, + 224, + 224, + 224, + 239, + 177, + 239, + 239, + 239, + 94, + 218, + 218, + 54, + 336, + 137, + 212, + 179, + 376, + 152, + 385, + 385, + 1, + 224, + 224, + 39, + 39, + 309, + 182, + 182, + 182, + 182, + 322, + 55, + 55, + 351, + 137, + 208, + 208, + 181, + 181, + 325, + 184, + 275, + 4, + 4, + 335, + 335, + 39, + 39, + 39, + 388, + 388, + 388, + 388, + 388, + 187, + 187, + 187, + 187, + 187, + 389, + 389, + 389, + 141, + 141, + 322, + 322, + 322, + 101, + 101, + 101, + 101, + 101, + 101, + 247, + 5, + 238, + 191, + 206, + 206, + 63, + 63, + 204, + 63, + 345, + 114, + 374, + 42, + 42, + 242, + 185, + 372, + 372, + 32, + 32, + 32, + 32, + 345, + 345, + 164, + 336, + 0, + 282, + 28, + 228, + 142, + 142, + 254, + 56, + 307, + 307, + 109, + 292, + 292, + 94, + 94, + 228, + 123, + 123, + 123, + 310, + 150, + 297, + 89, + 283, + 241, + 241, + 241, + 241, + 241, + 205, + 205, + 277, + 164, + 261, + 261, + 198, + 273, + 273, + 273, + 273, + 220, + 343, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 180, + 352, + 352, + 270, + 244, + 361, + 182, + 182, + 182, + 182, + 182, + 81, + 357, + 357, + 357, + 357, + 238, + 238, + 238, + 21, + 21, + 21, + 352, + 79, + 389, + 33, + 339, + 95, + 95, + 383, + 342, + 298, + 298, + 282, + 282, + 56, + 56, + 282, + 282, + 154, + 154, + 154, + 154, + 154, + 297, + 297, + 75, + 75, + 75, + 349, + 349, + 196, + 341, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 319, + 77, + 77, + 77, + 238, + 136, + 222, + 222, + 222, + 222, + 222, + 222, + 197, + 339, + 55, + 241, + 89, + 310, + 10, + 360, + 360, + 360, + 360, + 360, + 360, + 54, + 298, + 5, + 5, + 5, + 340, + 340, + 2, + 2, + 2, + 2, + 2, + 2, + 234, + 234, + 234, + 43, + 43, + 361, + 361, + 111, + 111, + 255, + 255, + 120, + 120, + 120, + 267, + 267, + 74, + 261, + 261, + 24, + 24, + 334, + 231, + 231, + 231, + 217, + 307, + 307, + 342, + 342, + 107, + 107, + 107, + 342, + 186, + 223, + 223, + 223, + 96, + 269, + 24, + 24, + 24, + 221, + 7, + 7, + 7, + 313, + 220, + 298, + 298, + 298, + 376, + 164, + 212, + 212, + 90, + 262, + 262, + 288, + 32, + 32, + 288, + 65, + 65, + 202, + 202, + 148, + 207, + 360, + 399, + 399, + 299, + 6, + 307, + 307, + 307, + 307, + 210, + 327, + 266, + 252, + 342, + 82, + 82, + 256, + 256, + 24, + 380, + 380, + 194, + 194, + 328, + 104, + 230, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 390, + 390, + 390, + 158, + 176, + 91, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 229, + 165, + 165, + 297, + 133, + 189, + 135, + 271, + 271, + 271, + 85, + 40, + 40, + 170, + 170, + 170, + 170, + 122, + 215, + 122, + 142, + 142, + 142, + 288, + 288, + 288, + 142, + 198, + 106, + 122, + 363, + 363, + 122, + 105, + 242, + 242, + 242, + 105, + 105, + 105, + 281, + 281, + 281, + 86, + 272, + 272, + 16, + 16, + 16, + 372, + 372, + 372, + 372, + 188, + 386, + 189, + 284, + 103, + 389, + 389, + 195, + 195, + 277, + 277, + 120, + 120, + 293, + 293, + 293, + 293, + 194, + 214, + 187, + 187, + 235, + 235, + 235, + 43, + 258, + 147, + 147, + 315, + 315, + 109, + 213, + 185, + 373, + 189, + 343, + 343, + 119, + 119, + 245, + 245, + 245, + 245, + 245, + 78, + 78, + 301, + 301, + 301, + 301, + 301, + 301, + 173, + 229, + 229, + 73, + 347, + 162, + 310, + 310, + 310, + 18, + 209, + 209, + 161, + 161, + 376, + 194, + 328, + 328, + 328, + 148, + 396, + 396, + 396, + 396, + 396, + 396, + 83, + 379, + 379, + 200, + 200, + 256, + 14, + 14, + 14, + 236, + 123, + 123, + 345, + 345, + 345, + 345, + 345, + 32, + 32, + 32, + 32, + 390, + 194, + 286, + 286, + 189, + 204, + 204, + 204, + 204, + 49, + 286, + 31, + 217, + 217, + 217, + 96, + 96, + 96, + 96, + 352, + 352, + 188, + 359, + 359, + 129, + 320, + 81, + 81, + 81, + 81, + 330, + 10, + 10, + 10, + 10, + 10, + 222, + 157, + 157, + 157, + 157, + 346, + 37, + 37, + 296, + 149, + 330, + 122, + 122, + 122, + 122, + 254, + 167, + 339, + 339, + 167, + 167, + 245, + 245, + 57, + 253, + 253, + 253, + 81, + 81, + 81, + 81, + 81, + 319, + 18, + 368, + 146, + 146, + 146, + 258, + 19, + 348, + 348, + 131, + 131, + 201, + 54, + 359, + 359, + 359, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 287, + 287, + 287, + 287, + 287, + 287, + 142, + 338, + 17, + 363, + 130, + 340, + 340, + 340, + 182, + 182, + 182, + 182, + 182, + 182, + 369, + 47, + 47, + 47, + 47, + 381, + 381, + 381, + 76, + 315, + 315, + 315, + 315, + 315, + 315, + 85, + 85, + 243, + 153, + 153, + 351, + 115, + 115, + 115, + 300, + 300, + 300, + 300, + 300, + 300, + 16, + 372, + 372, + 372, + 173, + 173, + 303, + 167, + 332, + 110, + 110, + 110, + 110, + 309, + 195, + 363, + 129, + 259, + 173, + 173, + 173, + 229, + 195, + 307, + 307, + 307, + 49, + 256, + 234, + 126, + 334, + 334, + 385, + 156, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 46, + 46, + 46, + 46, + 46, + 362, + 104, + 352, + 352, + 171, + 171, + 171, + 217, + 12, + 371, + 133, + 372, + 372, + 372, + 185, + 346, + 9, + 9, + 9, + 9, + 9, + 9, + 219, + 177, + 177, + 177, + 177, + 399, + 399, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 286, + 91, + 91, + 91, + 256, + 256, + 256, + 36, + 36, + 242, + 106, + 265, + 169, + 169, + 169, + 169, + 169, + 169, + 169, + 238, + 12, + 270, + 270, + 270, + 270, + 161, + 161, + 366, + 366, + 182, + 182, + 182, + 355, + 54, + 54, + 54, + 54, + 329, + 329, + 162, + 213, + 199, + 303, + 68, + 68, + 68, + 68, + 68, + 396, + 161, + 258, + 0, + 203, + 174, + 174, + 174, + 174, + 382, + 382, + 382, + 182, + 182, + 342, + 189, + 246, + 246, + 175, + 370, + 101, + 389, + 389, + 389, + 389, + 57, + 57, + 304, + 304, + 304, + 304, + 304, + 169, + 275, + 122, + 122, + 243, + 79, + 296, + 28, + 351, + 170, + 170, + 170, + 170, + 397, + 115, + 115, + 283, + 11, + 11, + 209, + 209, + 68, + 301, + 301, + 301, + 19, + 19, + 19, + 374, + 374, + 130, + 252, + 55, + 55, + 219, + 131, + 131, + 286, + 171, + 171, + 171, + 171, + 171, + 330, + 165, + 260, + 260, + 260, + 81, + 395, + 395, + 54, + 253, + 65, + 65, + 377, + 194, + 194, + 194, + 194, + 194, + 194, + 334, + 34, + 34, + 34, + 363, + 85, + 347, + 13, + 13, + 354, + 354, + 0, + 266, + 98, + 98, + 220, + 220, + 220, + 134, + 187, + 326, + 47, + 47, + 180, + 380, + 380, + 75, + 75, + 75, + 75, + 193, + 191, + 136, + 136, + 397, + 397, + 84, + 260, + 123, + 201, + 67, + 379, + 53, + 269, + 269, + 76, + 353, + 353, + 353, + 165, + 336, + 336, + 336, + 336, + 21, + 21, + 21, + 209, + 59, + 328, + 328, + 190, + 190, + 190, + 190, + 190, + 190, + 386, + 386, + 42, + 42, + 251, + 251, + 142, + 389, + 389, + 158, + 352, + 108, + 108, + 243, + 243, + 142, + 142, + 142, + 142, + 142, + 142, + 264, + 75, + 75, + 331, + 331, + 171, + 171, + 397, + 160, + 273, + 130, + 130, + 130, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 170, + 283, + 102, + 102, + 262, + 262, + 262, + 19, + 19, + 284, + 284, + 284, + 284, + 284, + 284, + 36, + 365, + 365, + 365, + 150, + 246, + 246, + 246, + 148, + 148, + 324, + 324, + 109, + 324, + 150, + 265, + 152, + 152, + 264, + 264, + 153, + 153, + 153, + 338, + 338, + 146, + 293, + 293, + 116, + 397, + 9, + 356, + 356, + 356, + 29, + 29, + 29, + 29, + 229, + 83, + 247, + 247, + 247, + 161, + 234, + 234, + 98, + 322, + 90, + 90, + 366, + 366, + 366, + 102, + 102, + 26, + 212, + 212, + 3, + 3, + 322, + 80, + 7, + 7, + 7, + 321, + 7, + 320, + 65, + 65, + 92, + 263, + 74, + 91, + 91, + 131, + 36, + 36, + 365, + 365, + 4, + 105, + 310, + 310, + 310, + 23, + 224, + 150, + 150, + 150, + 350, + 350, + 350, + 350, + 92, + 92, + 92, + 92, + 92, + 295, + 159, + 397, + 108, + 317, + 317, + 317, + 138, + 138, + 138, + 138, + 356, + 178, + 324, + 324, + 324, + 118, + 295, + 295, + 295, + 295, + 151, + 344, + 363, + 363, + 35, + 35, + 363, + 363, + 363, + 151, + 151, + 236, + 211, + 211, + 266, + 3, + 385, + 123, + 318, + 318, + 318, + 40, + 113, + 349, + 349, + 16, + 355, + 355, + 221, + 149, + 221, + 138, + 138, + 138, + 138, + 292, + 92, + 92, + 92, + 208, + 208, + 208, + 208, + 111, + 111, + 111, + 347, + 347, + 152, + 152, + 239, + 239, + 129, + 129, + 303, + 142, + 142, + 142, + 225, + 225, + 38, + 321, + 321, + 104, + 253, + 171, + 235, + 235, + 235, + 235, + 72, + 353, + 130, + 130, + 294, + 176, + 226, + 387, + 102, + 102, + 102, + 387, + 95, + 95, + 95, + 95, + 95, + 237, + 237, + 237, + 237, + 11, + 350, + 350, + 350, + 29, + 29, + 29, + 320, + 320, + 155, + 155, + 385, + 385, + 126, + 176, + 176, + 176, + 2, + 2, + 4, + 4, + 4, + 4, + 22, + 387, + 152, + 152, + 203, + 31, + 230, + 230, + 230, + 170, + 170, + 170, + 80, + 80, + 11, + 86, + 86, + 92, + 92, + 92, + 327, + 92, + 92, + 90, + 90, + 90, + 122, + 122, + 122, + 122, + 122, + 87, + 0, + 72, + 353, + 72, + 298, + 298, + 101, + 101, + 101, + 101, + 101, + 101, + 101, + 335, + 335, + 335, + 335, + 335, + 182, + 382, + 382, + 382, + 382, + 93, + 236, + 236, + 99, + 278, + 278, + 128, + 128, + 128, + 297, + 77, + 235, + 235, + 235, + 40, + 337, + 41, + 41, + 41, + 267, + 267, + 267, + 267, + 126, + 126, + 126, + 126, + 210, + 176, + 377, + 1, + 1, + 223, + 223, + 223, + 66, + 66, + 243, + 243, + 243, + 152, + 321, + 135, + 135, + 135, + 337, + 337, + 337, + 337, + 21, + 327, + 192, + 192, + 192, + 192, + 192, + 192, + 340, + 50, + 50, + 50, + 50, + 284, + 28, + 28, + 279, + 48, + 239, + 99, + 99, + 283, + 283, + 77, + 77, + 265, + 265, + 265, + 25, + 216, + 37, + 373, + 373, + 373, + 373, + 185, + 185, + 254, + 69, + 322, + 196, + 196, + 196, + 196, + 196, + 353, + 86, + 244, + 177, + 177, + 375, + 375, + 64, + 64, + 336, + 336, + 55, + 55, + 55, + 55, + 207, + 74, + 241, + 194, + 194, + 194, + 194, + 194, + 194, + 273, + 273, + 166, + 166, + 348, + 348, + 348, + 348, + 79, + 79, + 216, + 216, + 163, + 163, + 163, + 237, + 237, + 2, + 2, + 2, + 285, + 188, + 188, + 188, + 188, + 188, + 188, + 188, + 208, + 208, + 71, + 71, + 342, + 342, + 61, + 61, + 61, + 219, + 138, + 138, + 213, + 213, + 15, + 334, + 161, + 392, + 121, + 349, + 171, + 378, + 378, + 378, + 378, + 378, + 378, + 137, + 247, + 247, + 247, + 247, + 247, + 197, + 197, + 197, + 258, + 258, + 36, + 226, + 226, + 226, + 5, + 5, + 5, + 292, + 292, + 100, + 259, + 161, + 348, + 29, + 29, + 197, + 118, + 118, + 118, + 118, + 118, + 25, + 25, + 16, + 22, + 22, + 146, + 146, + 4, + 123, + 117, + 117, + 117, + 84, + 84, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 355, + 355, + 56, + 56, + 56, + 56, + 206, + 169, + 169, + 214, + 214, + 214, + 214, + 371, + 258, + 254, + 196, + 196, + 196, + 378, + 378, + 378, + 378, + 378, + 97, + 97, + 224, + 224, + 224, + 146, + 146, + 292, + 119, + 216, + 216, + 216, + 216, + 216, + 5, + 292, + 292, + 36, + 298, + 298, + 298, + 298, + 298, + 298, + 298, + 298, + 91, + 91, + 91, + 91, + 223, + 223, + 223, + 136, + 136, + 136, + 136, + 136, + 251, + 194, + 194, + 194, + 384, + 384, + 139, + 139, + 139, + 139, + 139, + 298, + 104, + 397, + 397, + 168, + 168, + 168, + 211, + 211, + 106, + 317, + 101, + 237, + 237, + 237, + 184, + 333, + 333, + 88, + 88, + 207, + 207, + 207, + 193, + 193, + 193, + 193, + 193, + 193, + 329, + 115, + 360, + 36, + 36, + 313, + 313, + 313, + 313, + 313, + 313, + 313, + 147, + 147, + 387, + 387, + 387, + 72, + 279, + 140, + 340, + 340, + 38, + 38, + 297, + 184, + 227, + 227, + 61, + 61, + 61, + 61, + 334, + 190, + 331, + 56, + 56, + 291, + 108, + 205, + 205, + 205, + 28, + 28, + 333, + 333, + 333, + 119, + 225, + 225, + 15, + 375, + 375, + 125, + 283, + 38, + 38, + 38, + 281, + 24, + 24, + 24, + 24, + 24, + 274, + 274, + 190, + 190, + 190, + 338, + 8, + 322, + 322, + 111, + 213, + 274, + 274, + 383, + 170, + 170, + 170, + 383, + 383, + 383, + 383, + 81, + 81, + 234, + 234, + 234, + 234, + 85, + 85, + 85, + 366, + 366, + 366, + 172, + 286, + 110, + 110, + 228, + 162, + 162, + 322, + 3, + 3, + 3, + 317, + 77, + 318, + 318, + 318, + 77, + 307, + 20, + 348, + 348, + 42, + 253, + 348, + 348, + 311, + 294, + 294, + 335, + 172, + 172, + 335, + 335, + 335, + 197, + 381, + 381, + 381, + 381, + 381, + 285, + 285, + 285, + 285, + 285, + 285, + 384, + 384, + 384, + 377, + 353, + 342, + 342, + 362, + 362, + 276, + 276, + 283, + 283, + 103, + 103, + 103, + 103, + 303, + 87, + 336, + 336, + 135, + 135, + 135, + 348, + 348, + 143, + 233, + 35, + 267, + 267, + 267, + 59, + 219, + 59, + 59, + 59, + 396, + 396, + 179, + 179, + 179, + 389, + 389, + 135, + 324, + 89, + 89, + 89, + 89, + 89, + 89, + 89, + 89, + 321, + 183, + 294, + 84, + 350, + 350, + 198, + 198, + 345, + 345, + 74, + 74, + 249, + 90, + 243, + 140, + 140, + 140, + 140, + 140, + 261, + 261, + 261, + 161, + 383, + 383, + 118, + 334, + 49, + 354, + 45, + 240, + 240, + 240, + 240, + 240, + 240, + 240, + 186, + 186, + 284, + 143, + 300, + 189, + 189, + 189, + 306, + 306, + 182, + 265, + 180, + 180, + 180, + 398, + 78, + 353, + 192, + 192, + 192, + 192, + 192, + 192, + 211, + 211, + 136, + 305, + 155, + 318, + 318, + 198, + 23, + 23, + 280, + 43, + 43, + 43, + 43, + 12, + 215, + 141, + 141, + 87, + 87, + 87, + 330, + 330, + 149, + 214, + 50, + 50, + 116, + 116, + 116, + 116, + 216, + 216, + 216, + 194, + 350, + 350, + 199, + 326, + 184, + 184, + 184, + 184, + 184, + 376, + 376, + 120, + 120, + 120, + 120, + 320, + 320, + 182, + 398, + 31, + 263, + 263, + 56, + 56, + 297, + 186, + 186, + 186, + 186, + 186, + 186, + 343, + 1, + 1, + 320, + 320, + 11, + 363, + 189, + 189, + 377, + 377, + 170, + 170, + 170, + 307, + 307, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 381, + 381, + 138, + 241, + 241, + 148, + 148, + 388, + 388, + 388, + 129, + 129, + 129, + 129, + 303, + 98, + 98, + 368, + 83, + 83, + 83, + 83, + 83, + 203, + 203, + 203, + 203, + 138, + 138, + 358, + 149, + 399, + 399, + 399, + 399, + 189, + 189, + 189, + 233, + 84, + 216, + 1, + 1, + 1, + 1, + 1, + 216, + 216, + 183, + 368, + 179, + 14, + 119, + 84, + 118, + 118, + 4, + 4, + 362, + 362, + 49, + 49, + 49, + 223, + 223, + 49, + 202, + 119, + 119, + 119, + 215, + 28, + 28, + 383, + 69, + 69, + 358, + 28, + 288, + 27, + 358, + 21, + 21, + 21, + 21, + 21, + 355, + 355, + 94, + 358, + 358, + 112, + 348, + 128, + 388, + 388, + 156, + 115, + 135, + 247, + 135, + 370, + 370, + 72, + 72, + 293, + 293, + 173, + 367, + 367, + 367, + 10, + 130, + 83, + 30, + 181, + 111, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 185, + 335, + 335, + 47, + 339, + 339, + 42, + 239, + 122, + 122, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 187, + 187, + 399, + 22, + 9, + 156, + 156, + 79, + 328, + 79, + 79, + 339, + 145, + 145, + 56, + 56, + 320, + 56, + 282, + 282, + 282, + 282, + 282, + 61, + 61, + 61, + 61, + 61, + 249, + 249, + 249, + 249, + 249, + 2, + 2, + 288, + 137, + 137, + 354, + 354, + 15, + 15, + 228, + 228, + 12, + 12, + 12, + 226, + 226, + 120, + 309, + 309, + 309, + 39, + 286, + 180, + 180, + 180, + 180, + 314, + 314, + 314, + 48, + 239, + 239, + 278, + 25, + 25, + 25, + 269, + 139, + 337, + 294, + 294, + 354, + 309, + 376, + 125, + 237, + 63, + 63, + 350, + 350, + 71, + 375, + 40, + 40, + 40, + 40, + 222, + 222, + 222, + 20, + 20, + 268, + 109, + 380, + 59, + 221, + 124, + 124, + 124, + 296, + 296, + 296, + 296, + 147, + 394, + 108, + 108, + 213, + 213, + 197, + 288, + 288, + 74, + 74, + 74, + 277, + 277, + 277, + 107, + 395, + 193, + 193, + 339, + 283, + 365, + 248, + 71, + 71, + 308, + 399, + 93, + 399, + 399, + 399, + 101, + 101, + 365, + 346, + 393, + 195, + 195, + 195, + 195, + 195, + 236, + 163, + 163, + 163, + 396, + 28, + 273, + 273, + 36, + 36, + 269, + 113, + 113, + 113, + 113, + 113, + 223, + 223, + 191, + 318, + 161, + 161, + 371, + 135, + 264, + 264, + 264, + 264, + 141, + 141, + 141, + 141, + 141, + 141, + 385, + 385, + 57, + 202, + 111, + 398, + 398, + 398, + 25, + 25, + 331, + 133, + 133, + 133, + 133, + 133, + 133, + 133, + 375, + 146, + 146, + 231, + 161, + 388, + 388, + 105, + 105, + 340, + 340, + 340, + 340, + 5, + 265, + 265, + 265, + 265, + 265, + 41, + 382, + 187, + 251, + 96, + 245, + 245, + 150, + 150, + 224, + 95, + 294, + 294, + 140, + 304, + 304, + 304, + 304, + 163, + 241, + 11, + 301, + 179, + 361, + 5, + 5, + 5, + 5, + 5, + 369, + 369, + 141, + 350, + 350, + 350, + 51, + 396, + 190, + 334, + 16, + 16, + 16, + 16, + 294, + 294, + 294, + 189, + 318, + 318, + 318, + 318, + 318, + 197, + 298, + 151, + 306, + 306, + 306, + 198, + 251, + 251, + 251, + 251, + 251, + 251, + 6, + 6, + 318, + 318, + 31, + 240, + 93, + 93, + 93, + 93, + 93, + 202, + 202, + 202, + 89, + 317, + 104, + 340, + 33, + 33, + 222, + 222, + 179, + 179, + 179, + 179, + 179, + 179, + 179, + 179, + 224, + 160, + 160, + 335, + 335, + 335, + 103, + 103, + 301, + 155, + 203, + 169, + 340, + 340, + 80, + 311, + 53, + 234, + 149, + 279, + 279, + 17, + 201, + 164, + 164, + 12, + 94, + 94, + 94, + 94, + 94, + 155, + 113, + 175, + 290, + 290, + 290, + 290, + 290, + 175, + 175, + 276, + 145, + 187, + 336, + 336, + 187, + 187, + 187, + 187, + 363, + 363, + 152, + 282, + 282, + 60, + 359, + 54, + 54, + 369, + 70, + 346, + 98, + 98, + 341, + 49, + 312, + 203, + 203, + 203, + 201, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 1, + 363, + 363, + 166, + 14, + 208, + 208, + 208, + 65, + 65, + 65, + 303, + 147, + 147, + 382, + 382, + 382, + 382, + 170, + 170, + 170, + 388, + 388, + 388, + 44, + 44, + 44, + 44, + 212, + 15, + 393, + 393, + 393, + 191, + 199, + 199, + 45, + 45, + 45, + 45, + 45, + 45, + 95, + 95, + 95, + 349, + 74, + 74, + 74, + 74, + 366, + 366, + 126, + 393, + 393, + 97, + 353, + 79, + 237, + 73, + 73, + 73, + 73, + 73, + 259, + 259, + 259, + 259, + 115, + 115, + 277, + 40, + 40, + 260, + 138, + 374, + 3, + 313, + 313, + 313, + 305, + 36, + 305, + 391, + 152, + 152, + 295, + 295, + 111, + 243, + 243, + 243, + 243, + 147, + 147, + 356, + 356, + 356, + 356, + 160, + 160, + 238, + 18, + 18, + 217, + 352, + 352, + 53, + 352, + 352, + 18, + 18, + 267, + 67, + 67, + 67, + 126, + 351, + 351, + 351, + 351, + 126, + 345, + 36, + 36, + 323, + 323, + 27, + 27, + 272, + 272, + 272, + 45, + 211, + 99, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 27, + 232, + 36, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 355, + 355, + 21, + 378, + 7, + 283, + 283, + 283, + 283, + 142, + 270, + 270, + 111, + 111, + 374, + 374, + 69, + 69, + 69, + 69, + 313, + 313, + 48, + 48, + 48, + 48, + 48, + 340, + 340, + 340, + 122, + 210, + 38, + 38, + 38, + 229, + 103, + 272, + 69, + 307, + 307, + 307, + 175, + 175, + 175, + 232, + 232, + 136, + 216, + 216, + 160, + 160, + 399, + 116, + 225, + 225, + 44, + 44, + 44, + 382, + 49, + 49, + 49, + 218, + 218, + 218, + 218, + 218, + 199, + 199, + 199, + 199, + 316, + 151, + 151, + 230, + 36, + 36, + 36, + 366, + 63, + 370, + 121, + 121, + 121, + 121, + 121, + 121, + 240, + 240, + 240, + 112, + 112, + 112, + 251, + 251, + 251, + 251, + 251, + 251, + 195, + 227, + 227, + 154, + 154, + 273, + 273, + 273, + 0, + 325, + 32, + 312, + 189, + 189, + 189, + 189, + 189, + 322, + 322, + 322, + 123, + 123, + 123, + 319, + 61, + 285, + 156, + 156, + 156, + 301, + 127, + 253, + 130, + 239, + 239, + 239, + 239, + 239, + 239, + 239, + 77, + 374, + 89, + 89, + 237, + 65, + 65, + 65, + 393, + 399, + 399, + 202, + 202, + 335, + 335, + 308, + 308, + 308, + 308, + 308, + 308, + 72, + 308, + 361, + 82, + 361, + 361, + 209, + 290, + 385, + 385, + 292, + 370, + 370, + 370, + 235, + 180, + 180, + 203, + 203, + 203, + 93, + 245, + 245, + 295, + 295, + 295, + 366, + 152, + 152, + 207, + 207, + 77, + 180, + 104, + 344, + 157, + 383, + 383, + 383, + 383, + 9, + 9, + 9, + 220, + 220, + 20, + 20, + 20, + 158, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 201, + 201, + 201, + 201, + 201, + 201, + 71, + 258, + 120, + 208, + 13, + 13, + 310, + 162, + 333, + 333, + 337, + 337, + 269, + 269, + 269, + 180, + 269, + 269, + 269, + 83, + 40, + 98, + 63, + 370, + 370, + 370, + 86, + 366, + 366, + 186, + 186, + 241, + 31, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 26, + 321, + 321, + 394, + 394, + 237, + 391, + 290, + 51, + 322, + 39, + 313, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 285, + 47, + 47, + 47, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 328, + 328, + 328, + 328, + 100, + 100, + 230, + 230, + 196, + 196, + 226, + 138, + 138, + 138, + 138, + 138, + 138, + 204, + 39, + 39, + 397, + 192, + 10, + 10, + 101, + 282, + 101, + 101, + 261, + 261, + 261, + 261, + 396, + 214, + 214, + 236, + 236, + 236, + 76, + 76, + 76, + 236, + 363, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 279, + 279, + 279, + 136, + 211, + 174, + 223, + 219, + 286, + 144, + 144, + 144, + 286, + 169, + 169, + 387, + 387, + 145, + 119, + 97, + 97, + 97, + 97, + 97, + 97, + 203, + 203, + 97, + 97, + 97, + 145, + 232, + 232, + 145, + 229, + 152, + 152, + 152, + 256, + 39, + 39, + 381, + 381, + 87, + 176, + 128, + 7, + 260, + 260, + 260, + 37, + 37, + 37, + 254, + 44, + 44, + 44, + 44, + 382, + 80, + 296, + 139, + 221, + 221, + 221, + 65, + 65, + 392, + 392, + 392, + 197, + 315, + 55, + 55, + 55, + 55, + 55, + 55, + 381, + 19, + 19, + 19, + 324, + 324, + 324, + 324, + 100, + 36, + 36, + 34, + 243, + 34, + 34, + 34, + 34, + 393, + 393, + 393, + 54, + 261, + 261, + 261, + 261, + 261, + 189, + 315, + 315, + 65, + 312, + 137, + 137, + 137, + 137, + 63, + 231, + 169, + 169, + 169, + 188, + 168, + 107, + 351, + 351, + 106, + 106, + 150, + 187, + 301, + 113, + 113, + 304, + 56, + 62, + 62, + 291, + 62, + 237, + 237, + 237, + 194, + 194, + 194, + 194, + 194, + 355, + 355, + 145, + 145, + 145, + 145, + 216, + 173, + 173, + 173, + 173, + 282, + 180, + 180, + 180, + 180, + 206, + 206, + 206, + 101, + 101, + 101, + 101, + 101, + 329, + 329, + 90, + 398, + 136, + 136, + 136, + 281, + 180, + 296, + 176, + 368, + 19, + 19, + 19, + 348, + 348, + 177, + 177, + 309, + 16, + 16, + 16, + 330, + 3, + 254, + 61, + 144, + 144, + 88, + 271, + 88, + 88, + 88, + 269, + 142, + 142, + 254, + 141, + 322, + 322, + 151, + 151, + 21, + 36, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 306, + 306, + 72, + 344, + 13, + 260, + 62, + 56, + 56, + 26, + 170, + 170, + 170, + 2, + 86, + 86, + 86, + 202, + 86, + 362, + 362, + 151, + 289, + 289, + 172, + 172, + 66, + 66, + 154, + 21, + 148, + 22, + 22, + 134, + 134, + 162, + 389, + 34, + 34, + 250, + 146, + 346, + 200, + 200, + 390, + 390, + 390, + 390, + 390, + 200, + 110, + 136, + 136, + 282, + 252, + 252, + 252, + 252, + 252, + 158, + 158, + 252, + 252, + 46, + 46, + 320, + 253, + 240, + 240, + 240, + 240, + 210, + 268, + 220, + 27, + 27, + 27, + 27, + 300, + 165, + 165, + 252, + 252, + 114, + 114, + 236, + 39, + 39, + 39, + 39, + 307, + 307, + 307, + 307, + 307, + 74, + 74, + 74, + 74, + 74, + 279, + 279, + 61, + 61, + 61, + 61, + 262, + 24, + 24, + 24, + 393, + 66, + 66, + 283, + 283, + 283, + 283, + 140, + 140, + 140, + 140, + 140, + 354, + 354, + 1, + 1, + 321, + 321, + 100, + 100, + 314, + 90, + 90, + 286, + 99, + 309, + 309, + 82, + 86, + 86, + 116, + 116, + 116, + 161, + 161, + 161, + 161, + 161, + 16, + 76, + 151, + 180, + 180, + 180, + 180, + 180, + 129, + 113, + 330, + 152, + 152, + 152, + 152, + 107, + 354, + 107, + 107, + 107, + 13, + 394, + 13, + 13, + 13, + 13, + 41, + 188, + 189, + 148, + 361, + 361, + 361, + 145, + 112, + 106, + 370, + 370, + 106, + 279, + 279, + 62, + 229, + 229, + 229, + 229, + 114, + 114, + 391, + 391, + 90, + 90, + 90, + 283, + 59, + 59, + 59, + 400, + 400, + 400, + 400, + 41, + 275, + 89, + 89, + 89, + 89, + 89, + 300, + 300, + 84, + 84, + 334, + 194, + 194, + 252, + 111, + 379, + 379, + 139, + 206, + 148, + 337, + 337, + 337, + 181, + 253, + 253, + 17, + 17, + 17, + 17, + 17, + 254, + 140, + 306, + 99, + 99, + 99, + 99, + 99, + 270, + 81, + 264, + 200, + 200, + 396, + 72, + 72, + 72, + 209, + 209, + 209, + 209, + 67, + 342, + 342, + 342, + 342, + 342, + 144, + 202, + 162, + 313, + 313, + 24, + 24, + 357, + 357, + 357, + 148, + 148, + 212, + 162, + 202, + 35, + 35, + 35, + 35, + 346, + 154, + 308, + 308, + 101, + 206, + 206, + 122, + 122, + 122, + 122, + 122, + 122, + 335, + 335, + 133, + 133, + 256, + 256, + 67, + 380, + 88, + 303, + 303, + 164, + 264, + 264, + 264, + 49, + 242, + 242, + 52, + 52, + 260, + 147, + 255, + 36, + 393, + 393, + 34, + 34, + 34, + 34, + 34, + 34, + 251, + 251, + 29, + 29, + 331, + 331, + 331, + 331, + 331, + 75, + 377, + 377, + 91, + 91, + 91, + 348, + 348, + 166, + 166, + 371, + 102, + 379, + 379, + 379, + 95, + 95, + 319, + 319, + 319, + 319, + 319, + 97, + 358, + 358, + 174, + 289, + 289, + 99, + 99, + 390, + 85, + 85, + 85, + 288, + 288, + 164, + 355, + 355, + 355, + 23, + 279, + 120, + 241, + 116, + 116, + 363, + 363, + 363, + 363, + 363, + 180, + 180, + 387, + 387, + 387, + 387, + 47, + 240, + 240, + 120, + 120, + 216, + 216, + 216, + 125, + 125, + 356, + 187, + 390, + 116, + 116, + 116, + 219, + 219, + 219, + 219, + 219, + 219, + 219, + 219, + 62, + 62, + 62, + 207, + 207, + 199, + 199, + 298, + 115, + 115, + 256, + 256, + 0, + 373, + 373, + 54, + 54, + 54, + 54, + 54, + 54, + 355, + 39, + 39, + 229, + 24, + 326, + 199, + 199, + 199, + 199, + 287, + 287, + 189, + 253, + 253, + 253, + 253, + 104, + 287, + 287, + 184, + 331, + 331, + 47, + 47, + 275, + 275, + 275, + 142, + 323, + 323, + 323, + 149, + 149, + 384, + 95, + 305, + 186, + 186, + 186, + 367, + 37, + 211, + 98, + 291, + 291, + 162, + 162, + 382, + 382, + 135, + 135, + 269, + 269, + 269, + 269, + 3, + 257, + 85, + 85, + 301, + 96, + 335, + 335, + 335, + 57, + 260, + 81, + 372, + 372, + 372, + 372, + 102, + 280, + 280, + 130, + 130, + 130, + 320, + 163, + 163, + 163, + 163, + 394, + 179, + 263, + 82, + 82, + 234, + 234, + 29, + 29, + 302, + 21, + 213, + 142, + 142, + 216, + 16, + 16, + 229, + 136, + 136, + 263, + 263, + 130, + 278, + 278, + 278, + 173, + 397, + 109, + 336, + 336, + 336, + 336, + 336, + 336, + 189, + 189, + 362, + 362, + 86, + 245, + 245, + 245, + 245, + 188, + 188, + 243, + 15, + 15, + 15, + 15, + 211, + 211, + 140, + 140, + 140, + 314, + 314, + 106, + 336, + 336, + 336, + 336, + 120, + 120, + 120, + 120, + 120, + 120, + 120, + 120, + 319, + 82, + 209, + 149, + 379, + 198, + 369, + 170, + 383, + 383, + 383, + 383, + 151, + 253, + 195, + 195, + 195, + 195, + 238, + 63, + 63, + 326, + 142, + 334, + 19, + 19, + 19, + 19, + 19, + 327, + 327, + 327, + 327, + 29, + 29, + 29, + 267, + 267, + 267, + 267, + 10, + 330, + 199, + 207, + 207, + 207, + 50, + 255, + 255, + 255, + 58, + 239, + 239, + 239, + 239, + 78, + 78, + 78, + 78, + 276, + 276, + 12, + 213, + 161, + 161, + 161, + 161, + 161, + 364, + 109, + 109, + 392, + 392, + 180, + 381, + 381, + 381, + 198, + 230, + 92, + 335, + 335, + 335, + 39, + 367, + 106, + 106, + 209, + 209, + 164, + 191, + 358, + 191, + 195, + 140, + 174, + 253, + 174, + 174, + 252, + 252, + 56, + 56, + 279, + 279, + 279, + 86, + 241, + 241, + 87, + 87, + 87, + 240, + 194, + 194, + 194, + 328, + 328, + 4, + 4, + 271, + 271, + 271, + 176, + 176, + 176, + 239, + 239, + 96, + 96, + 96, + 378, + 139, + 321, + 70, + 257, + 20, + 323, + 323, + 323, + 130, + 370, + 73, + 73, + 260, + 260, + 57, + 57, + 57, + 57, + 57, + 217, + 17, + 236, + 150, + 150, + 150, + 150, + 150, + 228, + 182, + 292, + 292, + 123, + 390, + 29, + 374, + 57, + 57, + 57, + 302, + 24, + 24, + 288, + 172, + 172, + 266, + 92, + 304, + 2, + 384, + 384, + 153, + 153, + 254, + 254, + 254, + 254, + 254, + 254, + 156, + 207, + 207, + 207, + 45, + 301, + 301, + 167, + 167, + 167, + 167, + 394, + 1, + 1, + 1, + 1, + 332, + 332, + 151, + 354, + 199, + 199, + 268, + 9, + 9, + 149, + 149, + 149, + 149, + 149, + 149, + 302, + 302, + 149, + 232, + 232, + 232, + 232, + 232, + 155, + 155, + 330, + 330, + 330, + 26, + 26, + 26, + 26, + 269, + 269, + 17, + 330, + 330, + 187, + 187, + 187, + 339, + 339, + 186, + 186, + 238, + 238, + 28, + 323, + 323, + 323, + 50, + 316, + 199, + 331, + 21, + 21, + 270, + 114, + 114, + 217, + 64, + 379, + 379, + 144, + 371, + 147, + 397, + 397, + 183, + 183, + 183, + 342, + 0, + 0, + 0, + 210, + 127, + 127, + 315, + 140, + 140, + 377, + 85, + 293, + 293, + 48, + 48, + 48, + 227, + 142, + 142, + 142, + 142, + 285, + 285, + 165, + 165, + 165, + 330, + 330, + 330, + 101, + 101, + 398, + 5, + 5, + 5, + 255, + 175, + 239, + 239, + 12, + 12, + 339, + 339, + 92, + 265, + 194, + 194, + 342, + 342, + 342, + 342, + 34, + 388, + 192, + 297, + 297, + 297, + 297, + 297, + 31, + 31, + 31, + 31, + 395, + 66, + 281, + 281, + 281, + 281, + 51, + 51, + 282, + 282, + 84, + 84, + 255, + 182, + 182, + 182, + 182, + 384, + 384, + 119, + 400, + 400, + 400, + 132, + 363, + 200, + 200, + 200, + 380, + 68, + 346, + 346, + 43, + 43, + 317, + 76, + 263, + 263, + 126, + 215, + 215, + 172, + 353, + 353, + 188, + 188, + 188, + 279, + 64, + 287, + 139, + 333, + 333, + 333, + 366, + 392, + 255, + 168, + 168, + 255, + 255, + 86, + 342, + 342, + 69, + 323, + 264, + 264, + 264, + 264, + 264, + 19, + 235, + 149, + 149, + 149, + 149, + 149, + 149, + 371, + 123, + 388, + 359, + 255, + 255, + 255, + 255, + 327, + 327, + 274, + 57, + 274, + 274, + 181, + 310, + 310, + 310, + 310, + 56, + 56, + 56, + 364, + 34, + 250, + 250, + 250, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 116, + 116, + 266, + 54, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 251, + 32, + 215, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 388, + 244, + 244, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 121, + 121, + 204, + 204, + 204, + 145, + 145, + 281, + 281, + 281, + 144, + 144, + 144, + 144, + 334, + 334, + 334, + 26, + 338, + 338, + 130, + 211, + 197, + 232, + 40, + 40, + 40, + 40, + 40, + 217, + 39, + 39, + 295, + 295, + 295, + 132, + 347, + 8, + 244, + 244, + 244, + 131, + 131, + 131, + 131, + 131, + 131, + 299, + 42, + 42, + 254, + 108, + 108, + 108, + 108, + 253, + 253, + 5, + 232, + 232, + 76, + 76, + 315, + 315, + 65, + 65, + 65, + 204, + 71, + 322, + 322, + 68, + 397, + 397, + 397, + 397, + 397, + 97, + 97, + 97, + 97, + 395, + 31, + 31, + 286, + 75, + 330, + 183, + 249, + 249, + 249, + 249, + 249, + 108, + 108, + 108, + 108, + 108, + 108, + 108, + 398, + 398, + 398, + 12, + 12, + 12, + 12, + 12, + 355, + 23, + 295, + 168, + 168, + 349, + 349, + 166, + 166, + 166, + 274, + 274, + 274, + 274, + 182, + 217, + 150, + 150, + 341, + 341, + 175, + 175, + 175, + 212, + 212, + 125, + 386, + 386, + 386, + 146, + 146, + 146, + 273, + 273, + 273, + 33, + 33, + 206, + 166, + 166, + 166, + 201, + 201, + 194, + 194, + 336, + 336, + 336, + 336, + 37, + 37, + 339, + 40, + 325, + 49, + 49, + 367, + 367, + 24, + 246, + 140, + 140, + 140, + 140, + 334, + 334, + 100, + 100, + 330, + 131, + 209, + 209, + 72, + 72, + 72, + 242, + 131, + 131, + 398, + 398, + 398, + 67, + 340, + 111, + 314, + 314, + 314, + 194, + 248, + 73, + 372, + 372, + 192, + 192, + 315, + 0, + 269, + 269, + 186, + 224, + 140, + 140, + 366, + 6, + 273, + 24, + 388, + 388, + 145, + 145, + 240, + 240, + 138, + 138, + 138, + 249, + 249, + 167, + 167, + 365, + 157, + 157, + 157, + 157, + 354, + 78, + 78, + 78, + 346, + 174, + 324, + 324, + 179, + 179, + 179, + 179, + 179, + 268, + 87, + 319, + 319, + 177, + 177, + 177, + 177, + 345, + 91, + 394, + 91, + 91, + 340, + 340, + 340, + 16, + 316, + 316, + 316, + 152, + 152, + 363, + 148, + 148, + 148, + 148, + 247, + 16, + 16, + 16, + 249, + 249, + 30, + 361, + 361, + 60, + 371, + 132, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 146, + 263, + 187, + 187, + 187, + 187, + 210, + 25, + 25, + 25, + 25, + 202, + 202, + 202, + 202, + 202, + 144, + 375, + 131, + 203, + 203, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 274, + 274, + 96, + 96, + 96, + 96, + 256, + 34, + 295, + 295, + 0, + 385, + 385, + 385, + 385, + 188, + 309, + 309, + 309, + 76, + 76, + 76, + 76, + 76, + 212, + 212, + 212, + 142, + 142, + 142, + 237, + 237, + 237, + 237, + 237, + 237, + 113, + 257, + 257, + 59, + 59, + 382, + 382, + 77, + 77, + 77, + 77, + 308, + 149, + 149, + 231, + 143, + 143, + 143, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 66, + 294, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 379, + 379, + 199, + 199, + 199, + 199, + 224, + 224, + 224, + 224, + 166, + 166, + 166, + 166, + 166, + 245, + 55, + 385, + 385, + 25, + 329, + 329, + 167, + 355, + 169, + 169, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 48, + 251, + 251, + 251, + 124, + 323, + 323, + 323, + 323, + 323, + 60, + 60, + 216, + 216, + 139, + 288, + 199, + 199, + 225, + 225, + 225, + 225, + 225, + 14, + 14, + 14, + 311, + 193, + 265, + 265, + 265, + 5, + 5, + 224, + 224, + 224, + 24, + 392, + 26, + 26, + 26, + 314, + 314, + 310, + 385, + 364, + 400, + 216, + 216, + 380, + 356, + 356, + 358, + 358, + 312, + 312, + 221, + 367, + 367, + 79, + 367, + 113, + 113, + 113, + 242, + 72, + 72, + 72, + 72, + 72, + 229, + 229, + 99, + 99, + 319, + 319, + 319, + 319, + 144, + 144, + 307, + 307, + 58, + 278, + 278, + 278, + 278, + 278, + 278, + 155, + 155, + 346, + 346, + 346, + 45, + 261, + 261, + 261, + 166, + 263, + 56, + 56, + 317, + 36, + 36, + 254, + 254, + 178, + 178, + 280, + 280, + 60, + 60, + 256, + 18, + 18, + 216, + 260, + 51, + 51, + 51, + 260, + 92, + 277, + 92, + 92, + 92, + 329, + 22, + 22, + 22, + 331, + 331, + 148, + 232, + 23, + 23, + 23, + 316, + 243, + 319, + 76, + 76, + 76, + 76, + 364, + 364, + 44, + 44, + 44, + 360, + 120, + 227, + 227, + 227, + 227, + 227, + 125, + 214, + 214, + 83, + 266, + 266, + 160, + 333, + 333, + 336, + 202, + 202, + 194, + 202, + 182, + 393, + 15, + 15, + 15, + 15, + 385, + 72, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 150, + 150, + 150, + 384, + 116, + 116, + 307, + 111, + 111, + 111, + 111, + 259, + 259, + 259, + 259, + 259, + 384, + 266, + 352, + 349, + 349, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 193, + 193, + 202, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 333, + 333, + 33, + 33, + 33, + 33, + 304, + 304, + 304, + 178, + 178, + 178, + 254, + 316, + 169, + 169, + 169, + 400, + 201, + 201, + 201, + 376, + 376, + 254, + 136, + 136, + 136, + 254, + 21, + 21, + 21, + 21, + 21, + 341, + 198, + 198, + 198, + 247, + 114, + 302, + 100, + 100, + 100, + 100, + 373, + 200, + 200, + 286, + 286, + 286, + 141, + 296, + 296, + 296, + 139, + 372, + 114, + 267, + 267, + 82, + 82, + 262, + 73, + 291, + 291, + 284, + 284, + 284, + 266, + 266, + 266, + 193, + 266, + 222, + 216, + 216, + 169, + 169, + 245, + 29, + 372, + 200, + 309, + 46, + 369, + 369, + 369, + 369, + 369, + 193, + 193, + 246, + 246, + 15, + 15, + 383, + 22, + 282, + 268, + 268, + 268, + 283, + 370, + 370, + 377, + 377, + 377, + 312, + 312, + 62, + 397, + 397, + 397, + 392, + 392, + 392, + 344, + 246, + 104, + 396, + 162, + 162, + 162, + 201, + 201, + 22, + 259, + 259, + 15, + 15, + 15, + 275, + 171, + 171, + 171, + 171, + 323, + 19, + 374, + 374, + 374, + 374, + 161, + 319, + 49, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 89, + 89, + 89, + 212, + 212, + 212, + 190, + 190, + 222, + 99, + 99, + 251, + 251, + 131, + 131, + 254, + 42, + 42, + 42, + 42, + 372, + 372, + 169, + 169, + 301, + 301, + 301, + 301, + 13, + 13, + 283, + 153, + 276, + 276, + 276, + 98, + 279, + 38, + 281, + 13, + 340, + 131, + 131, + 298, + 158, + 158, + 158, + 158, + 249, + 249, + 249, + 249, + 137, + 354, + 354, + 354, + 354, + 28, + 28, + 237, + 237, + 237, + 17, + 17, + 17, + 289, + 289, + 157, + 391, + 391, + 23, + 344, + 159, + 159, + 228, + 228, + 228, + 181, + 225, + 53, + 53, + 53, + 53, + 53, + 359, + 359, + 359, + 359, + 83, + 326, + 326, + 326, + 100, + 100, + 325, + 181, + 319, + 319, + 142, + 234, + 234, + 19, + 239, + 239, + 0, + 345, + 345, + 141, + 215, + 396, + 396, + 227, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 117, + 81, + 81, + 81, + 81, + 117, + 117, + 17, + 6, + 6, + 285, + 285, + 329, + 40, + 319, + 252, + 56, + 252, + 252, + 252, + 4, + 4, + 250, + 367, + 9, + 367, + 194, + 194, + 194, + 194, + 278, + 128, + 234, + 234, + 234, + 101, + 101, + 220, + 220, + 55, + 220, + 24, + 361, + 361, + 71, + 71, + 71, + 71, + 71, + 260, + 30, + 30, + 30, + 30, + 354, + 29, + 29, + 204, + 204, + 15, + 15, + 217, + 217, + 217, + 217, + 181, + 181, + 267, + 267, + 267, + 93, + 93, + 93, + 93, + 93, + 93, + 93, + 294, + 294, + 294, + 294, + 294, + 294, + 294, + 107, + 107, + 278, + 278, + 278, + 9, + 203, + 133, + 133, + 230, + 154, + 154, + 318, + 318, + 318, + 85, + 357, + 169, + 270, + 270, + 270, + 194, + 194, + 282, + 5, + 5, + 352, + 352, + 352, + 92, + 92, + 92, + 92, + 253, + 57, + 217, + 217, + 38, + 334, + 334, + 127, + 206, + 206, + 206, + 94, + 94, + 163, + 163, + 237, + 22, + 73, + 73, + 188, + 188, + 331, + 331, + 55, + 339, + 339, + 125, + 125, + 111, + 111, + 235, + 235, + 235, + 235, + 163, + 324, + 145, + 254, + 254, + 189, + 189, + 189, + 239, + 78, + 111, + 315, + 315, + 315, + 111, + 365, + 365, + 365, + 161, + 46, + 46, + 90, + 274, + 274, + 154, + 2, + 2, + 291, + 291, + 2, + 2, + 2, + 186, + 119, + 336, + 102, + 102, + 340, + 116, + 238, + 238, + 238, + 238, + 31, + 31, + 31, + 350, + 350, + 350, + 88, + 88, + 376, + 159, + 159, + 323, + 147, + 308, + 112, + 112, + 262, + 94, + 260, + 138, + 286, + 286, + 49, + 49, + 221, + 95, + 95, + 95, + 241, + 241, + 127, + 320, + 70, + 352, + 352, + 352, + 151, + 213, + 8, + 8, + 8, + 8, + 8, + 8, + 367, + 367, + 297, + 297, + 319, + 319, + 284, + 284, + 284, + 163, + 247, + 247, + 247, + 247, + 247, + 247, + 171, + 171, + 171, + 224, + 188, + 188, + 188, + 188, + 304, + 23, + 332, + 332, + 332, + 332, + 332, + 332, + 34, + 34, + 246, + 24, + 296, + 110, + 372, + 49, + 49, + 257, + 23, + 395, + 395, + 395, + 395, + 181, + 181, + 181, + 318, + 125, + 270, + 385, + 333, + 165, + 165, + 333, + 333, + 333, + 145, + 112, + 174, + 174, + 174, + 249, + 174, + 148, + 148, + 148, + 110, + 110, + 110, + 110, + 111, + 86, + 38, + 90, + 373, + 134, + 258, + 258, + 171, + 243, + 243, + 243, + 243, + 243, + 179, + 296, + 3, + 3, + 3, + 262, + 262, + 262, + 177, + 326, + 326, + 1, + 324, + 324, + 77, + 77, + 77, + 77, + 77, + 378, + 187, + 187, + 376, + 81, + 297, + 297, + 95, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 100, + 100, + 100, + 341, + 341, + 341, + 37, + 342, + 342, + 342, + 342, + 342, + 149, + 322, + 80, + 325, + 325, + 150, + 150, + 150, + 253, + 137, + 137, + 137, + 137, + 360, + 121, + 219, + 172, + 172, + 215, + 215, + 215, + 215, + 215, + 190, + 190, + 212, + 61, + 61, + 61, + 221, + 7, + 383, + 383, + 383, + 101, + 326, + 326, + 68, + 68, + 68, + 68, + 68, + 356, + 356, + 356, + 356, + 356, + 356, + 127, + 257, + 33, + 370, + 128, + 288, + 288, + 288, + 288, + 137, + 236, + 60, + 213, + 213, + 213, + 193, + 130, + 208, + 208, + 130, + 276, + 276, + 276, + 54, + 54, + 239, + 70, + 70, + 270, + 111, + 314, + 314, + 314, + 198, + 198, + 198, + 198, + 198, + 389, + 389, + 389, + 108, + 389, + 389, + 33, + 370, + 370, + 107, + 208, + 56, + 374, + 374, + 25, + 25, + 25, + 119, + 105, + 374, + 374, + 105, + 105, + 105, + 387, + 387, + 387, + 387, + 387, + 14, + 14, + 318, + 90, + 90, + 90, + 90, + 241, + 241, + 241, + 241, + 241, + 94, + 373, + 373, + 373, + 373, + 51, + 250, + 250, + 250, + 250, + 97, + 242, + 242, + 58, + 323, + 38, + 38, + 385, + 385, + 385, + 30, + 229, + 189, + 189, + 271, + 191, + 191, + 296, + 296, + 72, + 335, + 335, + 133, + 133, + 133, + 258, + 258, + 258, + 258, + 258, + 47, + 211, + 211, + 211, + 161, + 161, + 161, + 161, + 209, + 143, + 361, + 2, + 153, + 153, + 153, + 396, + 153, + 153, + 163, + 163, + 67, + 164, + 154, + 313, + 227, + 227, + 169, + 169, + 169, + 169, + 169, + 169, + 271, + 164, + 330, + 163, + 163, + 163, + 347, + 107, + 107, + 107, + 107, + 319, + 79, + 285, + 130, + 130, + 130, + 130, + 300, + 300, + 107, + 107, + 107, + 107, + 107, + 107, + 299, + 299, + 299, + 299, + 108, + 288, + 35, + 222, + 397, + 204, + 327, + 336, + 129, + 129, + 129, + 129, + 323, + 192, + 262, + 154, + 244, + 244, + 144, + 283, + 283, + 224, + 115, + 115, + 224, + 371, + 257, + 334, + 334, + 334, + 213, + 175, + 175, + 301, + 84, + 84, + 84, + 276, + 276, + 171, + 171, + 51, + 117, + 290, + 290, + 117, + 233, + 181, + 363, + 363, + 363, + 363, + 34, + 34, + 295, + 149, + 380, + 195, + 195, + 336, + 121, + 190, + 133, + 35, + 48, + 88, + 88, + 88, + 88, + 186, + 367, + 367, + 124, + 124, + 363, + 363, + 100, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 195, + 222, + 222, + 222, + 222, + 83, + 298, + 298, + 384, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 203, + 128, + 128, + 219, + 39, + 379, + 243, + 269, + 23, + 23, + 46, + 15, + 278, + 144, + 144, + 218, + 218, + 304, + 271, + 57, + 271, + 16, + 16, + 375, + 42, + 397, + 327, + 25, + 25, + 318, + 129, + 377, + 377, + 377, + 377, + 377, + 34, + 34, + 34, + 244, + 196, + 68, + 283, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 201, + 130, + 130, + 364, + 30, + 264, + 26, + 26, + 234, + 19, + 19, + 19, + 207, + 207, + 18, + 338, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 123, + 284, + 123, + 376, + 15, + 15, + 245, + 68, + 266, + 199, + 199, + 199, + 199, + 304, + 304, + 304, + 78, + 78, + 78, + 303, + 203, + 203, + 301, + 301, + 153, + 353, + 353, + 102, + 102, + 102, + 102, + 102, + 238, + 238, + 180, + 207, + 207, + 207, + 119, + 119, + 318, + 32, + 32, + 32, + 32, + 307, + 121, + 287, + 153, + 240, + 191, + 191, + 191, + 373, + 373, + 373, + 183, + 298, + 61, + 369, + 1, + 1, + 182, + 182, + 182, + 285, + 285, + 285, + 285, + 285, + 182, + 228, + 197, + 316, + 177, + 177, + 32, + 276, + 32, + 32, + 32, + 32, + 32, + 32, + 344, + 344, + 103, + 103, + 260, + 73, + 351, + 351, + 351, + 351, + 351, + 189, + 189, + 252, + 183, + 80, + 110, + 110, + 110, + 156, + 65, + 107, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 291, + 291, + 291, + 54, + 54, + 284, + 284, + 116, + 116, + 300, + 300, + 194, + 34, + 392, + 194, + 194, + 194, + 307, + 307, + 307, + 96, + 161, + 79, + 92, + 155, + 290, + 290, + 171, + 171, + 326, + 63, + 306, + 306, + 306, + 306, + 97, + 97, + 97, + 262, + 262, + 159, + 230, + 25, + 25, + 269, + 32, + 32, + 358, + 358, + 80, + 266, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 102, + 312, + 312, + 312, + 312, + 312, + 368, + 368, + 368, + 124, + 124, + 367, + 123, + 123, + 123, + 123, + 123, + 391, + 391, + 391, + 391, + 391, + 391, + 391, + 73, + 278, + 77, + 77, + 77, + 77, + 225, + 225, + 47, + 47, + 207, + 207, + 123, + 123, + 201, + 177, + 177, + 177, + 177, + 177, + 177, + 177, + 177, + 387, + 102, + 344, + 344, + 32, + 210, + 7, + 22, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 77, + 234, + 38, + 233, + 84, + 84, + 84, + 387, + 387, + 143, + 363, + 363, + 128, + 79, + 14, + 14, + 14, + 22, + 22, + 203, + 203, + 22, + 310, + 188, + 222, + 118, + 118, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 196, + 314, + 314, + 314, + 314, + 314, + 314, + 49, + 391, + 391, + 54, + 54, + 385, + 385, + 164, + 164, + 346, + 346, + 346, + 84, + 127, + 82, + 82, + 363, + 82, + 82, + 82, + 82, + 82, + 82, + 281, + 281, + 179, + 292, + 292, + 165, + 165, + 165, + 289, + 289, + 47, + 314, + 314, + 59, + 59, + 399, + 97, + 97, + 321, + 38, + 373, + 99, + 99, + 236, + 75, + 75, + 75, + 75, + 324, + 324, + 324, + 98, + 98, + 98, + 221, + 172, + 382, + 26, + 224, + 98, + 308, + 308, + 123, + 123, + 298, + 298, + 7, + 7, + 7, + 7, + 7, + 293, + 15, + 15, + 15, + 261, + 168, + 309, + 93, + 93, + 93, + 285, + 192, + 192, + 192, + 356, + 24, + 314, + 314, + 169, + 389, + 389, + 0, + 236, + 282, + 357, + 357, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 393, + 62, + 207, + 384, + 300, + 319, + 319, + 319, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 53, + 296, + 8, + 353, + 37, + 37, + 37, + 395, + 395, + 130, + 130, + 130, + 206, + 109, + 316, + 224, + 43, + 43, + 43, + 43, + 224, + 224, + 343, + 343, + 270, + 96, + 270, + 238, + 169, + 238, + 238, + 195, + 195, + 257, + 32, + 334, + 334, + 334, + 56, + 56, + 348, + 348, + 348, + 348, + 348, + 348, + 126, + 223, + 223, + 223, + 223, + 155, + 155, + 155, + 155, + 354, + 61, + 61, + 61, + 397, + 186, + 186, + 240, + 240, + 14, + 230, + 62, + 397, + 397, + 397, + 130, + 258, + 258, + 207, + 161, + 161, + 232, + 189, + 189, + 189, + 209, + 209, + 104, + 391, + 306, + 203, + 178, + 178, + 203, + 203, + 203, + 203, + 367, + 50, + 50, + 257, + 370, + 370, + 370, + 303, + 303, + 303, + 303, + 231, + 231, + 231, + 231, + 231, + 231, + 231, + 231, + 250, + 250, + 66, + 211, + 291, + 291, + 291, + 291, + 291, + 291, + 386, + 386, + 386, + 194, + 386, + 386, + 386, + 152, + 355, + 375, + 375, + 214, + 214, + 392, + 392, + 392, + 55, + 254, + 254, + 254, + 391, + 95, + 95, + 95, + 391, + 391, + 121, + 121, + 121, + 265, + 69, + 230, + 230, + 230, + 230, + 38, + 38, + 38, + 229, + 229, + 229, + 7, + 7, + 7, + 7, + 7, + 292, + 197, + 197, + 187, + 346, + 187, + 187, + 199, + 157, + 157, + 157, + 157, + 394, + 157, + 157, + 316, + 316, + 63, + 63, + 116, + 180, + 194, + 36, + 36, + 65, + 348, + 348, + 348, + 27, + 378, + 378, + 378, + 185, + 343, + 343, + 382, + 93, + 295, + 211, + 211, + 211, + 211, + 211, + 211, + 363, + 369, + 6, + 76, + 367, + 21, + 21, + 227, + 102, + 102, + 102, + 256, + 256, + 163, + 163, + 393, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 183, + 183, + 183, + 156, + 93, + 192, + 192, + 261, + 261, + 261, + 114, + 294, + 130, + 391, + 347, + 347, + 347, + 347, + 256, + 286, + 298, + 87, + 87, + 87, + 267, + 35, + 35, + 35, + 165, + 165, + 165, + 353, + 353, + 165, + 165, + 165, + 165, + 165, + 295, + 295, + 2, + 273, + 273, + 273, + 273, + 273, + 273, + 273, + 273, + 157, + 157, + 157, + 348, + 348, + 194, + 245, + 245, + 245, + 50, + 277, + 32, + 284, + 284, + 84, + 84, + 84, + 84, + 252, + 48, + 384, + 384, + 384, + 384, + 144, + 257, + 84, + 84, + 84, + 328, + 71, + 213, + 213, + 213, + 213, + 198, + 336, + 81, + 81, + 324, + 324, + 324, + 324, + 192, + 286, + 286, + 286, + 150, + 150, + 150, + 397, + 397, + 109, + 259, + 0, + 223, + 175, + 175, + 175, + 175, + 175, + 208, + 208, + 127, + 336, + 336, + 7, + 273, + 14, + 14, + 14, + 14, + 51, + 51, + 51, + 51, + 51, + 351, + 351, + 51, + 51, + 51, + 51, + 51, + 51, + 51, + 374, + 374, + 131, + 201, + 201, + 57, + 57, + 350, + 350, + 138, + 82, + 152, + 152, + 204, + 204, + 175, + 175, + 218, + 218, + 218, + 218, + 9, + 223, + 97, + 393, + 393, + 23, + 23, + 23, + 23, + 43, + 64, + 47, + 160, + 8, + 300, + 178, + 244, + 244, + 133, + 361, + 304, + 344, + 344, + 344, + 344, + 305, + 360, + 227, + 0, + 296, + 296, + 74, + 74, + 246, + 246, + 310, + 231, + 246, + 254, + 254, + 368, + 310, + 211, + 211, + 289, + 173, + 173, + 258, + 258, + 258, + 258, + 258, + 258, + 105, + 246, + 246, + 2, + 256, + 256, + 58, + 248, + 248, + 248, + 248, + 248, + 153, + 153, + 356, + 356, + 356, + 81, + 81, + 81, + 81, + 81, + 228, + 228, + 362, + 242, + 242, + 204, + 359, + 223, + 386, + 62, + 62, + 62, + 322, + 322, + 322, + 322, + 322, + 322, + 126, + 126, + 126, + 126, + 346, + 187, + 187, + 187, + 187, + 288, + 128, + 243, + 243, + 243, + 243, + 182, + 9, + 161, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 384, + 11, + 11, + 11, + 11, + 11, + 277, + 170, + 303, + 303, + 303, + 303, + 303, + 58, + 294, + 294, + 130, + 287, + 287, + 166, + 0, + 0, + 386, + 0, + 16, + 16, + 20, + 302, + 20, + 208, + 208, + 208, + 208, + 109, + 238, + 147, + 147, + 395, + 395, + 395, + 395, + 86, + 375, + 22, + 376, + 376, + 41, + 41, + 41, + 373, + 373, + 137, + 341, + 57, + 263, + 263, + 263, + 263, + 263, + 263, + 141, + 333, + 333, + 185, + 216, + 216, + 44, + 44, + 44, + 274, + 274, + 47, + 47, + 47, + 47, + 47, + 341, + 341, + 341, + 341, + 341, + 14, + 14, + 14, + 14, + 245, + 245, + 180, + 348, + 175, + 279, + 106, + 106, + 325, + 132, + 132, + 384, + 384, + 125, + 125, + 125, + 125, + 193, + 156, + 0, + 252, + 0, + 0, + 0, + 253, + 253, + 72, + 246, + 103, + 252, + 252, + 27, + 373, + 163, + 141, + 206, + 206, + 141, + 141, + 141, + 141, + 370, + 370, + 370, + 370, + 149, + 260, + 76, + 76, + 76, + 76, + 76, + 76, + 292, + 192, + 192, + 192, + 192, + 227, + 227, + 227, + 227, + 14, + 14, + 14, + 368, + 149, + 330, + 28, + 266, + 76, + 76, + 375, + 375, + 375, + 375, + 59, + 59, + 297, + 297, + 10, + 10, + 10, + 216, + 216, + 216, + 216, + 138, + 138, + 201, + 201, + 157, + 157, + 157, + 358, + 8, + 8, + 260, + 260, + 159, + 400, + 156, + 215, + 7, + 7, + 352, + 140, + 140, + 353, + 0, + 0, + 81, + 81, + 108, + 9, + 161, + 161, + 36, + 308, + 308, + 12, + 390, + 390, + 390, + 136, + 200, + 200, + 389, + 389, + 389, + 155, + 224, + 131, + 226, + 261, + 335, + 207, + 215, + 6, + 352, + 154, + 38, + 359, + 38, + 38, + 38, + 38, + 38, + 98, + 98, + 98, + 188, + 289, + 139, + 139, + 139, + 139, + 382, + 382, + 82, + 82, + 381, + 381, + 199, + 199, + 199, + 289, + 16, + 16, + 397, + 397, + 174, + 174, + 247, + 247, + 247, + 52, + 52, + 52, + 253, + 130, + 130, + 130, + 130, + 213, + 156, + 228, + 228, + 228, + 75, + 75, + 244, + 124, + 124, + 124, + 352, + 77, + 77, + 273, + 273, + 145, + 338, + 338, + 135, + 141, + 33, + 14, + 395, + 14, + 380, + 125, + 131, + 131, + 131, + 49, + 49, + 49, + 49, + 123, + 145, + 145, + 125, + 125, + 83, + 142, + 142, + 142, + 109, + 109, + 134, + 134, + 180, + 86, + 82, + 82, + 82, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 42, + 381, + 271, + 271, + 49, + 49, + 279, + 163, + 168, + 233, + 168, + 380, + 380, + 380, + 380, + 135, + 135, + 343, + 22, + 22, + 246, + 234, + 234, + 165, + 232, + 15, + 15, + 250, + 51, + 115, + 115, + 203, + 203, + 115, + 115, + 247, + 247, + 247, + 247, + 32, + 318, + 318, + 165, + 165, + 276, + 22, + 286, + 141, + 262, + 91, + 272, + 272, + 235, + 235, + 357, + 357, + 357, + 79, + 357, + 103, + 103, + 234, + 234, + 234, + 234, + 234, + 144, + 144, + 204, + 46, + 46, + 46, + 46, + 46, + 277, + 180, + 114, + 114, + 68, + 226, + 226, + 65, + 65, + 144, + 144, + 121, + 121, + 121, + 43, + 43, + 333, + 333, + 333, + 333, + 196, + 271, + 271, + 108, + 283, + 283, + 114, + 114, + 21, + 368, + 368, + 21, + 21, + 354, + 99, + 99, + 208, + 102, + 323, + 162, + 162, + 162, + 162, + 162, + 360, + 360, + 360, + 360, + 187, + 258, + 145, + 145, + 145, + 145, + 145, + 145, + 145, + 341, + 341, + 66, + 390, + 390, + 151, + 400, + 400, + 49, + 218, + 186, + 186, + 312, + 30, + 250, + 250, + 250, + 250, + 7, + 317, + 317, + 200, + 200, + 200, + 200, + 200, + 320, + 2, + 375, + 375, + 375, + 154, + 242, + 109, + 109, + 348, + 348, + 348, + 348, + 200, + 200, + 200, + 303, + 146, + 203, + 65, + 358, + 358, + 358, + 358, + 358, + 358, + 182, + 312, + 38, + 38, + 38, + 242, + 242, + 364, + 376, + 102, + 102, + 376, + 343, + 343, + 343, + 318, + 318, + 318, + 318, + 257, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 337, + 339, + 339, + 51, + 274, + 61, + 262, + 262, + 262, + 86, + 223, + 84, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 58, + 58, + 58, + 58, + 241, + 191, + 191, + 191, + 246, + 246, + 79, + 79, + 365, + 365, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 88, + 5, + 161, + 161, + 161, + 161, + 161, + 161, + 350, + 350, + 36, + 36, + 247, + 247, + 247, + 192, + 331, + 69, + 69, + 69, + 314, + 314, + 314, + 314, + 73, + 73, + 73, + 73, + 380, + 380, + 90, + 221, + 221, + 197, + 197, + 257, + 257, + 257, + 257, + 257, + 257, + 257, + 257, + 15, + 385, + 385, + 3, + 3, + 278, + 60, + 204, + 204, + 163, + 341, + 341, + 341, + 151, + 239, + 81, + 81, + 291, + 291, + 125, + 15, + 125, + 125, + 125, + 209, + 209, + 209, + 125, + 213, + 96, + 365, + 122, + 122, + 253, + 134, + 134, + 134, + 134, + 174, + 290, + 290, + 290, + 174, + 174, + 174, + 369, + 369, + 147, + 262, + 163, + 244, + 244, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 395, + 65, + 65, + 213, + 17, + 17, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 58, + 379, + 58, + 58, + 58, + 62, + 62, + 12, + 150, + 289, + 150, + 150, + 150, + 373, + 62, + 140, + 23, + 302, + 302, + 111, + 154, + 1, + 1, + 47, + 90, + 308, + 308, + 308, + 90, + 233, + 233, + 233, + 233, + 233, + 218, + 218, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 393, + 28, + 28, + 28, + 28, + 352, + 352, + 352, + 352, + 191, + 191, + 350, + 154, + 154, + 227, + 195, + 195, + 195, + 195, + 195, + 195, + 195, + 320, + 320, + 89, + 89, + 89, + 227, + 227, + 227, + 55, + 239, + 239, + 71, + 170, + 315, + 315, + 315, + 170, + 170, + 170, + 170, + 311, + 311, + 311, + 311, + 311, + 311, + 311, + 10, + 10, + 10, + 264, + 200, + 321, + 180, + 302, + 81, + 81, + 81, + 81, + 81, + 266, + 266, + 266, + 138, + 373, + 373, + 104, + 104, + 104, + 104, + 226, + 226, + 226, + 111, + 270, + 270, + 125, + 125, + 253, + 155, + 155, + 155, + 155, + 227, + 15, + 15, + 15, + 15, + 256, + 103, + 103, + 103, + 399, + 399, + 99, + 99, + 295, + 295, + 194, + 194, + 194, + 194, + 194, + 194, + 327, + 199, + 330, + 330, + 330, + 330, + 330, + 84, + 342, + 80, + 282, + 282, + 86, + 353, + 53, + 259, + 41, + 41, + 41, + 312, + 312, + 117, + 117, + 117, + 247, + 154, + 384, + 384, + 384, + 384, + 384, + 42, + 42, + 350, + 350, + 350, + 350, + 350, + 44, + 44, + 44, + 378, + 38, + 274, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py new file mode 100644 index 0000000000..a79bd3c16e --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py @@ -0,0 +1,6 @@ +from roundrobin import build + + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 2 flows.""" + build(2).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.data b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.expect b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.expect new file mode 100644 index 0000000000..70924fdc26 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 243, + 121, + 243, + 243, + 275, + 203, + 330, + 329, + 329, + 329, + 310, + 310, + 256, + 291, + 268, + 354, + 354, + 380, + 130, + 262, + 307, + 80, + 80, + 80, + 363, + 40, + 40, + 242, + 242, + 242, + 242, + 242, + 242, + 388, + 388, + 388, + 106, + 299, + 299, + 243, + 243, + 243, + 325, + 325, + 325, + 325, + 176, + 176, + 287, + 61, + 321, + 125, + 125, + 125, + 125, + 306, + 306, + 306, + 95, + 95, + 296, + 145, + 145, + 205, + 205, + 309, + 205, + 83, + 83, + 83, + 205, + 79, + 171, + 171, + 171, + 341, + 125, + 212, + 212, + 133, + 215, + 215, + 215, + 215, + 215, + 318, + 238, + 221, + 221, + 221, + 216, + 306, + 80, + 80, + 221, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 168, + 231, + 11, + 231, + 231, + 231, + 241, + 312, + 312, + 98, + 98, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 281, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 167, + 167, + 167, + 167, + 300, + 82, + 254, + 254, + 254, + 254, + 314, + 314, + 3, + 3, + 3, + 3, + 216, + 366, + 69, + 69, + 238, + 330, + 36, + 162, + 162, + 293, + 60, + 177, + 372, + 82, + 82, + 253, + 253, + 378, + 90, + 90, + 90, + 90, + 90, + 183, + 323, + 21, + 21, + 219, + 219, + 219, + 219, + 219, + 391, + 391, + 129, + 129, + 150, + 150, + 150, + 150, + 150, + 267, + 267, + 267, + 267, + 267, + 66, + 251, + 251, + 251, + 305, + 98, + 219, + 219, + 318, + 318, + 90, + 90, + 250, + 250, + 250, + 250, + 250, + 332, + 332, + 332, + 332, + 332, + 332, + 21, + 21, + 21, + 21, + 21, + 21, + 203, + 203, + 203, + 203, + 203, + 343, + 343, + 119, + 151, + 151, + 290, + 290, + 0, + 209, + 209, + 276, + 276, + 276, + 76, + 76, + 217, + 308, + 308, + 308, + 89, + 89, + 89, + 89, + 89, + 220, + 356, + 11, + 11, + 11, + 11, + 11, + 246, + 246, + 246, + 246, + 354, + 113, + 170, + 170, + 170, + 346, + 18, + 208, + 208, + 208, + 208, + 208, + 208, + 208, + 306, + 306, + 306, + 109, + 109, + 161, + 161, + 161, + 161, + 161, + 374, + 120, + 120, + 120, + 120, + 183, + 183, + 310, + 91, + 191, + 191, + 297, + 81, + 162, + 162, + 162, + 388, + 388, + 388, + 95, + 255, + 378, + 63, + 256, + 310, + 310, + 310, + 86, + 332, + 6, + 6, + 303, + 120, + 223, + 400, + 238, + 238, + 300, + 300, + 45, + 222, + 222, + 359, + 157, + 157, + 351, + 351, + 351, + 351, + 351, + 351, + 220, + 278, + 278, + 103, + 103, + 180, + 180, + 400, + 121, + 121, + 121, + 248, + 332, + 332, + 332, + 332, + 54, + 252, + 380, + 380, + 41, + 154, + 269, + 87, + 87, + 182, + 182, + 182, + 182, + 182, + 301, + 7, + 7, + 218, + 312, + 312, + 165, + 323, + 12, + 12, + 195, + 397, + 397, + 397, + 128, + 128, + 128, + 128, + 128, + 128, + 144, + 144, + 144, + 144, + 144, + 296, + 8, + 227, + 227, + 380, + 40, + 195, + 367, + 41, + 152, + 286, + 255, + 255, + 255, + 255, + 337, + 337, + 337, + 337, + 337, + 337, + 337, + 337, + 36, + 198, + 310, + 51, + 201, + 201, + 201, + 201, + 149, + 149, + 154, + 154, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 244, + 101, + 240, + 83, + 165, + 256, + 30, + 30, + 30, + 256, + 256, + 256, + 256, + 362, + 362, + 164, + 256, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 123, + 382, + 14, + 14, + 142, + 122, + 82, + 181, + 181, + 321, + 92, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 348, + 43, + 237, + 237, + 237, + 387, + 80, + 206, + 206, + 206, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 207, + 207, + 207, + 79, + 338, + 79, + 79, + 143, + 143, + 143, + 366, + 13, + 217, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 3, + 353, + 353, + 353, + 353, + 105, + 105, + 105, + 105, + 51, + 241, + 241, + 51, + 51, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 0, + 0, + 243, + 243, + 243, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 135, + 119, + 2, + 209, + 2, + 240, + 333, + 333, + 208, + 208, + 74, + 74, + 347, + 347, + 347, + 347, + 74, + 255, + 255, + 255, + 360, + 42, + 42, + 42, + 223, + 361, + 81, + 81, + 81, + 81, + 256, + 256, + 348, + 109, + 189, + 339, + 339, + 339, + 85, + 85, + 213, + 360, + 9, + 9, + 9, + 9, + 260, + 260, + 260, + 363, + 107, + 107, + 107, + 107, + 203, + 203, + 382, + 59, + 144, + 144, + 144, + 144, + 398, + 40, + 175, + 175, + 382, + 30, + 223, + 223, + 223, + 282, + 282, + 282, + 71, + 71, + 71, + 71, + 235, + 235, + 316, + 316, + 26, + 188, + 320, + 320, + 64, + 64, + 194, + 194, + 393, + 393, + 101, + 235, + 235, + 325, + 132, + 132, + 249, + 249, + 249, + 309, + 309, + 92, + 149, + 299, + 24, + 168, + 305, + 305, + 184, + 184, + 313, + 313, + 313, + 105, + 257, + 257, + 112, + 239, + 87, + 256, + 256, + 256, + 86, + 379, + 86, + 206, + 206, + 206, + 206, + 320, + 34, + 34, + 254, + 16, + 16, + 16, + 16, + 181, + 181, + 181, + 20, + 154, + 154, + 154, + 316, + 316, + 316, + 95, + 95, + 95, + 201, + 312, + 312, + 312, + 312, + 55, + 55, + 260, + 76, + 76, + 222, + 222, + 108, + 215, + 215, + 313, + 313, + 313, + 33, + 33, + 141, + 98, + 98, + 98, + 13, + 13, + 304, + 13, + 331, + 142, + 142, + 301, + 287, + 121, + 121, + 239, + 272, + 88, + 88, + 88, + 88, + 88, + 226, + 346, + 346, + 7, + 7, + 17, + 17, + 128, + 52, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 77, + 77, + 159, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 206, + 386, + 386, + 147, + 238, + 238, + 187, + 364, + 75, + 179, + 87, + 87, + 237, + 40, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 190, + 190, + 190, + 190, + 190, + 295, + 16, + 16, + 166, + 394, + 394, + 75, + 75, + 75, + 75, + 200, + 200, + 200, + 392, + 392, + 35, + 175, + 175, + 394, + 234, + 343, + 219, + 219, + 321, + 321, + 321, + 321, + 321, + 321, + 113, + 150, + 150, + 150, + 306, + 306, + 306, + 53, + 192, + 192, + 192, + 255, + 362, + 144, + 144, + 233, + 161, + 161, + 323, + 323, + 72, + 190, + 190, + 331, + 331, + 331, + 37, + 197, + 309, + 92, + 222, + 274, + 274, + 274, + 0, + 0, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 269, + 269, + 269, + 269, + 269, + 113, + 173, + 173, + 173, + 308, + 308, + 86, + 256, + 256, + 354, + 354, + 354, + 354, + 132, + 242, + 299, + 299, + 45, + 45, + 45, + 181, + 267, + 267, + 267, + 267, + 50, + 154, + 321, + 321, + 321, + 321, + 321, + 51, + 150, + 150, + 150, + 150, + 150, + 150, + 324, + 77, + 167, + 167, + 365, + 21, + 21, + 160, + 299, + 299, + 127, + 127, + 127, + 142, + 142, + 142, + 362, + 362, + 0, + 0, + 0, + 0, + 0, + 162, + 287, + 287, + 46, + 238, + 380, + 86, + 86, + 220, + 220, + 220, + 370, + 99, + 99, + 174, + 174, + 319, + 319, + 319, + 212, + 212, + 212, + 297, + 150, + 293, + 23, + 222, + 281, + 281, + 281, + 128, + 128, + 128, + 128, + 128, + 237, + 397, + 148, + 148, + 386, + 186, + 40, + 186, + 313, + 313, + 170, + 170, + 170, + 97, + 97, + 97, + 170, + 170, + 170, + 170, + 170, + 312, + 129, + 165, + 165, + 293, + 293, + 68, + 179, + 324, + 29, + 264, + 264, + 264, + 264, + 323, + 323, + 46, + 46, + 46, + 46, + 154, + 320, + 132, + 185, + 185, + 185, + 185, + 185, + 185, + 272, + 272, + 32, + 32, + 32, + 32, + 32, + 186, + 186, + 365, + 14, + 155, + 155, + 338, + 338, + 338, + 338, + 338, + 338, + 338, + 338, + 69, + 167, + 167, + 358, + 358, + 358, + 358, + 70, + 188, + 333, + 333, + 101, + 261, + 72, + 188, + 275, + 275, + 117, + 117, + 117, + 218, + 218, + 297, + 109, + 184, + 299, + 299, + 299, + 299, + 91, + 186, + 186, + 186, + 339, + 339, + 23, + 160, + 160, + 87, + 87, + 170, + 79, + 158, + 132, + 226, + 226, + 226, + 226, + 226, + 226, + 67, + 255, + 255, + 332, + 46, + 46, + 155, + 304, + 304, + 85, + 178, + 178, + 330, + 92, + 260, + 260, + 280, + 79, + 79, + 199, + 199, + 11, + 11, + 11, + 155, + 125, + 125, + 231, + 63, + 150, + 150, + 150, + 122, + 122, + 97, + 97, + 194, + 397, + 397, + 97, + 63, + 63, + 167, + 167, + 304, + 63, + 63, + 63, + 214, + 339, + 128, + 128, + 264, + 264, + 264, + 298, + 298, + 80, + 195, + 295, + 295, + 71, + 173, + 173, + 173, + 285, + 285, + 74, + 74, + 327, + 57, + 57, + 57, + 57, + 57, + 57, + 57, + 318, + 318, + 318, + 318, + 75, + 398, + 398, + 398, + 118, + 310, + 310, + 62, + 274, + 274, + 32, + 202, + 202, + 202, + 351, + 351, + 351, + 43, + 43, + 272, + 3, + 186, + 351, + 351, + 351, + 110, + 110, + 110, + 158, + 158, + 158, + 158, + 288, + 26, + 26, + 314, + 314, + 55, + 55, + 55, + 55, + 323, + 58, + 58, + 58, + 339, + 339, + 83, + 83, + 349, + 349, + 349, + 71, + 71, + 71, + 235, + 235, + 65, + 171, + 171, + 171, + 171, + 171, + 171, + 372, + 372, + 372, + 120, + 120, + 120, + 236, + 353, + 9, + 9, + 9, + 192, + 192, + 192, + 192, + 304, + 80, + 245, + 245, + 350, + 350, + 74, + 164, + 49, + 136, + 34, + 34, + 34, + 34, + 34, + 178, + 26, + 26, + 26, + 26, + 134, + 134, + 134, + 134, + 134, + 291, + 119, + 119, + 119, + 119, + 266, + 318, + 318, + 318, + 318, + 318, + 124, + 124, + 124, + 124, + 124, + 239, + 357, + 357, + 357, + 357, + 49, + 148, + 148, + 300, + 300, + 300, + 300, + 43, + 208, + 208, + 208, + 131, + 131, + 131, + 145, + 22, + 148, + 148, + 8, + 325, + 8, + 160, + 160, + 129, + 129, + 129, + 129, + 142, + 57, + 28, + 22, + 22, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 48, + 48, + 246, + 246, + 246, + 393, + 393, + 15, + 15, + 237, + 334, + 91, + 245, + 245, + 295, + 99, + 99, + 99, + 99, + 99, + 99, + 275, + 275, + 275, + 384, + 122, + 187, + 324, + 390, + 390, + 333, + 299, + 103, + 198, + 198, + 66, + 254, + 298, + 298, + 102, + 102, + 102, + 102, + 164, + 398, + 398, + 10, + 10, + 10, + 237, + 237, + 267, + 114, + 150, + 150, + 150, + 150, + 150, + 150, + 317, + 74, + 74, + 245, + 320, + 92, + 92, + 190, + 190, + 325, + 20, + 20, + 180, + 180, + 180, + 180, + 344, + 344, + 344, + 14, + 143, + 367, + 51, + 51, + 51, + 51, + 51, + 213, + 213, + 213, + 213, + 287, + 287, + 287, + 23, + 23, + 153, + 382, + 382, + 382, + 124, + 124, + 124, + 241, + 241, + 395, + 5, + 5, + 155, + 155, + 155, + 155, + 378, + 378, + 378, + 378, + 378, + 74, + 200, + 200, + 271, + 83, + 231, + 337, + 337, + 337, + 15, + 246, + 277, + 277, + 88, + 155, + 394, + 149, + 149, + 149, + 278, + 194, + 309, + 309, + 309, + 309, + 23, + 203, + 203, + 203, + 203, + 291, + 291, + 63, + 63, + 311, + 63, + 397, + 397, + 397, + 397, + 52, + 374, + 374, + 4, + 4, + 4, + 246, + 246, + 246, + 246, + 330, + 330, + 330, + 37, + 37, + 367, + 60, + 350, + 350, + 350, + 378, + 378, + 314, + 314, + 102, + 102, + 102, + 233, + 233, + 336, + 107, + 156, + 279, + 279, + 279, + 347, + 318, + 318, + 318, + 286, + 334, + 24, + 24, + 24, + 334, + 185, + 185, + 361, + 211, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 160, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 15, + 219, + 313, + 313, + 313, + 15, + 166, + 276, + 23, + 174, + 174, + 174, + 333, + 333, + 333, + 82, + 82, + 82, + 82, + 98, + 15, + 15, + 15, + 15, + 132, + 132, + 191, + 191, + 191, + 391, + 391, + 1, + 151, + 100, + 6, + 226, + 284, + 6, + 6, + 62, + 233, + 233, + 53, + 278, + 181, + 278, + 278, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 3, + 3, + 3, + 3, + 150, + 317, + 317, + 317, + 317, + 317, + 317, + 317, + 123, + 178, + 346, + 346, + 4, + 138, + 23, + 375, + 375, + 23, + 23, + 207, + 207, + 294, + 294, + 19, + 370, + 370, + 370, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 203, + 203, + 325, + 325, + 325, + 325, + 130, + 135, + 385, + 385, + 67, + 365, + 365, + 365, + 37, + 375, + 375, + 375, + 89, + 325, + 56, + 56, + 56, + 397, + 216, + 397, + 115, + 115, + 115, + 115, + 115, + 115, + 115, + 115, + 115, + 217, + 217, + 217, + 217, + 380, + 380, + 111, + 290, + 63, + 376, + 376, + 123, + 123, + 319, + 319, + 319, + 14, + 14, + 14, + 14, + 14, + 228, + 382, + 101, + 101, + 222, + 345, + 345, + 345, + 93, + 350, + 5, + 5, + 365, + 86, + 86, + 330, + 52, + 52, + 360, + 360, + 105, + 141, + 302, + 69, + 69, + 69, + 69, + 233, + 368, + 30, + 30, + 30, + 30, + 165, + 398, + 398, + 398, + 27, + 231, + 231, + 360, + 360, + 131, + 131, + 131, + 131, + 131, + 131, + 174, + 174, + 174, + 174, + 174, + 309, + 71, + 208, + 367, + 367, + 81, + 81, + 81, + 81, + 224, + 224, + 224, + 224, + 352, + 86, + 260, + 341, + 94, + 208, + 293, + 9, + 9, + 9, + 9, + 9, + 335, + 335, + 26, + 341, + 97, + 97, + 97, + 253, + 253, + 253, + 301, + 301, + 36, + 304, + 98, + 292, + 292, + 0, + 296, + 65, + 65, + 65, + 65, + 65, + 65, + 336, + 336, + 99, + 99, + 141, + 394, + 30, + 236, + 236, + 394, + 47, + 47, + 367, + 371, + 371, + 276, + 391, + 391, + 391, + 360, + 311, + 362, + 338, + 338, + 338, + 338, + 375, + 375, + 112, + 375, + 277, + 230, + 230, + 230, + 49, + 49, + 49, + 233, + 34, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 61, + 61, + 263, + 263, + 400, + 400, + 73, + 198, + 198, + 198, + 111, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 155, + 155, + 325, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 322, + 322, + 322, + 322, + 322, + 106, + 106, + 106, + 152, + 152, + 152, + 297, + 106, + 106, + 106, + 106, + 106, + 106, + 196, + 382, + 382, + 117, + 117, + 231, + 367, + 18, + 28, + 36, + 36, + 106, + 137, + 137, + 137, + 137, + 290, + 290, + 290, + 290, + 290, + 290, + 119, + 235, + 308, + 80, + 80, + 197, + 350, + 350, + 350, + 31, + 31, + 31, + 31, + 31, + 117, + 389, + 389, + 117, + 117, + 394, + 394, + 124, + 124, + 263, + 263, + 376, + 108, + 108, + 155, + 302, + 302, + 302, + 41, + 41, + 41, + 252, + 309, + 309, + 118, + 118, + 149, + 149, + 384, + 384, + 384, + 384, + 123, + 123, + 260, + 381, + 26, + 186, + 290, + 290, + 290, + 290, + 290, + 12, + 182, + 182, + 276, + 12, + 202, + 202, + 358, + 125, + 125, + 236, + 236, + 387, + 93, + 93, + 93, + 207, + 388, + 388, + 388, + 69, + 177, + 296, + 296, + 119, + 119, + 119, + 119, + 246, + 386, + 386, + 76, + 231, + 343, + 101, + 226, + 226, + 226, + 226, + 397, + 80, + 80, + 80, + 80, + 187, + 187, + 187, + 187, + 187, + 336, + 336, + 23, + 218, + 355, + 355, + 355, + 17, + 17, + 17, + 211, + 211, + 360, + 360, + 105, + 105, + 105, + 105, + 299, + 92, + 92, + 92, + 366, + 96, + 96, + 379, + 148, + 148, + 148, + 379, + 379, + 379, + 379, + 379, + 379, + 10, + 138, + 138, + 342, + 342, + 342, + 118, + 210, + 210, + 210, + 271, + 10, + 10, + 10, + 167, + 167, + 167, + 394, + 125, + 125, + 125, + 146, + 353, + 353, + 61, + 230, + 230, + 230, + 319, + 130, + 130, + 130, + 222, + 222, + 331, + 115, + 115, + 115, + 159, + 159, + 159, + 365, + 53, + 53, + 53, + 53, + 335, + 112, + 25, + 41, + 68, + 57, + 104, + 379, + 379, + 379, + 208, + 208, + 208, + 208, + 379, + 379, + 104, + 220, + 272, + 272, + 272, + 86, + 158, + 372, + 123, + 355, + 355, + 29, + 29, + 29, + 29, + 391, + 391, + 105, + 382, + 382, + 97, + 97, + 262, + 218, + 366, + 218, + 16, + 16, + 383, + 16, + 159, + 295, + 67, + 67, + 246, + 246, + 246, + 340, + 113, + 260, + 260, + 260, + 260, + 373, + 373, + 373, + 373, + 373, + 81, + 193, + 16, + 250, + 124, + 152, + 152, + 152, + 88, + 253, + 51, + 189, + 189, + 198, + 198, + 198, + 131, + 198, + 198, + 198, + 25, + 25, + 187, + 117, + 117, + 117, + 250, + 250, + 386, + 32, + 186, + 270, + 73, + 73, + 249, + 249, + 249, + 249, + 344, + 69, + 69, + 69, + 187, + 187, + 187, + 187, + 187, + 300, + 38, + 38, + 38, + 38, + 233, + 332, + 64, + 64, + 64, + 64, + 253, + 280, + 103, + 103, + 219, + 386, + 66, + 66, + 214, + 278, + 190, + 106, + 150, + 150, + 296, + 71, + 172, + 172, + 172, + 398, + 398, + 398, + 398, + 398, + 125, + 205, + 205, + 389, + 389, + 23, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 218, + 27, + 27, + 139, + 139, + 68, + 68, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 374, + 374, + 374, + 374, + 11, + 225, + 381, + 381, + 381, + 381, + 38, + 38, + 160, + 391, + 96, + 166, + 166, + 295, + 295, + 295, + 16, + 16, + 16, + 168, + 298, + 298, + 72, + 135, + 135, + 135, + 135, + 354, + 354, + 55, + 243, + 243, + 325, + 325, + 325, + 23, + 250, + 250, + 304, + 59, + 59, + 266, + 266, + 383, + 383, + 28, + 261, + 377, + 53, + 147, + 147, + 353, + 353, + 353, + 10, + 10, + 234, + 341, + 341, + 26, + 338, + 33, + 33, + 33, + 330, + 330, + 194, + 330, + 82, + 82, + 139, + 139, + 139, + 380, + 81, + 81, + 81, + 81, + 81, + 81, + 81, + 81, + 172, + 313, + 24, + 24, + 179, + 386, + 91, + 161, + 342, + 342, + 76, + 76, + 165, + 165, + 165, + 274, + 274, + 274, + 274, + 274, + 274, + 26, + 207, + 207, + 207, + 207, + 207, + 372, + 51, + 51, + 242, + 242, + 367, + 367, + 367, + 367, + 367, + 23, + 23, + 264, + 264, + 304, + 304, + 62, + 251, + 251, + 251, + 358, + 358, + 358, + 32, + 239, + 344, + 344, + 344, + 344, + 344, + 114, + 246, + 344, + 344, + 344, + 124, + 259, + 259, + 339, + 91, + 91, + 91, + 263, + 359, + 359, + 251, + 308, + 204, + 204, + 340, + 258, + 365, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 138, + 85, + 62, + 62, + 324, + 62, + 62, + 392, + 316, + 205, + 118, + 118, + 205, + 316, + 153, + 288, + 22, + 22, + 145, + 315, + 315, + 37, + 195, + 181, + 181, + 212, + 212, + 254, + 394, + 39, + 39, + 219, + 377, + 377, + 100, + 100, + 217, + 321, + 67, + 67, + 265, + 265, + 265, + 265, + 265, + 265, + 319, + 319, + 5, + 5, + 223, + 286, + 286, + 52, + 229, + 229, + 287, + 0, + 0, + 0, + 0, + 176, + 176, + 343, + 343, + 343, + 73, + 204, + 204, + 335, + 335, + 28, + 207, + 207, + 207, + 207, + 207, + 207, + 368, + 368, + 78, + 400, + 16, + 348, + 9, + 9, + 9, + 67, + 67, + 38, + 249, + 38, + 231, + 34, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 241, + 241, + 129, + 129, + 218, + 350, + 25, + 200, + 200, + 200, + 200, + 200, + 200, + 200, + 200, + 338, + 338, + 84, + 189, + 189, + 290, + 290, + 290, + 3, + 391, + 90, + 90, + 185, + 185, + 397, + 397, + 397, + 54, + 261, + 302, + 302, + 302, + 302, + 118, + 225, + 225, + 365, + 365, + 73, + 316, + 85, + 231, + 231, + 231, + 231, + 377, + 102, + 102, + 102, + 186, + 393, + 393, + 121, + 121, + 121, + 121, + 121, + 121, + 121, + 189, + 189, + 189, + 343, + 343, + 11, + 249, + 249, + 308, + 308, + 115, + 234, + 283, + 283, + 283, + 103, + 103, + 145, + 400, + 115, + 115, + 234, + 234, + 234, + 234, + 394, + 394, + 129, + 188, + 188, + 336, + 336, + 94, + 234, + 234, + 306, + 306, + 306, + 112, + 218, + 301, + 56, + 56, + 211, + 327, + 119, + 229, + 229, + 385, + 385, + 64, + 260, + 296, + 27, + 209, + 209, + 209, + 114, + 241, + 393, + 393, + 393, + 90, + 90, + 90, + 90, + 228, + 274, + 274, + 12, + 140, + 140, + 314, + 314, + 18, + 179, + 179, + 380, + 12, + 12, + 12, + 183, + 183, + 386, + 58, + 58, + 58, + 58, + 58, + 58, + 58, + 212, + 340, + 340, + 119, + 119, + 119, + 216, + 216, + 216, + 388, + 388, + 388, + 388, + 9, + 9, + 145, + 353, + 353, + 353, + 353, + 353, + 353, + 124, + 167, + 167, + 167, + 167, + 277, + 6, + 185, + 185, + 185, + 367, + 133, + 133, + 133, + 254, + 254, + 330, + 330, + 104, + 104, + 137, + 137, + 309, + 309, + 20, + 259, + 324, + 324, + 115, + 248, + 248, + 288, + 288, + 288, + 288, + 12, + 146, + 299, + 77, + 226, + 226, + 325, + 325, + 325, + 153, + 153, + 324, + 100, + 100, + 141, + 16, + 16, + 166, + 166, + 193, + 231, + 196, + 31, + 196, + 196, + 17, + 17, + 375, + 17, + 17, + 203, + 203, + 203, + 333, + 124, + 124, + 207, + 273, + 273, + 273, + 143, + 143, + 333, + 67, + 180, + 180, + 180, + 180, + 348, + 348, + 92, + 92, + 244, + 267, + 203, + 349, + 349, + 176, + 176, + 112, + 176, + 176, + 347, + 137, + 245, + 94, + 245, + 245, + 30, + 162, + 141, + 241, + 241, + 279, + 279, + 279, + 19, + 150, + 150, + 150, + 38, + 38, + 38, + 38, + 38, + 195, + 195, + 333, + 333, + 127, + 127, + 146, + 349, + 99, + 99, + 99, + 240, + 240, + 240, + 80, + 80, + 80, + 80, + 80, + 149, + 391, + 391, + 27, + 162, + 162, + 349, + 123, + 123, + 123, + 123, + 198, + 198, + 215, + 147, + 147, + 147, + 147, + 52, + 52, + 52, + 216, + 216, + 332, + 332, + 332, + 332, + 97, + 165, + 165, + 299, + 65, + 151, + 151, + 268, + 268, + 268, + 61, + 61, + 61, + 223, + 223, + 223, + 332, + 332, + 89, + 214, + 214, + 214, + 297, + 44, + 203, + 203, + 361, + 27, + 224, + 224, + 224, + 224, + 271, + 271, + 24, + 135, + 357, + 357, + 357, + 110, + 216, + 216, + 399, + 257, + 257, + 268, + 258, + 270, + 154, + 321, + 262, + 70, + 70, + 262, + 262, + 262, + 269, + 269, + 269, + 113, + 153, + 324, + 324, + 324, + 179, + 179, + 286, + 286, + 286, + 286, + 286, + 107, + 134, + 134, + 134, + 288, + 70, + 244, + 244, + 286, + 126, + 189, + 374, + 192, + 388, + 122, + 122, + 249, + 313, + 313, + 233, + 385, + 385, + 385, + 97, + 192, + 247, + 161, + 396, + 396, + 231, + 231, + 231, + 224, + 224, + 224, + 352, + 352, + 224, + 355, + 0, + 206, + 83, + 171, + 231, + 267, + 267, + 266, + 340, + 340, + 54, + 54, + 54, + 54, + 183, + 183, + 370, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 273, + 273, + 273, + 128, + 198, + 395, + 395, + 395, + 395, + 49, + 192, + 361, + 13, + 13, + 164, + 378, + 38, + 247, + 369, + 369, + 121, + 169, + 361, + 253, + 400, + 144, + 302, + 264, + 264, + 264, + 264, + 326, + 252, + 252, + 278, + 219, + 219, + 338, + 175, + 175, + 129, + 175, + 342, + 238, + 325, + 136, + 307, + 307, + 307, + 307, + 307, + 307, + 93, + 93, + 183, + 183, + 183, + 298, + 28, + 28, + 145, + 145, + 75, + 230, + 230, + 29, + 394, + 394, + 29, + 247, + 331, + 133, + 133, + 193, + 193, + 193, + 386, + 78, + 245, + 37, + 170, + 130, + 185, + 272, + 272, + 272, + 272, + 100, + 100, + 388, + 85, + 85, + 247, + 247, + 269, + 269, + 39, + 156, + 305, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 110, + 110, + 110, + 217, + 289, + 289, + 182, + 379, + 134, + 355, + 224, + 338, + 338, + 69, + 143, + 143, + 164, + 202, + 299, + 299, + 299, + 4, + 4, + 236, + 236, + 377, + 377, + 91, + 91, + 91, + 236, + 316, + 316, + 316, + 91, + 91, + 91, + 91, + 91, + 143, + 304, + 304, + 304, + 17, + 185, + 274, + 274, + 274, + 274, + 83, + 83, + 83, + 149, + 149, + 149, + 392, + 392, + 392, + 392, + 76, + 76, + 161, + 161, + 384, + 116, + 116, + 225, + 384, + 384, + 8, + 159, + 159, + 397, + 125, + 155, + 80, + 80, + 80, + 260, + 260, + 45, + 252, + 5, + 197, + 100, + 100, + 388, + 388, + 388, + 388, + 388, + 100, + 238, + 88, + 255, + 112, + 180, + 26, + 26, + 245, + 175, + 175, + 249, + 115, + 249, + 62, + 62, + 344, + 77, + 77, + 355, + 355, + 355, + 355, + 355, + 78, + 78, + 184, + 297, + 49, + 395, + 180, + 180, + 180, + 395, + 89, + 89, + 89, + 279, + 160, + 279, + 53, + 205, + 358, + 358, + 274, + 121, + 188, + 398, + 398, + 398, + 123, + 217, + 287, + 394, + 177, + 177, + 177, + 342, + 93, + 43, + 43, + 224, + 224, + 224, + 378, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 166, + 166, + 166, + 387, + 387, + 115, + 115, + 115, + 136, + 279, + 279, + 92, + 92, + 92, + 92, + 200, + 334, + 334, + 92, + 92, + 92, + 92, + 173, + 320, + 320, + 4, + 4, + 4, + 4, + 4, + 258, + 267, + 267, + 57, + 153, + 153, + 300, + 59, + 207, + 369, + 369, + 369, + 93, + 201, + 296, + 128, + 128, + 165, + 165, + 165, + 302, + 302, + 128, + 128, + 128, + 128, + 214, + 341, + 341, + 341, + 341, + 341, + 36, + 135, + 135, + 135, + 135, + 135, + 135, + 285, + 15, + 15, + 15, + 15, + 218, + 218, + 218, + 218, + 334, + 73, + 73, + 73, + 232, + 334, + 131, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 342, + 23, + 23, + 23, + 179, + 295, + 58, + 146, + 146, + 297, + 297, + 297, + 53, + 193, + 193, + 193, + 296, + 67, + 195, + 195, + 195, + 195, + 195, + 339, + 339, + 339, + 339, + 130, + 182, + 182, + 321, + 103, + 103, + 335, + 335, + 103, + 303, + 124, + 286, + 31, + 31, + 345, + 236, + 236, + 345, + 345, + 345, + 83, + 204, + 270, + 270, + 74, + 209, + 209, + 316, + 316, + 10, + 10, + 186, + 377, + 120, + 120, + 120, + 204, + 204, + 204, + 204, + 267, + 267, + 267, + 267, + 128, + 259, + 259, + 259, + 348, + 348, + 29, + 221, + 221, + 397, + 50, + 50, + 159, + 349, + 349, + 349, + 349, + 349, + 349, + 99, + 250, + 344, + 16, + 16, + 16, + 219, + 219, + 219, + 352, + 23, + 23, + 23, + 168, + 379, + 379, + 100, + 246, + 246, + 246, + 246, + 319, + 130, + 257, + 368, + 58, + 58, + 58, + 240, + 240, + 322, + 63, + 63, + 63, + 178, + 178, + 178, + 178, + 178, + 390, + 97, + 211, + 211, + 211, + 329, + 329, + 48, + 161, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 74, + 194, + 194, + 194, + 270, + 112, + 112, + 266, + 347, + 104, + 217, + 279, + 279, + 129, + 129, + 129, + 175, + 366, + 130, + 130, + 130, + 130, + 219, + 219, + 345, + 35, + 35, + 35, + 35, + 144, + 144, + 144, + 144, + 144, + 144, + 144, + 144, + 364, + 364, + 364, + 112, + 153, + 153, + 382, + 55, + 248, + 380, + 380, + 76, + 76, + 76, + 180, + 357, + 357, + 66, + 165, + 165, + 390, + 42, + 245, + 377, + 377, + 377, + 137, + 137, + 137, + 295, + 295, + 295, + 295, + 105, + 105, + 105, + 258, + 258, + 376, + 376, + 376, + 5, + 5, + 144, + 318, + 318, + 318, + 318, + 55, + 55, + 55, + 55, + 226, + 399, + 265, + 265, + 319, + 170, + 170, + 170, + 170, + 282, + 233, + 233, + 383, + 185, + 77, + 77, + 185, + 345, + 345, + 345, + 200, + 42, + 42, + 42, + 42, + 42, + 200, + 200, + 200, + 350, + 55, + 251, + 382, + 217, + 217, + 276, + 276, + 127, + 188, + 188, + 188, + 188, + 188, + 188, + 387, + 387, + 26, + 241, + 275, + 275, + 275, + 275, + 127, + 127, + 127, + 156, + 349, + 349, + 349, + 349, + 349, + 88, + 248, + 248, + 248, + 321, + 217, + 340, + 212, + 376, + 10, + 161, + 289, + 157, + 355, + 60, + 263, + 263, + 340, + 340, + 340, + 340, + 150, + 150, + 318, + 325, + 325, + 326, + 354, + 345, + 231, + 345, + 345, + 345, + 41, + 190, + 190, + 354, + 354, + 76, + 76, + 76, + 76, + 76, + 76, + 179, + 179, + 179, + 179, + 179, + 179, + 179, + 340, + 30, + 208, + 329, + 59, + 252, + 252, + 329, + 175, + 309, + 309, + 309, + 185, + 296, + 204, + 334, + 85, + 85, + 299, + 313, + 183, + 219, + 282, + 282, + 127, + 370, + 163, + 163, + 85, + 138, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 174, + 18, + 183, + 183, + 368, + 133, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 211, + 211, + 211, + 318, + 157, + 259, + 259, + 156, + 156, + 218, + 218, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 34, + 34, + 169, + 169, + 339, + 73, + 251, + 396, + 6, + 6, + 169, + 169, + 169, + 169, + 349, + 349, + 4, + 181, + 224, + 176, + 176, + 154, + 154, + 154, + 269, + 213, + 163, + 163, + 393, + 393, + 163, + 163, + 343, + 32, + 32, + 260, + 260, + 260, + 260, + 393, + 215, + 215, + 215, + 334, + 334, + 15, + 213, + 213, + 375, + 375, + 40, + 258, + 258, + 258, + 258, + 258, + 258, + 258, + 387, + 387, + 40, + 252, + 302, + 120, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 317, + 317, + 55, + 55, + 55, + 55, + 229, + 391, + 391, + 35, + 35, + 153, + 272, + 272, + 272, + 272, + 272, + 125, + 233, + 233, + 233, + 233, + 288, + 54, + 159, + 159, + 159, + 159, + 333, + 173, + 173, + 173, + 173, + 173, + 323, + 323, + 259, + 285, + 149, + 365, + 365, + 365, + 169, + 169, + 169, + 343, + 179, + 344, + 130, + 158, + 158, + 356, + 356, + 356, + 90, + 90, + 90, + 205, + 205, + 325, + 325, + 325, + 182, + 268, + 268, + 268, + 268, + 268, + 154, + 383, + 383, + 46, + 247, + 247, + 247, + 247, + 269, + 269, + 84, + 84, + 84, + 256, + 269, + 269, + 269, + 52, + 228, + 368, + 111, + 144, + 335, + 17, + 213, + 213, + 326, + 72, + 187, + 187, + 398, + 398, + 398, + 75, + 144, + 295, + 295, + 15, + 15, + 15, + 15, + 15, + 15, + 191, + 191, + 297, + 297, + 53, + 53, + 181, + 181, + 385, + 385, + 91, + 91, + 91, + 91, + 91, + 91, + 264, + 280, + 280, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 250, + 250, + 250, + 250, + 250, + 294, + 62, + 252, + 340, + 340, + 126, + 126, + 126, + 266, + 334, + 334, + 103, + 103, + 103, + 103, + 103, + 230, + 230, + 230, + 352, + 3, + 213, + 339, + 66, + 241, + 241, + 327, + 61, + 155, + 155, + 336, + 336, + 336, + 336, + 22, + 22, + 22, + 22, + 193, + 193, + 345, + 69, + 232, + 274, + 274, + 274, + 104, + 104, + 169, + 169, + 351, + 54, + 54, + 164, + 350, + 350, + 64, + 64, + 64, + 147, + 147, + 147, + 147, + 147, + 279, + 51, + 244, + 244, + 244, + 289, + 289, + 26, + 26, + 26, + 262, + 310, + 310, + 310, + 310, + 310, + 310, + 67, + 67, + 140, + 363, + 68, + 200, + 200, + 200, + 327, + 327, + 327, + 327, + 63, + 146, + 267, + 267, + 45, + 45, + 45, + 45, + 164, + 377, + 70, + 246, + 246, + 378, + 378, + 378, + 5, + 5, + 197, + 197, + 339, + 131, + 161, + 386, + 7, + 211, + 211, + 355, + 355, + 110, + 110, + 142, + 395, + 395, + 395, + 395, + 395, + 395, + 92, + 92, + 92, + 183, + 183, + 183, + 109, + 109, + 231, + 231, + 231, + 19, + 19, + 175, + 126, + 126, + 126, + 179, + 179, + 34, + 34, + 34, + 146, + 146, + 95, + 199, + 199, + 47, + 47, + 47, + 47, + 47, + 156, + 101, + 209, + 209, + 209, + 119, + 154, + 154, + 26, + 270, + 26, + 26, + 26, + 235, + 235, + 235, + 235, + 63, + 224, + 281, + 281, + 281, + 281, + 94, + 156, + 273, + 273, + 25, + 25, + 179, + 87, + 87, + 87, + 87, + 229, + 33, + 207, + 22, + 100, + 393, + 393, + 203, + 203, + 203, + 393, + 393, + 393, + 393, + 393, + 108, + 226, + 99, + 23, + 37, + 115, + 281, + 281, + 281, + 115, + 115, + 115, + 115, + 115, + 115, + 115, + 346, + 25, + 25, + 25, + 240, + 383, + 82, + 316, + 316, + 316, + 316, + 113, + 113, + 340, + 15, + 15, + 135, + 135, + 135, + 135, + 375, + 86, + 115, + 121, + 121, + 121, + 376, + 121, + 121, + 230, + 61, + 61, + 294, + 294, + 85, + 83, + 10, + 151, + 151, + 151, + 151, + 354, + 354, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 47, + 206, + 206, + 318, + 240, + 364, + 364, + 96, + 96, + 160, + 160, + 364, + 364, + 14, + 155, + 155, + 155, + 155, + 364, + 341, + 190, + 190, + 190, + 190, + 329, + 69, + 69, + 164, + 283, + 283, + 59, + 172, + 172, + 390, + 41, + 41, + 41, + 164, + 164, + 326, + 326, + 326, + 326, + 186, + 186, + 186, + 93, + 93, + 186, + 306, + 216, + 216, + 216, + 275, + 180, + 312, + 312, + 312, + 312, + 312, + 312, + 37, + 230, + 288, + 8, + 8, + 8, + 8, + 197, + 331, + 224, + 224, + 352, + 352, + 239, + 239, + 239, + 239, + 343, + 343, + 218, + 218, + 218, + 336, + 94, + 94, + 177, + 54, + 137, + 1, + 179, + 376, + 39, + 152, + 152, + 385, + 55, + 55, + 212, + 212, + 309, + 4, + 4, + 4, + 4, + 182, + 322, + 322, + 39, + 224, + 351, + 351, + 101, + 101, + 137, + 325, + 5, + 181, + 181, + 275, + 275, + 63, + 63, + 63, + 184, + 184, + 184, + 184, + 184, + 335, + 335, + 335, + 335, + 335, + 187, + 187, + 187, + 388, + 388, + 208, + 208, + 208, + 389, + 389, + 389, + 389, + 389, + 389, + 63, + 141, + 322, + 114, + 191, + 191, + 345, + 345, + 42, + 247, + 374, + 32, + 238, + 372, + 372, + 0, + 206, + 345, + 345, + 28, + 28, + 28, + 28, + 204, + 204, + 336, + 56, + 242, + 282, + 109, + 185, + 307, + 307, + 94, + 164, + 292, + 292, + 123, + 142, + 142, + 310, + 310, + 228, + 297, + 297, + 297, + 89, + 254, + 283, + 228, + 277, + 241, + 241, + 241, + 241, + 241, + 273, + 273, + 205, + 343, + 150, + 150, + 261, + 220, + 220, + 220, + 220, + 352, + 255, + 270, + 270, + 270, + 270, + 270, + 270, + 270, + 164, + 198, + 198, + 361, + 244, + 180, + 182, + 182, + 182, + 81, + 81, + 182, + 357, + 357, + 357, + 357, + 238, + 238, + 238, + 352, + 352, + 352, + 21, + 389, + 79, + 339, + 33, + 383, + 383, + 95, + 342, + 298, + 298, + 282, + 282, + 56, + 56, + 282, + 154, + 282, + 282, + 282, + 282, + 282, + 75, + 75, + 196, + 196, + 196, + 297, + 297, + 7, + 238, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 77, + 222, + 222, + 222, + 341, + 241, + 319, + 319, + 319, + 319, + 319, + 319, + 55, + 136, + 339, + 89, + 197, + 310, + 10, + 360, + 360, + 360, + 360, + 360, + 360, + 54, + 234, + 298, + 298, + 298, + 5, + 5, + 255, + 255, + 255, + 255, + 255, + 255, + 340, + 340, + 340, + 2, + 2, + 261, + 261, + 361, + 361, + 43, + 43, + 231, + 231, + 231, + 267, + 267, + 111, + 217, + 217, + 334, + 334, + 120, + 223, + 223, + 223, + 307, + 74, + 74, + 221, + 221, + 221, + 221, + 221, + 342, + 24, + 220, + 220, + 220, + 269, + 107, + 212, + 212, + 212, + 313, + 96, + 96, + 96, + 262, + 298, + 24, + 24, + 24, + 202, + 376, + 7, + 7, + 207, + 288, + 288, + 90, + 90, + 90, + 186, + 360, + 360, + 32, + 32, + 164, + 399, + 65, + 210, + 210, + 299, + 6, + 266, + 266, + 266, + 266, + 307, + 252, + 327, + 148, + 342, + 82, + 82, + 256, + 256, + 380, + 24, + 24, + 230, + 230, + 328, + 104, + 194, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 158, + 158, + 158, + 390, + 91, + 176, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 229, + 133, + 133, + 165, + 297, + 85, + 189, + 271, + 271, + 271, + 40, + 135, + 135, + 122, + 122, + 122, + 122, + 170, + 170, + 106, + 142, + 142, + 142, + 142, + 142, + 142, + 288, + 122, + 198, + 105, + 363, + 363, + 105, + 215, + 215, + 215, + 215, + 281, + 281, + 281, + 86, + 86, + 86, + 188, + 272, + 272, + 16, + 16, + 16, + 242, + 242, + 242, + 242, + 372, + 103, + 189, + 386, + 120, + 195, + 195, + 284, + 284, + 43, + 43, + 194, + 194, + 389, + 389, + 389, + 389, + 109, + 214, + 277, + 277, + 119, + 119, + 119, + 187, + 293, + 78, + 78, + 235, + 235, + 315, + 258, + 373, + 147, + 343, + 73, + 73, + 213, + 213, + 301, + 301, + 301, + 301, + 301, + 18, + 18, + 185, + 185, + 185, + 185, + 185, + 185, + 347, + 83, + 83, + 189, + 310, + 245, + 376, + 376, + 376, + 229, + 328, + 328, + 14, + 14, + 173, + 396, + 123, + 123, + 123, + 162, + 379, + 379, + 379, + 379, + 379, + 379, + 32, + 161, + 161, + 345, + 345, + 49, + 209, + 209, + 209, + 390, + 194, + 194, + 286, + 286, + 286, + 286, + 286, + 148, + 148, + 148, + 31, + 148, + 286, + 96, + 96, + 200, + 352, + 352, + 352, + 352, + 256, + 359, + 236, + 320, + 320, + 320, + 204, + 129, + 129, + 129, + 204, + 204, + 330, + 217, + 217, + 346, + 81, + 194, + 194, + 194, + 194, + 296, + 10, + 10, + 10, + 10, + 10, + 189, + 330, + 330, + 330, + 330, + 37, + 222, + 222, + 339, + 122, + 188, + 319, + 319, + 319, + 319, + 57, + 254, + 368, + 368, + 81, + 81, + 157, + 157, + 348, + 18, + 18, + 18, + 245, + 245, + 245, + 245, + 245, + 359, + 19, + 149, + 131, + 287, + 287, + 131, + 253, + 338, + 338, + 54, + 54, + 167, + 363, + 128, + 128, + 128, + 167, + 167, + 167, + 167, + 167, + 167, + 167, + 340, + 340, + 340, + 340, + 340, + 340, + 17, + 258, + 369, + 130, + 146, + 381, + 381, + 381, + 47, + 47, + 47, + 47, + 47, + 47, + 201, + 315, + 315, + 315, + 315, + 76, + 76, + 76, + 142, + 351, + 351, + 351, + 351, + 351, + 351, + 85, + 85, + 243, + 300, + 300, + 115, + 182, + 182, + 182, + 372, + 372, + 372, + 372, + 372, + 372, + 16, + 153, + 153, + 153, + 303, + 303, + 110, + 173, + 332, + 167, + 129, + 129, + 129, + 167, + 309, + 259, + 363, + 229, + 307, + 307, + 307, + 256, + 334, + 49, + 49, + 49, + 234, + 385, + 195, + 296, + 126, + 126, + 173, + 362, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 195, + 195, + 195, + 195, + 195, + 352, + 104, + 156, + 156, + 371, + 371, + 371, + 12, + 217, + 372, + 133, + 171, + 171, + 171, + 346, + 9, + 185, + 185, + 185, + 185, + 185, + 185, + 399, + 48, + 48, + 48, + 48, + 177, + 177, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 91, + 169, + 169, + 169, + 270, + 270, + 270, + 36, + 36, + 161, + 366, + 106, + 219, + 219, + 219, + 219, + 219, + 219, + 219, + 355, + 12, + 256, + 256, + 256, + 256, + 329, + 329, + 54, + 54, + 182, + 182, + 182, + 303, + 68, + 68, + 68, + 68, + 242, + 242, + 396, + 0, + 265, + 382, + 238, + 238, + 238, + 238, + 238, + 342, + 162, + 370, + 101, + 199, + 389, + 389, + 389, + 389, + 57, + 57, + 57, + 213, + 213, + 304, + 122, + 161, + 161, + 275, + 79, + 174, + 296, + 296, + 296, + 296, + 28, + 28, + 182, + 182, + 182, + 182, + 182, + 351, + 115, + 189, + 189, + 397, + 11, + 258, + 283, + 68, + 203, + 203, + 203, + 203, + 301, + 19, + 19, + 246, + 374, + 374, + 130, + 130, + 175, + 55, + 55, + 55, + 169, + 169, + 169, + 131, + 131, + 243, + 286, + 81, + 81, + 170, + 330, + 330, + 54, + 209, + 209, + 209, + 209, + 209, + 395, + 65, + 252, + 252, + 252, + 377, + 34, + 34, + 171, + 334, + 85, + 85, + 165, + 363, + 363, + 363, + 363, + 363, + 363, + 13, + 219, + 219, + 219, + 347, + 0, + 194, + 354, + 354, + 98, + 98, + 260, + 47, + 253, + 253, + 75, + 75, + 75, + 134, + 84, + 187, + 326, + 326, + 123, + 180, + 180, + 380, + 380, + 380, + 380, + 67, + 266, + 53, + 53, + 220, + 220, + 397, + 76, + 193, + 379, + 21, + 191, + 269, + 59, + 59, + 136, + 353, + 353, + 353, + 42, + 165, + 165, + 165, + 165, + 336, + 336, + 336, + 108, + 190, + 328, + 328, + 75, + 75, + 75, + 75, + 75, + 75, + 260, + 260, + 386, + 386, + 130, + 130, + 201, + 389, + 389, + 102, + 142, + 352, + 352, + 19, + 19, + 158, + 158, + 158, + 158, + 158, + 158, + 331, + 36, + 36, + 209, + 209, + 397, + 397, + 142, + 273, + 251, + 389, + 389, + 389, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 283, + 171, + 284, + 284, + 109, + 109, + 109, + 160, + 160, + 365, + 365, + 365, + 365, + 365, + 365, + 116, + 264, + 264, + 264, + 324, + 170, + 9, + 9, + 170, + 170, + 324, + 324, + 29, + 150, + 338, + 83, + 148, + 148, + 293, + 293, + 98, + 98, + 98, + 262, + 262, + 397, + 90, + 90, + 246, + 356, + 102, + 150, + 150, + 150, + 322, + 322, + 322, + 322, + 26, + 152, + 3, + 3, + 3, + 265, + 80, + 80, + 153, + 366, + 7, + 7, + 146, + 146, + 146, + 7, + 7, + 264, + 65, + 322, + 65, + 65, + 161, + 92, + 229, + 229, + 74, + 321, + 74, + 247, + 320, + 320, + 91, + 234, + 131, + 212, + 212, + 36, + 263, + 263, + 365, + 365, + 4, + 150, + 310, + 310, + 310, + 105, + 224, + 350, + 350, + 350, + 23, + 23, + 23, + 23, + 159, + 159, + 159, + 159, + 159, + 295, + 92, + 138, + 397, + 108, + 108, + 108, + 178, + 178, + 178, + 178, + 317, + 118, + 151, + 151, + 151, + 356, + 324, + 324, + 236, + 236, + 324, + 295, + 211, + 211, + 35, + 35, + 211, + 211, + 211, + 344, + 344, + 266, + 363, + 363, + 151, + 385, + 3, + 318, + 123, + 123, + 123, + 40, + 113, + 349, + 349, + 16, + 221, + 221, + 355, + 355, + 208, + 292, + 292, + 292, + 292, + 92, + 149, + 149, + 149, + 347, + 347, + 347, + 347, + 111, + 111, + 111, + 138, + 138, + 303, + 303, + 129, + 129, + 239, + 239, + 321, + 38, + 38, + 38, + 225, + 225, + 353, + 104, + 104, + 152, + 294, + 72, + 253, + 253, + 253, + 253, + 130, + 235, + 142, + 387, + 142, + 171, + 226, + 176, + 102, + 102, + 102, + 176, + 95, + 95, + 95, + 350, + 350, + 95, + 95, + 95, + 95, + 237, + 320, + 320, + 320, + 11, + 11, + 11, + 155, + 155, + 385, + 385, + 29, + 29, + 176, + 126, + 126, + 126, + 152, + 152, + 2, + 2, + 2, + 2, + 170, + 387, + 4, + 4, + 203, + 22, + 230, + 230, + 230, + 31, + 31, + 31, + 80, + 80, + 11, + 86, + 86, + 92, + 92, + 92, + 327, + 92, + 92, + 90, + 90, + 90, + 122, + 122, + 122, + 122, + 182, + 122, + 87, + 0, + 353, + 0, + 298, + 298, + 72, + 72, + 72, + 72, + 72, + 72, + 72, + 335, + 335, + 335, + 335, + 335, + 101, + 236, + 236, + 236, + 236, + 382, + 93, + 93, + 278, + 99, + 99, + 235, + 235, + 235, + 297, + 128, + 210, + 210, + 210, + 337, + 77, + 223, + 223, + 223, + 267, + 267, + 267, + 267, + 40, + 40, + 40, + 40, + 243, + 377, + 41, + 176, + 176, + 321, + 321, + 321, + 126, + 126, + 152, + 152, + 152, + 337, + 1, + 135, + 135, + 135, + 327, + 327, + 327, + 327, + 66, + 239, + 340, + 340, + 340, + 340, + 340, + 340, + 21, + 265, + 265, + 265, + 265, + 284, + 50, + 50, + 192, + 279, + 28, + 216, + 216, + 283, + 283, + 48, + 48, + 254, + 254, + 254, + 373, + 99, + 185, + 322, + 322, + 322, + 322, + 77, + 77, + 196, + 353, + 25, + 244, + 244, + 244, + 244, + 244, + 375, + 37, + 177, + 336, + 336, + 69, + 69, + 207, + 207, + 273, + 273, + 86, + 86, + 86, + 86, + 241, + 348, + 64, + 194, + 194, + 194, + 194, + 194, + 194, + 285, + 285, + 55, + 55, + 166, + 166, + 166, + 166, + 342, + 342, + 74, + 74, + 216, + 216, + 216, + 334, + 334, + 79, + 79, + 79, + 237, + 392, + 392, + 392, + 392, + 392, + 392, + 392, + 2, + 2, + 163, + 163, + 349, + 349, + 71, + 71, + 71, + 208, + 378, + 378, + 61, + 61, + 188, + 15, + 219, + 121, + 213, + 36, + 138, + 5, + 5, + 5, + 5, + 5, + 5, + 161, + 100, + 100, + 292, + 292, + 292, + 100, + 100, + 100, + 171, + 171, + 348, + 29, + 29, + 29, + 247, + 247, + 247, + 118, + 118, + 137, + 25, + 258, + 16, + 226, + 226, + 197, + 161, + 161, + 22, + 22, + 22, + 161, + 161, + 4, + 197, + 197, + 123, + 123, + 259, + 117, + 146, + 146, + 146, + 84, + 84, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 206, + 206, + 355, + 355, + 355, + 355, + 56, + 214, + 214, + 371, + 371, + 371, + 371, + 169, + 258, + 254, + 378, + 378, + 378, + 196, + 196, + 97, + 97, + 97, + 196, + 196, + 292, + 292, + 292, + 119, + 119, + 224, + 292, + 5, + 5, + 5, + 5, + 5, + 216, + 298, + 298, + 36, + 146, + 146, + 146, + 146, + 146, + 146, + 146, + 146, + 384, + 384, + 384, + 384, + 91, + 91, + 91, + 136, + 136, + 136, + 136, + 136, + 298, + 104, + 104, + 104, + 223, + 223, + 397, + 397, + 397, + 397, + 397, + 106, + 251, + 317, + 317, + 101, + 101, + 101, + 194, + 194, + 333, + 88, + 139, + 329, + 329, + 329, + 115, + 168, + 168, + 360, + 360, + 36, + 36, + 36, + 211, + 211, + 211, + 211, + 211, + 211, + 313, + 72, + 184, + 387, + 387, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 193, + 193, + 279, + 279, + 279, + 61, + 147, + 340, + 56, + 56, + 237, + 237, + 297, + 108, + 207, + 207, + 334, + 334, + 334, + 334, + 28, + 140, + 331, + 119, + 119, + 184, + 291, + 15, + 15, + 15, + 227, + 227, + 333, + 333, + 333, + 125, + 190, + 190, + 375, + 38, + 38, + 205, + 283, + 24, + 24, + 24, + 225, + 281, + 281, + 281, + 281, + 281, + 8, + 8, + 190, + 190, + 190, + 274, + 111, + 213, + 213, + 338, + 234, + 322, + 322, + 274, + 81, + 81, + 81, + 170, + 170, + 170, + 170, + 274, + 274, + 228, + 228, + 228, + 85, + 228, + 228, + 228, + 383, + 383, + 383, + 172, + 366, + 110, + 110, + 253, + 286, + 286, + 162, + 322, + 322, + 322, + 3, + 317, + 77, + 77, + 77, + 318, + 77, + 307, + 20, + 20, + 348, + 42, + 348, + 348, + 311, + 294, + 294, + 335, + 172, + 172, + 335, + 335, + 335, + 197, + 381, + 381, + 381, + 381, + 381, + 285, + 285, + 285, + 285, + 285, + 285, + 384, + 384, + 384, + 377, + 353, + 342, + 342, + 362, + 362, + 276, + 233, + 276, + 276, + 103, + 103, + 103, + 103, + 135, + 283, + 87, + 87, + 143, + 143, + 143, + 303, + 303, + 35, + 219, + 336, + 59, + 59, + 59, + 348, + 59, + 267, + 267, + 267, + 179, + 179, + 396, + 396, + 396, + 135, + 89, + 135, + 389, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 183, + 324, + 74, + 198, + 321, + 321, + 90, + 90, + 249, + 249, + 294, + 294, + 243, + 350, + 261, + 345, + 345, + 345, + 345, + 345, + 118, + 118, + 118, + 240, + 383, + 383, + 140, + 334, + 49, + 161, + 354, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 186, + 186, + 284, + 78, + 143, + 300, + 300, + 300, + 189, + 189, + 306, + 182, + 398, + 398, + 398, + 180, + 353, + 23, + 265, + 265, + 265, + 265, + 265, + 265, + 305, + 305, + 43, + 192, + 12, + 136, + 136, + 318, + 155, + 155, + 280, + 211, + 211, + 211, + 211, + 198, + 141, + 215, + 87, + 215, + 215, + 215, + 330, + 330, + 50, + 149, + 116, + 116, + 214, + 214, + 214, + 214, + 350, + 350, + 350, + 194, + 326, + 326, + 120, + 199, + 376, + 376, + 376, + 376, + 376, + 31, + 31, + 216, + 216, + 216, + 216, + 320, + 320, + 56, + 184, + 398, + 1, + 1, + 182, + 182, + 297, + 11, + 11, + 11, + 11, + 11, + 11, + 186, + 343, + 343, + 65, + 65, + 263, + 320, + 129, + 129, + 189, + 189, + 363, + 363, + 363, + 98, + 98, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 377, + 377, + 83, + 138, + 138, + 307, + 307, + 148, + 148, + 148, + 381, + 381, + 381, + 381, + 241, + 388, + 388, + 84, + 138, + 138, + 138, + 138, + 138, + 303, + 303, + 303, + 303, + 1, + 1, + 149, + 368, + 14, + 14, + 14, + 14, + 189, + 189, + 189, + 358, + 119, + 203, + 399, + 399, + 399, + 399, + 399, + 84, + 84, + 183, + 368, + 118, + 179, + 4, + 233, + 49, + 49, + 216, + 216, + 362, + 362, + 49, + 49, + 49, + 216, + 216, + 383, + 119, + 223, + 223, + 223, + 358, + 28, + 28, + 202, + 288, + 288, + 69, + 215, + 358, + 28, + 156, + 27, + 355, + 355, + 355, + 355, + 27, + 27, + 135, + 358, + 358, + 21, + 173, + 348, + 94, + 94, + 388, + 112, + 128, + 247, + 370, + 128, + 128, + 181, + 181, + 293, + 293, + 115, + 367, + 367, + 367, + 72, + 10, + 130, + 83, + 30, + 111, + 185, + 185, + 185, + 185, + 185, + 185, + 185, + 185, + 335, + 47, + 47, + 241, + 339, + 339, + 42, + 239, + 122, + 122, + 187, + 187, + 187, + 187, + 187, + 187, + 187, + 187, + 366, + 366, + 22, + 156, + 399, + 9, + 9, + 145, + 145, + 328, + 328, + 79, + 339, + 339, + 56, + 56, + 56, + 137, + 320, + 320, + 320, + 320, + 320, + 61, + 61, + 61, + 61, + 61, + 249, + 249, + 249, + 249, + 249, + 282, + 282, + 2, + 228, + 228, + 288, + 288, + 15, + 15, + 226, + 226, + 354, + 354, + 354, + 12, + 12, + 180, + 309, + 309, + 309, + 120, + 239, + 286, + 286, + 286, + 286, + 39, + 39, + 39, + 314, + 48, + 48, + 278, + 25, + 25, + 25, + 139, + 269, + 337, + 294, + 237, + 294, + 354, + 309, + 125, + 376, + 63, + 63, + 350, + 350, + 71, + 222, + 375, + 375, + 375, + 375, + 40, + 40, + 40, + 221, + 221, + 268, + 20, + 380, + 109, + 296, + 59, + 59, + 59, + 147, + 147, + 147, + 147, + 394, + 124, + 108, + 108, + 213, + 213, + 288, + 74, + 74, + 197, + 197, + 197, + 277, + 277, + 277, + 107, + 248, + 395, + 395, + 193, + 339, + 283, + 365, + 71, + 71, + 308, + 399, + 93, + 236, + 236, + 236, + 399, + 399, + 101, + 365, + 346, + 195, + 195, + 195, + 195, + 195, + 393, + 28, + 28, + 28, + 163, + 396, + 36, + 36, + 191, + 191, + 273, + 113, + 113, + 113, + 113, + 113, + 161, + 161, + 269, + 57, + 135, + 135, + 318, + 111, + 223, + 223, + 223, + 223, + 371, + 371, + 371, + 371, + 371, + 371, + 25, + 25, + 141, + 385, + 133, + 264, + 264, + 264, + 398, + 398, + 105, + 202, + 202, + 202, + 202, + 202, + 202, + 202, + 331, + 5, + 5, + 231, + 375, + 41, + 41, + 146, + 146, + 388, + 388, + 388, + 388, + 96, + 265, + 265, + 265, + 265, + 265, + 340, + 95, + 161, + 382, + 11, + 251, + 251, + 294, + 294, + 5, + 245, + 304, + 304, + 224, + 187, + 187, + 51, + 301, + 51, + 187, + 16, + 150, + 361, + 140, + 369, + 369, + 369, + 369, + 369, + 6, + 6, + 163, + 350, + 350, + 350, + 31, + 241, + 396, + 93, + 179, + 179, + 179, + 179, + 334, + 334, + 334, + 89, + 141, + 141, + 141, + 141, + 141, + 294, + 104, + 190, + 318, + 318, + 318, + 33, + 189, + 189, + 189, + 189, + 189, + 189, + 298, + 298, + 103, + 103, + 197, + 306, + 151, + 80, + 80, + 80, + 80, + 151, + 151, + 151, + 318, + 53, + 198, + 317, + 17, + 17, + 251, + 251, + 340, + 340, + 340, + 340, + 340, + 340, + 340, + 340, + 12, + 240, + 240, + 335, + 335, + 335, + 202, + 202, + 301, + 94, + 179, + 340, + 160, + 160, + 311, + 113, + 155, + 279, + 222, + 224, + 224, + 169, + 149, + 164, + 164, + 203, + 155, + 155, + 155, + 155, + 155, + 234, + 175, + 201, + 290, + 290, + 290, + 290, + 290, + 201, + 201, + 276, + 145, + 187, + 336, + 336, + 187, + 187, + 187, + 187, + 363, + 363, + 60, + 152, + 152, + 282, + 54, + 359, + 359, + 70, + 369, + 98, + 203, + 203, + 346, + 49, + 341, + 312, + 201, + 201, + 312, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 363, + 363, + 363, + 363, + 1, + 214, + 214, + 14, + 166, + 65, + 65, + 65, + 147, + 147, + 147, + 303, + 44, + 44, + 208, + 208, + 208, + 208, + 382, + 382, + 382, + 15, + 15, + 15, + 170, + 170, + 170, + 170, + 388, + 45, + 191, + 191, + 191, + 393, + 199, + 199, + 212, + 212, + 212, + 212, + 95, + 95, + 212, + 212, + 212, + 349, + 74, + 74, + 74, + 74, + 237, + 237, + 366, + 126, + 126, + 259, + 393, + 97, + 260, + 353, + 353, + 353, + 353, + 353, + 79, + 79, + 79, + 79, + 138, + 138, + 277, + 73, + 73, + 374, + 115, + 313, + 40, + 305, + 305, + 243, + 305, + 305, + 3, + 391, + 36, + 36, + 152, + 152, + 295, + 111, + 111, + 111, + 111, + 238, + 238, + 356, + 356, + 356, + 356, + 18, + 18, + 147, + 352, + 352, + 217, + 160, + 160, + 267, + 53, + 53, + 160, + 160, + 18, + 67, + 67, + 67, + 126, + 351, + 351, + 351, + 351, + 126, + 345, + 36, + 36, + 323, + 323, + 27, + 27, + 211, + 211, + 211, + 272, + 45, + 99, + 291, + 26, + 15, + 15, + 164, + 164, + 27, + 27, + 237, + 36, + 232, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 355, + 355, + 21, + 378, + 7, + 142, + 142, + 142, + 142, + 283, + 111, + 111, + 210, + 210, + 270, + 270, + 69, + 69, + 69, + 69, + 229, + 229, + 374, + 374, + 374, + 374, + 374, + 48, + 48, + 48, + 232, + 313, + 122, + 122, + 122, + 216, + 340, + 38, + 225, + 272, + 272, + 272, + 103, + 103, + 103, + 175, + 175, + 307, + 69, + 69, + 136, + 136, + 399, + 116, + 160, + 160, + 382, + 382, + 382, + 44, + 218, + 218, + 218, + 316, + 316, + 316, + 316, + 316, + 49, + 49, + 49, + 49, + 230, + 366, + 366, + 36, + 240, + 240, + 240, + 370, + 63, + 251, + 273, + 273, + 273, + 273, + 273, + 273, + 121, + 121, + 121, + 227, + 227, + 227, + 325, + 325, + 325, + 325, + 325, + 325, + 112, + 199, + 199, + 312, + 312, + 0, + 0, + 0, + 151, + 322, + 32, + 195, + 319, + 319, + 319, + 319, + 319, + 123, + 123, + 123, + 154, + 154, + 154, + 285, + 61, + 189, + 301, + 301, + 301, + 127, + 253, + 374, + 130, + 239, + 239, + 239, + 239, + 239, + 239, + 239, + 393, + 77, + 156, + 156, + 399, + 89, + 89, + 89, + 237, + 335, + 335, + 65, + 65, + 202, + 202, + 308, + 308, + 308, + 308, + 308, + 308, + 308, + 72, + 209, + 209, + 361, + 361, + 82, + 235, + 290, + 290, + 203, + 385, + 385, + 385, + 245, + 292, + 292, + 93, + 93, + 93, + 180, + 370, + 370, + 295, + 295, + 295, + 366, + 152, + 152, + 77, + 77, + 207, + 104, + 180, + 344, + 157, + 383, + 383, + 383, + 383, + 9, + 9, + 9, + 220, + 220, + 20, + 20, + 20, + 158, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 162, + 310, + 120, + 201, + 333, + 333, + 13, + 258, + 337, + 337, + 208, + 208, + 269, + 269, + 269, + 269, + 83, + 83, + 83, + 180, + 40, + 98, + 63, + 370, + 370, + 370, + 86, + 186, + 186, + 366, + 366, + 31, + 241, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 26, + 237, + 237, + 321, + 321, + 394, + 391, + 290, + 51, + 322, + 39, + 313, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 285, + 47, + 47, + 47, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 196, + 196, + 196, + 196, + 328, + 328, + 100, + 100, + 138, + 138, + 230, + 226, + 226, + 226, + 226, + 226, + 226, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 261, + 282, + 282, + 101, + 101, + 101, + 101, + 214, + 396, + 396, + 236, + 236, + 236, + 76, + 76, + 76, + 236, + 363, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 279, + 279, + 279, + 136, + 211, + 223, + 219, + 174, + 286, + 286, + 286, + 286, + 119, + 144, + 144, + 387, + 387, + 97, + 169, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 145, + 145, + 145, + 87, + 87, + 87, + 145, + 128, + 152, + 152, + 152, + 381, + 7, + 7, + 176, + 176, + 37, + 203, + 44, + 232, + 80, + 80, + 80, + 229, + 229, + 229, + 65, + 256, + 256, + 256, + 256, + 382, + 55, + 139, + 296, + 19, + 19, + 19, + 197, + 197, + 392, + 392, + 392, + 100, + 260, + 315, + 315, + 315, + 315, + 315, + 315, + 36, + 254, + 254, + 254, + 381, + 381, + 381, + 381, + 34, + 189, + 189, + 324, + 324, + 54, + 54, + 54, + 54, + 137, + 137, + 137, + 393, + 65, + 65, + 65, + 65, + 65, + 221, + 315, + 315, + 63, + 169, + 312, + 312, + 312, + 312, + 107, + 243, + 106, + 106, + 106, + 188, + 113, + 261, + 351, + 351, + 56, + 56, + 168, + 62, + 150, + 301, + 301, + 101, + 231, + 304, + 304, + 304, + 90, + 187, + 187, + 187, + 291, + 291, + 291, + 291, + 291, + 19, + 19, + 194, + 194, + 194, + 194, + 355, + 16, + 16, + 16, + 16, + 145, + 282, + 282, + 282, + 282, + 3, + 3, + 3, + 173, + 173, + 173, + 173, + 173, + 329, + 329, + 61, + 180, + 398, + 398, + 398, + 88, + 237, + 281, + 136, + 296, + 180, + 180, + 180, + 368, + 368, + 176, + 176, + 348, + 216, + 216, + 216, + 309, + 177, + 330, + 206, + 144, + 144, + 142, + 271, + 142, + 142, + 142, + 269, + 254, + 254, + 141, + 322, + 21, + 21, + 151, + 151, + 36, + 254, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 260, + 260, + 306, + 72, + 344, + 13, + 62, + 56, + 56, + 170, + 26, + 26, + 26, + 151, + 2, + 2, + 2, + 2, + 172, + 362, + 362, + 86, + 202, + 202, + 289, + 289, + 66, + 66, + 154, + 21, + 148, + 22, + 22, + 134, + 134, + 34, + 162, + 389, + 389, + 250, + 346, + 146, + 390, + 390, + 200, + 200, + 200, + 200, + 200, + 110, + 200, + 136, + 136, + 282, + 252, + 252, + 252, + 252, + 252, + 252, + 46, + 252, + 252, + 320, + 320, + 158, + 253, + 240, + 268, + 268, + 268, + 240, + 210, + 220, + 27, + 27, + 300, + 300, + 27, + 165, + 165, + 307, + 307, + 114, + 114, + 252, + 279, + 279, + 279, + 279, + 39, + 39, + 39, + 39, + 39, + 236, + 236, + 236, + 236, + 236, + 393, + 393, + 74, + 74, + 74, + 74, + 140, + 61, + 283, + 283, + 61, + 262, + 262, + 354, + 354, + 354, + 354, + 24, + 24, + 24, + 24, + 24, + 161, + 161, + 321, + 321, + 66, + 66, + 314, + 151, + 314, + 1, + 1, + 180, + 286, + 100, + 100, + 152, + 309, + 309, + 90, + 90, + 90, + 99, + 99, + 99, + 99, + 99, + 82, + 86, + 116, + 16, + 16, + 16, + 16, + 16, + 76, + 129, + 330, + 113, + 113, + 113, + 113, + 188, + 188, + 354, + 354, + 354, + 107, + 107, + 189, + 189, + 189, + 189, + 394, + 13, + 148, + 41, + 145, + 145, + 145, + 361, + 112, + 106, + 370, + 229, + 370, + 106, + 106, + 279, + 62, + 62, + 62, + 62, + 391, + 391, + 114, + 114, + 283, + 283, + 283, + 90, + 400, + 400, + 400, + 59, + 59, + 59, + 59, + 252, + 275, + 41, + 41, + 41, + 41, + 41, + 194, + 194, + 300, + 300, + 89, + 206, + 206, + 334, + 84, + 139, + 139, + 379, + 111, + 148, + 337, + 337, + 337, + 17, + 253, + 253, + 306, + 306, + 306, + 306, + 306, + 99, + 181, + 270, + 81, + 81, + 81, + 81, + 81, + 254, + 396, + 72, + 140, + 140, + 342, + 67, + 67, + 67, + 264, + 264, + 264, + 264, + 313, + 24, + 24, + 24, + 24, + 24, + 200, + 357, + 35, + 144, + 144, + 346, + 346, + 101, + 101, + 101, + 162, + 162, + 308, + 122, + 209, + 133, + 335, + 335, + 335, + 133, + 148, + 380, + 380, + 67, + 162, + 162, + 303, + 303, + 303, + 303, + 303, + 303, + 88, + 88, + 202, + 202, + 393, + 393, + 49, + 154, + 331, + 52, + 52, + 212, + 377, + 377, + 377, + 36, + 202, + 202, + 348, + 348, + 206, + 371, + 34, + 164, + 379, + 379, + 29, + 29, + 29, + 29, + 29, + 29, + 256, + 256, + 319, + 319, + 75, + 75, + 75, + 75, + 75, + 264, + 358, + 358, + 91, + 91, + 91, + 242, + 242, + 289, + 289, + 102, + 147, + 390, + 390, + 390, + 95, + 95, + 260, + 260, + 260, + 260, + 260, + 288, + 97, + 97, + 255, + 355, + 355, + 99, + 99, + 251, + 279, + 279, + 279, + 85, + 85, + 166, + 363, + 363, + 363, + 23, + 174, + 387, + 120, + 164, + 164, + 356, + 356, + 356, + 356, + 356, + 116, + 116, + 241, + 241, + 241, + 241, + 390, + 47, + 47, + 240, + 240, + 298, + 298, + 298, + 120, + 120, + 216, + 373, + 125, + 219, + 219, + 219, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 116, + 116, + 116, + 180, + 180, + 326, + 326, + 62, + 207, + 207, + 287, + 287, + 115, + 256, + 256, + 287, + 287, + 287, + 287, + 287, + 287, + 0, + 187, + 187, + 331, + 54, + 199, + 275, + 275, + 275, + 275, + 39, + 39, + 229, + 323, + 323, + 323, + 323, + 24, + 253, + 253, + 384, + 104, + 104, + 199, + 199, + 305, + 305, + 305, + 47, + 189, + 189, + 189, + 367, + 367, + 95, + 184, + 291, + 37, + 37, + 37, + 142, + 382, + 98, + 149, + 3, + 3, + 186, + 186, + 269, + 269, + 85, + 85, + 211, + 211, + 211, + 211, + 301, + 96, + 162, + 162, + 335, + 57, + 135, + 135, + 135, + 372, + 81, + 257, + 280, + 280, + 280, + 280, + 102, + 260, + 260, + 320, + 320, + 320, + 130, + 163, + 163, + 163, + 163, + 394, + 82, + 179, + 302, + 302, + 29, + 29, + 263, + 263, + 278, + 21, + 234, + 397, + 397, + 16, + 142, + 142, + 336, + 130, + 130, + 213, + 213, + 362, + 109, + 109, + 109, + 216, + 314, + 86, + 229, + 229, + 229, + 229, + 229, + 229, + 336, + 336, + 15, + 15, + 263, + 319, + 319, + 319, + 319, + 106, + 106, + 136, + 120, + 379, + 379, + 379, + 120, + 120, + 173, + 173, + 173, + 82, + 82, + 245, + 369, + 369, + 369, + 369, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 383, + 63, + 211, + 326, + 189, + 188, + 140, + 209, + 149, + 149, + 334, + 334, + 149, + 198, + 170, + 170, + 327, + 327, + 19, + 170, + 170, + 267, + 29, + 151, + 330, + 330, + 330, + 330, + 330, + 253, + 253, + 253, + 253, + 195, + 195, + 195, + 238, + 10, + 10, + 10, + 238, + 50, + 142, + 58, + 276, + 276, + 58, + 207, + 207, + 207, + 78, + 255, + 255, + 255, + 255, + 12, + 12, + 12, + 12, + 199, + 199, + 364, + 109, + 239, + 239, + 239, + 239, + 239, + 392, + 92, + 92, + 161, + 161, + 381, + 39, + 39, + 39, + 213, + 335, + 106, + 180, + 180, + 180, + 367, + 56, + 198, + 198, + 86, + 86, + 164, + 87, + 358, + 87, + 230, + 191, + 195, + 195, + 140, + 140, + 174, + 174, + 279, + 279, + 209, + 209, + 209, + 328, + 253, + 253, + 4, + 4, + 4, + 252, + 271, + 271, + 271, + 96, + 96, + 194, + 194, + 70, + 70, + 70, + 241, + 241, + 241, + 20, + 20, + 240, + 240, + 240, + 378, + 130, + 176, + 321, + 73, + 239, + 323, + 323, + 323, + 57, + 139, + 370, + 370, + 17, + 17, + 257, + 257, + 257, + 257, + 257, + 292, + 123, + 150, + 29, + 390, + 390, + 390, + 390, + 29, + 182, + 374, + 374, + 57, + 260, + 302, + 24, + 217, + 217, + 217, + 288, + 92, + 92, + 236, + 304, + 304, + 2, + 228, + 384, + 266, + 45, + 45, + 172, + 172, + 153, + 153, + 1, + 1, + 1, + 1, + 153, + 301, + 301, + 301, + 9, + 156, + 156, + 394, + 394, + 394, + 394, + 26, + 254, + 254, + 254, + 254, + 332, + 332, + 17, + 167, + 354, + 354, + 28, + 207, + 207, + 268, + 268, + 268, + 268, + 268, + 268, + 268, + 268, + 50, + 151, + 151, + 151, + 151, + 151, + 302, + 302, + 199, + 199, + 21, + 199, + 199, + 199, + 199, + 330, + 330, + 114, + 149, + 149, + 269, + 269, + 269, + 64, + 64, + 155, + 155, + 330, + 330, + 187, + 339, + 339, + 339, + 186, + 323, + 232, + 316, + 199, + 199, + 331, + 238, + 238, + 270, + 0, + 144, + 144, + 379, + 127, + 147, + 371, + 371, + 183, + 183, + 183, + 397, + 85, + 85, + 85, + 217, + 342, + 342, + 48, + 140, + 140, + 315, + 101, + 210, + 210, + 377, + 377, + 377, + 5, + 142, + 142, + 142, + 142, + 293, + 293, + 12, + 12, + 12, + 165, + 165, + 165, + 285, + 285, + 92, + 227, + 227, + 227, + 330, + 175, + 398, + 398, + 194, + 34, + 194, + 194, + 339, + 255, + 342, + 342, + 31, + 31, + 31, + 31, + 239, + 388, + 66, + 265, + 265, + 265, + 265, + 265, + 297, + 297, + 297, + 297, + 51, + 192, + 395, + 395, + 395, + 395, + 84, + 84, + 182, + 182, + 281, + 281, + 119, + 255, + 255, + 255, + 255, + 282, + 282, + 132, + 263, + 263, + 263, + 384, + 68, + 200, + 200, + 200, + 400, + 43, + 215, + 215, + 363, + 363, + 76, + 172, + 380, + 380, + 126, + 188, + 188, + 346, + 64, + 64, + 255, + 255, + 255, + 317, + 139, + 353, + 264, + 279, + 279, + 279, + 287, + 235, + 333, + 333, + 333, + 168, + 86, + 168, + 366, + 366, + 69, + 392, + 342, + 342, + 342, + 342, + 342, + 19, + 255, + 323, + 323, + 323, + 323, + 323, + 323, + 123, + 149, + 371, + 388, + 359, + 359, + 359, + 359, + 327, + 327, + 274, + 57, + 181, + 181, + 274, + 56, + 56, + 56, + 56, + 250, + 250, + 250, + 310, + 34, + 364, + 364, + 364, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 116, + 116, + 266, + 54, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 251, + 32, + 215, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 388, + 244, + 244, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 121, + 121, + 204, + 204, + 204, + 281, + 281, + 26, + 26, + 26, + 145, + 145, + 145, + 145, + 334, + 334, + 334, + 130, + 144, + 144, + 338, + 40, + 197, + 295, + 39, + 39, + 39, + 39, + 39, + 211, + 347, + 347, + 132, + 132, + 132, + 232, + 299, + 8, + 217, + 217, + 217, + 131, + 131, + 131, + 131, + 315, + 315, + 131, + 244, + 244, + 322, + 42, + 42, + 42, + 42, + 254, + 254, + 397, + 108, + 108, + 253, + 253, + 5, + 5, + 232, + 232, + 232, + 395, + 76, + 204, + 204, + 65, + 183, + 183, + 183, + 183, + 183, + 286, + 286, + 286, + 286, + 71, + 168, + 168, + 330, + 68, + 97, + 249, + 31, + 398, + 398, + 398, + 398, + 31, + 31, + 31, + 31, + 31, + 31, + 31, + 166, + 166, + 166, + 355, + 355, + 355, + 355, + 355, + 75, + 182, + 295, + 108, + 108, + 349, + 150, + 349, + 349, + 349, + 12, + 12, + 12, + 12, + 217, + 274, + 23, + 23, + 175, + 175, + 341, + 341, + 341, + 125, + 125, + 212, + 386, + 386, + 386, + 33, + 33, + 33, + 146, + 146, + 146, + 273, + 273, + 37, + 206, + 206, + 206, + 336, + 336, + 40, + 40, + 201, + 201, + 201, + 201, + 339, + 339, + 49, + 166, + 325, + 24, + 24, + 194, + 194, + 367, + 100, + 140, + 140, + 140, + 140, + 334, + 334, + 131, + 131, + 246, + 330, + 72, + 72, + 209, + 209, + 209, + 398, + 131, + 131, + 242, + 242, + 242, + 340, + 67, + 194, + 314, + 314, + 314, + 111, + 248, + 372, + 73, + 73, + 192, + 192, + 315, + 0, + 186, + 186, + 269, + 6, + 140, + 140, + 366, + 24, + 224, + 273, + 240, + 240, + 388, + 388, + 249, + 249, + 365, + 365, + 365, + 145, + 78, + 145, + 145, + 354, + 138, + 138, + 138, + 138, + 346, + 87, + 87, + 87, + 167, + 324, + 91, + 91, + 157, + 157, + 157, + 157, + 157, + 268, + 91, + 174, + 174, + 319, + 319, + 319, + 319, + 16, + 179, + 345, + 177, + 177, + 394, + 394, + 394, + 247, + 340, + 340, + 340, + 16, + 16, + 249, + 316, + 316, + 316, + 316, + 30, + 152, + 152, + 152, + 363, + 363, + 60, + 148, + 148, + 361, + 263, + 371, + 132, + 132, + 132, + 132, + 132, + 132, + 132, + 132, + 210, + 283, + 25, + 25, + 25, + 25, + 202, + 375, + 375, + 375, + 375, + 131, + 131, + 131, + 131, + 131, + 203, + 274, + 38, + 256, + 256, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 96, + 96, + 146, + 146, + 146, + 146, + 385, + 34, + 187, + 187, + 309, + 0, + 0, + 0, + 0, + 144, + 382, + 382, + 382, + 76, + 76, + 76, + 76, + 76, + 212, + 212, + 212, + 308, + 308, + 308, + 113, + 113, + 113, + 113, + 113, + 113, + 237, + 343, + 343, + 59, + 59, + 188, + 188, + 294, + 294, + 294, + 294, + 77, + 257, + 257, + 379, + 66, + 66, + 66, + 142, + 142, + 142, + 142, + 142, + 142, + 142, + 142, + 142, + 142, + 385, + 119, + 231, + 231, + 231, + 231, + 231, + 231, + 231, + 329, + 329, + 55, + 55, + 55, + 55, + 224, + 224, + 224, + 224, + 355, + 355, + 355, + 355, + 355, + 25, + 149, + 323, + 323, + 48, + 143, + 143, + 288, + 124, + 245, + 245, + 311, + 311, + 311, + 311, + 311, + 311, + 311, + 60, + 199, + 199, + 199, + 392, + 166, + 166, + 14, + 14, + 14, + 166, + 166, + 314, + 314, + 213, + 310, + 167, + 167, + 385, + 385, + 385, + 385, + 385, + 5, + 5, + 5, + 251, + 364, + 24, + 24, + 24, + 216, + 216, + 400, + 400, + 400, + 26, + 169, + 380, + 380, + 380, + 225, + 225, + 356, + 265, + 358, + 224, + 312, + 312, + 139, + 367, + 367, + 199, + 199, + 319, + 319, + 216, + 307, + 307, + 307, + 79, + 193, + 193, + 193, + 278, + 113, + 113, + 113, + 113, + 113, + 221, + 221, + 346, + 346, + 72, + 72, + 72, + 72, + 242, + 242, + 317, + 317, + 99, + 229, + 229, + 229, + 229, + 229, + 229, + 280, + 280, + 58, + 58, + 58, + 261, + 277, + 277, + 277, + 45, + 263, + 329, + 329, + 56, + 254, + 254, + 331, + 331, + 36, + 36, + 144, + 144, + 316, + 316, + 60, + 256, + 256, + 319, + 18, + 18, + 18, + 18, + 155, + 364, + 51, + 216, + 216, + 216, + 360, + 92, + 92, + 92, + 260, + 260, + 333, + 92, + 166, + 166, + 166, + 336, + 22, + 178, + 393, + 393, + 393, + 393, + 23, + 23, + 232, + 232, + 232, + 385, + 76, + 243, + 243, + 243, + 243, + 243, + 389, + 44, + 44, + 227, + 384, + 384, + 120, + 148, + 148, + 307, + 125, + 125, + 125, + 214, + 384, + 83, + 266, + 266, + 266, + 266, + 352, + 15, + 202, + 202, + 202, + 202, + 202, + 202, + 202, + 349, + 349, + 349, + 72, + 259, + 259, + 379, + 116, + 116, + 116, + 116, + 266, + 266, + 266, + 266, + 266, + 333, + 111, + 160, + 304, + 304, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 316, + 316, + 182, + 400, + 400, + 400, + 400, + 400, + 400, + 400, + 400, + 400, + 400, + 400, + 17, + 17, + 150, + 150, + 150, + 150, + 376, + 376, + 376, + 33, + 33, + 33, + 202, + 341, + 254, + 254, + 254, + 302, + 201, + 201, + 201, + 373, + 373, + 254, + 254, + 254, + 254, + 286, + 21, + 21, + 21, + 21, + 21, + 247, + 296, + 296, + 296, + 114, + 193, + 372, + 100, + 100, + 100, + 100, + 178, + 267, + 267, + 114, + 114, + 114, + 169, + 291, + 291, + 291, + 82, + 136, + 284, + 262, + 262, + 372, + 372, + 73, + 198, + 309, + 309, + 266, + 266, + 266, + 369, + 369, + 369, + 369, + 222, + 383, + 216, + 216, + 282, + 282, + 29, + 245, + 268, + 46, + 200, + 283, + 141, + 15, + 15, + 15, + 15, + 141, + 141, + 370, + 370, + 22, + 22, + 139, + 377, + 246, + 312, + 312, + 312, + 193, + 397, + 397, + 169, + 169, + 169, + 392, + 392, + 62, + 200, + 200, + 200, + 344, + 344, + 344, + 193, + 396, + 104, + 246, + 201, + 201, + 22, + 201, + 201, + 15, + 162, + 162, + 275, + 275, + 275, + 19, + 259, + 259, + 259, + 259, + 323, + 49, + 171, + 171, + 171, + 171, + 374, + 89, + 161, + 319, + 319, + 319, + 319, + 319, + 319, + 319, + 99, + 99, + 99, + 212, + 212, + 212, + 339, + 339, + 131, + 222, + 222, + 372, + 372, + 42, + 42, + 190, + 301, + 301, + 301, + 301, + 13, + 13, + 251, + 251, + 283, + 283, + 283, + 283, + 98, + 98, + 254, + 276, + 38, + 38, + 38, + 169, + 279, + 13, + 153, + 281, + 131, + 158, + 158, + 340, + 28, + 28, + 28, + 28, + 137, + 137, + 137, + 137, + 298, + 17, + 17, + 17, + 17, + 249, + 249, + 354, + 354, + 354, + 23, + 23, + 23, + 237, + 237, + 289, + 53, + 53, + 157, + 391, + 83, + 83, + 159, + 159, + 159, + 344, + 100, + 181, + 181, + 181, + 181, + 181, + 359, + 359, + 359, + 359, + 228, + 326, + 326, + 326, + 19, + 19, + 225, + 325, + 0, + 0, + 234, + 319, + 319, + 181, + 345, + 345, + 239, + 396, + 396, + 142, + 215, + 141, + 141, + 227, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 117, + 81, + 81, + 81, + 81, + 117, + 117, + 17, + 6, + 6, + 285, + 285, + 329, + 40, + 252, + 319, + 319, + 56, + 56, + 56, + 250, + 250, + 367, + 4, + 4, + 194, + 278, + 278, + 278, + 278, + 9, + 234, + 128, + 128, + 128, + 220, + 220, + 361, + 361, + 101, + 220, + 55, + 260, + 260, + 24, + 24, + 24, + 24, + 24, + 354, + 71, + 71, + 71, + 71, + 204, + 267, + 267, + 30, + 30, + 217, + 217, + 29, + 294, + 294, + 294, + 29, + 29, + 181, + 181, + 181, + 278, + 278, + 278, + 278, + 278, + 278, + 278, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 203, + 203, + 318, + 318, + 318, + 93, + 230, + 357, + 357, + 107, + 154, + 154, + 270, + 270, + 270, + 9, + 169, + 282, + 133, + 133, + 133, + 194, + 194, + 352, + 85, + 85, + 163, + 163, + 163, + 5, + 5, + 5, + 5, + 188, + 92, + 253, + 253, + 334, + 57, + 57, + 217, + 38, + 38, + 38, + 206, + 206, + 127, + 127, + 163, + 94, + 145, + 145, + 22, + 22, + 189, + 189, + 331, + 73, + 73, + 237, + 237, + 339, + 339, + 55, + 55, + 55, + 55, + 235, + 324, + 125, + 254, + 254, + 111, + 111, + 111, + 239, + 78, + 111, + 161, + 161, + 161, + 315, + 111, + 111, + 111, + 365, + 46, + 46, + 90, + 154, + 154, + 274, + 2, + 2, + 2, + 2, + 186, + 186, + 186, + 291, + 119, + 238, + 336, + 336, + 102, + 340, + 116, + 116, + 116, + 116, + 159, + 159, + 159, + 350, + 350, + 350, + 31, + 31, + 147, + 376, + 376, + 88, + 138, + 323, + 112, + 112, + 262, + 308, + 94, + 260, + 286, + 286, + 49, + 49, + 221, + 320, + 320, + 320, + 95, + 95, + 151, + 352, + 127, + 241, + 241, + 241, + 367, + 70, + 213, + 213, + 213, + 213, + 213, + 213, + 297, + 297, + 8, + 8, + 247, + 247, + 319, + 319, + 319, + 224, + 284, + 284, + 284, + 284, + 284, + 284, + 246, + 246, + 246, + 304, + 163, + 163, + 23, + 23, + 163, + 332, + 34, + 34, + 34, + 34, + 34, + 34, + 171, + 171, + 296, + 24, + 188, + 372, + 110, + 257, + 257, + 395, + 49, + 181, + 181, + 181, + 181, + 23, + 318, + 318, + 23, + 125, + 270, + 385, + 333, + 165, + 165, + 333, + 333, + 333, + 112, + 145, + 174, + 174, + 174, + 174, + 148, + 249, + 249, + 110, + 249, + 249, + 249, + 249, + 111, + 86, + 38, + 90, + 258, + 373, + 134, + 134, + 296, + 243, + 243, + 243, + 243, + 3, + 243, + 326, + 171, + 1, + 1, + 171, + 171, + 171, + 324, + 77, + 77, + 262, + 378, + 378, + 81, + 81, + 81, + 81, + 81, + 179, + 376, + 376, + 95, + 177, + 297, + 297, + 100, + 187, + 187, + 187, + 187, + 187, + 187, + 187, + 187, + 376, + 376, + 376, + 37, + 37, + 37, + 149, + 341, + 341, + 341, + 341, + 341, + 80, + 150, + 342, + 121, + 121, + 137, + 137, + 137, + 322, + 61, + 61, + 61, + 61, + 172, + 325, + 7, + 190, + 190, + 360, + 360, + 360, + 360, + 360, + 101, + 101, + 253, + 383, + 383, + 383, + 68, + 219, + 326, + 326, + 326, + 127, + 215, + 215, + 356, + 356, + 356, + 356, + 356, + 33, + 33, + 33, + 33, + 33, + 33, + 212, + 370, + 128, + 221, + 288, + 60, + 60, + 60, + 60, + 137, + 130, + 193, + 54, + 54, + 54, + 257, + 70, + 70, + 276, + 70, + 236, + 236, + 236, + 111, + 270, + 111, + 198, + 198, + 314, + 108, + 213, + 213, + 213, + 389, + 389, + 389, + 389, + 389, + 33, + 33, + 33, + 208, + 389, + 389, + 107, + 239, + 239, + 370, + 56, + 208, + 374, + 374, + 25, + 25, + 25, + 119, + 105, + 374, + 374, + 105, + 105, + 105, + 241, + 241, + 241, + 241, + 241, + 387, + 387, + 14, + 250, + 250, + 250, + 250, + 318, + 318, + 318, + 318, + 318, + 90, + 242, + 242, + 242, + 242, + 373, + 94, + 94, + 94, + 94, + 189, + 323, + 323, + 51, + 191, + 385, + 385, + 97, + 97, + 97, + 229, + 271, + 58, + 58, + 161, + 296, + 296, + 38, + 38, + 143, + 335, + 335, + 30, + 30, + 30, + 258, + 258, + 258, + 258, + 258, + 72, + 211, + 211, + 211, + 133, + 133, + 361, + 361, + 133, + 153, + 47, + 209, + 2, + 2, + 2, + 396, + 2, + 2, + 163, + 163, + 67, + 164, + 154, + 313, + 227, + 227, + 169, + 169, + 271, + 271, + 271, + 271, + 107, + 169, + 330, + 79, + 79, + 79, + 164, + 347, + 347, + 347, + 347, + 130, + 163, + 319, + 107, + 107, + 107, + 107, + 285, + 222, + 285, + 285, + 285, + 285, + 285, + 285, + 108, + 108, + 108, + 108, + 204, + 300, + 35, + 299, + 288, + 397, + 327, + 336, + 129, + 129, + 129, + 129, + 192, + 323, + 262, + 283, + 244, + 244, + 371, + 154, + 154, + 224, + 115, + 115, + 224, + 334, + 144, + 257, + 257, + 257, + 301, + 213, + 213, + 276, + 84, + 84, + 84, + 175, + 175, + 51, + 51, + 171, + 117, + 290, + 290, + 117, + 181, + 363, + 233, + 233, + 34, + 34, + 233, + 233, + 295, + 121, + 149, + 380, + 380, + 133, + 195, + 336, + 35, + 190, + 48, + 88, + 88, + 88, + 88, + 186, + 367, + 367, + 124, + 124, + 363, + 363, + 100, + 356, + 125, + 152, + 44, + 44, + 44, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 195, + 298, + 298, + 298, + 298, + 83, + 222, + 222, + 384, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 203, + 379, + 379, + 128, + 219, + 269, + 39, + 243, + 23, + 23, + 46, + 15, + 278, + 144, + 144, + 304, + 304, + 218, + 271, + 271, + 57, + 375, + 375, + 16, + 42, + 397, + 327, + 25, + 25, + 196, + 318, + 129, + 129, + 129, + 129, + 129, + 244, + 244, + 244, + 377, + 34, + 68, + 283, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 201, + 364, + 364, + 130, + 264, + 30, + 234, + 234, + 26, + 207, + 207, + 207, + 19, + 19, + 338, + 18, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 123, + 245, + 284, + 123, + 266, + 266, + 376, + 15, + 199, + 304, + 304, + 304, + 304, + 68, + 68, + 68, + 203, + 203, + 203, + 303, + 78, + 78, + 238, + 238, + 301, + 102, + 102, + 207, + 207, + 207, + 207, + 207, + 353, + 353, + 119, + 153, + 153, + 153, + 318, + 318, + 32, + 180, + 180, + 180, + 180, + 307, + 121, + 240, + 287, + 61, + 153, + 153, + 153, + 373, + 373, + 373, + 1, + 191, + 298, + 32, + 183, + 183, + 369, + 369, + 369, + 369, + 369, + 369, + 369, + 369, + 103, + 182, + 285, + 73, + 197, + 197, + 316, + 316, + 80, + 80, + 80, + 80, + 80, + 80, + 177, + 177, + 276, + 276, + 110, + 228, + 344, + 344, + 344, + 344, + 344, + 65, + 65, + 189, + 351, + 107, + 183, + 183, + 183, + 260, + 156, + 252, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 291, + 291, + 291, + 54, + 54, + 284, + 284, + 116, + 116, + 194, + 194, + 300, + 34, + 194, + 392, + 392, + 392, + 96, + 96, + 96, + 161, + 307, + 79, + 92, + 155, + 290, + 290, + 63, + 63, + 171, + 326, + 262, + 97, + 97, + 97, + 262, + 262, + 262, + 306, + 306, + 25, + 230, + 269, + 269, + 32, + 159, + 159, + 358, + 358, + 80, + 266, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 102, + 312, + 312, + 312, + 312, + 312, + 368, + 368, + 368, + 124, + 124, + 367, + 123, + 123, + 123, + 123, + 123, + 391, + 391, + 177, + 177, + 177, + 177, + 177, + 391, + 73, + 225, + 225, + 225, + 225, + 278, + 278, + 77, + 77, + 207, + 207, + 387, + 387, + 47, + 201, + 201, + 201, + 201, + 201, + 201, + 201, + 201, + 344, + 123, + 210, + 210, + 102, + 32, + 7, + 22, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 77, + 77, + 77, + 77, + 77, + 77, + 77, + 243, + 38, + 234, + 387, + 84, + 84, + 84, + 233, + 233, + 363, + 128, + 128, + 143, + 79, + 188, + 188, + 188, + 14, + 14, + 14, + 14, + 196, + 310, + 22, + 203, + 118, + 361, + 118, + 118, + 118, + 118, + 118, + 118, + 118, + 118, + 222, + 314, + 314, + 314, + 314, + 314, + 314, + 49, + 164, + 164, + 391, + 391, + 54, + 54, + 179, + 179, + 385, + 385, + 385, + 84, + 165, + 346, + 346, + 346, + 127, + 127, + 127, + 127, + 127, + 127, + 363, + 363, + 82, + 172, + 172, + 281, + 281, + 281, + 47, + 47, + 292, + 59, + 59, + 289, + 289, + 97, + 236, + 236, + 314, + 38, + 221, + 399, + 399, + 99, + 224, + 224, + 224, + 224, + 321, + 321, + 321, + 75, + 75, + 75, + 168, + 373, + 98, + 192, + 324, + 26, + 261, + 261, + 382, + 382, + 98, + 98, + 169, + 169, + 169, + 169, + 169, + 308, + 123, + 123, + 123, + 298, + 7, + 236, + 293, + 293, + 293, + 15, + 309, + 309, + 309, + 93, + 285, + 24, + 24, + 356, + 0, + 0, + 314, + 389, + 282, + 357, + 357, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 207, + 393, + 62, + 384, + 300, + 319, + 319, + 319, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 53, + 296, + 8, + 353, + 37, + 37, + 37, + 206, + 206, + 395, + 395, + 395, + 130, + 224, + 316, + 109, + 109, + 109, + 109, + 109, + 238, + 238, + 343, + 343, + 43, + 43, + 257, + 270, + 270, + 96, + 96, + 169, + 169, + 334, + 32, + 195, + 195, + 195, + 348, + 348, + 56, + 56, + 56, + 56, + 56, + 56, + 223, + 354, + 354, + 354, + 354, + 126, + 126, + 126, + 126, + 155, + 397, + 397, + 397, + 61, + 240, + 240, + 397, + 397, + 14, + 230, + 391, + 62, + 62, + 62, + 258, + 306, + 306, + 130, + 186, + 186, + 367, + 104, + 104, + 104, + 207, + 207, + 370, + 232, + 303, + 209, + 209, + 209, + 203, + 203, + 203, + 203, + 161, + 50, + 291, + 50, + 257, + 257, + 257, + 189, + 189, + 189, + 386, + 189, + 189, + 189, + 189, + 189, + 189, + 189, + 189, + 355, + 355, + 66, + 231, + 375, + 375, + 375, + 375, + 375, + 375, + 178, + 178, + 178, + 178, + 392, + 392, + 392, + 250, + 391, + 211, + 211, + 214, + 214, + 194, + 194, + 194, + 55, + 152, + 152, + 152, + 254, + 95, + 95, + 95, + 254, + 254, + 121, + 292, + 292, + 121, + 265, + 69, + 69, + 69, + 69, + 230, + 230, + 230, + 38, + 38, + 38, + 229, + 229, + 229, + 229, + 229, + 7, + 197, + 197, + 187, + 346, + 63, + 63, + 187, + 116, + 116, + 116, + 116, + 394, + 116, + 116, + 199, + 199, + 316, + 316, + 157, + 180, + 36, + 194, + 194, + 65, + 348, + 348, + 348, + 27, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 211, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 369, + 6, + 76, + 367, + 21, + 21, + 227, + 102, + 393, + 393, + 102, + 102, + 256, + 256, + 163, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 183, + 183, + 183, + 93, + 156, + 192, + 192, + 294, + 294, + 294, + 114, + 261, + 391, + 130, + 256, + 256, + 256, + 256, + 347, + 286, + 298, + 87, + 87, + 87, + 165, + 267, + 267, + 267, + 35, + 35, + 35, + 35, + 35, + 157, + 157, + 157, + 157, + 157, + 353, + 353, + 2, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 295, + 295, + 295, + 50, + 50, + 245, + 273, + 273, + 273, + 32, + 144, + 348, + 84, + 84, + 252, + 252, + 252, + 252, + 277, + 48, + 198, + 198, + 198, + 198, + 284, + 84, + 192, + 192, + 192, + 384, + 71, + 150, + 150, + 150, + 150, + 328, + 81, + 257, + 257, + 336, + 336, + 336, + 336, + 109, + 175, + 175, + 175, + 324, + 324, + 324, + 0, + 0, + 213, + 286, + 127, + 259, + 397, + 397, + 397, + 397, + 397, + 7, + 7, + 223, + 336, + 336, + 14, + 208, + 273, + 273, + 273, + 273, + 51, + 51, + 51, + 51, + 51, + 51, + 51, + 138, + 138, + 138, + 138, + 138, + 138, + 138, + 351, + 351, + 131, + 152, + 152, + 374, + 374, + 57, + 57, + 175, + 350, + 82, + 82, + 201, + 201, + 9, + 9, + 204, + 204, + 204, + 204, + 97, + 218, + 23, + 223, + 223, + 393, + 393, + 393, + 393, + 43, + 64, + 47, + 160, + 8, + 244, + 300, + 133, + 133, + 178, + 361, + 227, + 304, + 304, + 304, + 304, + 246, + 344, + 231, + 305, + 0, + 0, + 246, + 246, + 360, + 360, + 74, + 254, + 296, + 211, + 211, + 310, + 368, + 310, + 310, + 289, + 105, + 105, + 173, + 173, + 173, + 173, + 173, + 173, + 356, + 2, + 2, + 258, + 362, + 362, + 58, + 246, + 246, + 246, + 246, + 246, + 81, + 81, + 256, + 256, + 256, + 153, + 153, + 153, + 153, + 153, + 248, + 248, + 359, + 228, + 228, + 242, + 204, + 223, + 386, + 62, + 62, + 62, + 322, + 322, + 322, + 322, + 187, + 187, + 322, + 322, + 322, + 322, + 126, + 346, + 346, + 346, + 346, + 288, + 128, + 243, + 243, + 243, + 243, + 9, + 182, + 161, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 384, + 11, + 11, + 11, + 11, + 11, + 170, + 277, + 58, + 58, + 58, + 58, + 58, + 166, + 303, + 303, + 130, + 147, + 147, + 294, + 0, + 0, + 0, + 287, + 16, + 16, + 386, + 137, + 386, + 20, + 20, + 20, + 20, + 141, + 302, + 109, + 109, + 185, + 185, + 185, + 185, + 395, + 86, + 208, + 375, + 375, + 22, + 22, + 22, + 238, + 238, + 376, + 41, + 180, + 373, + 373, + 373, + 373, + 373, + 373, + 57, + 175, + 175, + 341, + 44, + 44, + 263, + 263, + 263, + 333, + 333, + 47, + 47, + 47, + 47, + 47, + 216, + 216, + 216, + 216, + 216, + 274, + 274, + 274, + 274, + 14, + 14, + 193, + 341, + 106, + 156, + 348, + 348, + 132, + 245, + 245, + 279, + 279, + 125, + 125, + 163, + 163, + 325, + 125, + 141, + 141, + 384, + 384, + 384, + 0, + 0, + 252, + 72, + 253, + 373, + 373, + 103, + 246, + 27, + 149, + 149, + 149, + 76, + 76, + 76, + 76, + 252, + 252, + 252, + 252, + 370, + 14, + 192, + 192, + 192, + 192, + 192, + 192, + 292, + 28, + 28, + 28, + 28, + 206, + 206, + 206, + 206, + 368, + 368, + 368, + 76, + 149, + 330, + 59, + 260, + 375, + 375, + 10, + 10, + 10, + 10, + 138, + 138, + 297, + 297, + 8, + 8, + 8, + 157, + 157, + 157, + 157, + 358, + 358, + 7, + 7, + 227, + 227, + 227, + 400, + 0, + 0, + 159, + 159, + 81, + 266, + 156, + 216, + 201, + 201, + 352, + 260, + 260, + 353, + 140, + 108, + 140, + 140, + 9, + 215, + 161, + 161, + 36, + 136, + 136, + 308, + 12, + 12, + 12, + 200, + 390, + 390, + 155, + 155, + 131, + 155, + 389, + 224, + 335, + 226, + 261, + 207, + 215, + 6, + 154, + 352, + 38, + 38, + 359, + 359, + 359, + 359, + 359, + 98, + 98, + 98, + 188, + 289, + 139, + 82, + 82, + 82, + 139, + 139, + 382, + 382, + 16, + 16, + 199, + 199, + 199, + 381, + 52, + 52, + 247, + 247, + 289, + 289, + 130, + 130, + 130, + 174, + 174, + 174, + 397, + 75, + 75, + 75, + 75, + 253, + 352, + 124, + 124, + 124, + 156, + 156, + 77, + 213, + 213, + 213, + 273, + 33, + 33, + 228, + 228, + 338, + 14, + 14, + 244, + 125, + 145, + 131, + 395, + 131, + 135, + 380, + 49, + 49, + 49, + 141, + 141, + 141, + 141, + 123, + 145, + 145, + 125, + 125, + 142, + 83, + 83, + 83, + 134, + 134, + 109, + 109, + 180, + 86, + 82, + 82, + 82, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 244, + 244, + 282, + 282, + 297, + 297, + 297, + 297, + 297, + 42, + 381, + 271, + 271, + 49, + 49, + 163, + 279, + 168, + 22, + 168, + 380, + 380, + 380, + 380, + 135, + 135, + 343, + 233, + 233, + 246, + 234, + 234, + 232, + 15, + 250, + 250, + 51, + 165, + 115, + 115, + 115, + 115, + 203, + 203, + 318, + 318, + 318, + 318, + 32, + 247, + 247, + 276, + 276, + 22, + 165, + 286, + 91, + 262, + 272, + 141, + 141, + 357, + 357, + 235, + 235, + 235, + 79, + 235, + 103, + 103, + 234, + 234, + 234, + 234, + 234, + 46, + 46, + 144, + 114, + 114, + 114, + 114, + 114, + 180, + 277, + 68, + 68, + 204, + 65, + 65, + 144, + 144, + 121, + 121, + 226, + 226, + 226, + 43, + 43, + 196, + 196, + 196, + 196, + 333, + 108, + 108, + 271, + 114, + 114, + 283, + 283, + 21, + 21, + 21, + 368, + 162, + 368, + 99, + 99, + 208, + 354, + 102, + 187, + 187, + 187, + 187, + 187, + 323, + 323, + 323, + 323, + 66, + 145, + 360, + 360, + 360, + 360, + 360, + 360, + 360, + 49, + 49, + 258, + 341, + 341, + 30, + 151, + 151, + 390, + 186, + 400, + 400, + 218, + 312, + 7, + 7, + 7, + 7, + 250, + 317, + 317, + 200, + 200, + 200, + 200, + 200, + 320, + 2, + 242, + 242, + 242, + 375, + 109, + 154, + 154, + 348, + 348, + 348, + 348, + 200, + 200, + 200, + 303, + 203, + 358, + 65, + 146, + 146, + 146, + 146, + 146, + 146, + 312, + 38, + 242, + 242, + 242, + 364, + 364, + 182, + 376, + 376, + 376, + 102, + 257, + 257, + 257, + 343, + 343, + 343, + 343, + 318, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 337, + 339, + 339, + 51, + 262, + 274, + 61, + 61, + 61, + 223, + 86, + 84, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 58, + 58, + 58, + 58, + 191, + 79, + 79, + 79, + 241, + 241, + 365, + 365, + 246, + 246, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 88, + 161, + 5, + 5, + 5, + 5, + 5, + 5, + 247, + 247, + 350, + 350, + 36, + 36, + 36, + 192, + 331, + 69, + 69, + 69, + 197, + 197, + 197, + 197, + 314, + 314, + 314, + 314, + 73, + 73, + 221, + 380, + 380, + 90, + 90, + 257, + 257, + 257, + 257, + 257, + 257, + 257, + 257, + 385, + 15, + 15, + 163, + 163, + 278, + 3, + 151, + 151, + 341, + 60, + 60, + 60, + 204, + 291, + 81, + 81, + 239, + 239, + 125, + 15, + 134, + 134, + 134, + 134, + 134, + 134, + 125, + 209, + 365, + 96, + 174, + 174, + 122, + 213, + 213, + 213, + 213, + 147, + 290, + 290, + 290, + 147, + 147, + 147, + 369, + 369, + 253, + 163, + 262, + 244, + 244, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 395, + 65, + 65, + 213, + 17, + 17, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 150, + 150, + 379, + 379, + 379, + 58, + 58, + 140, + 62, + 289, + 62, + 62, + 62, + 154, + 373, + 12, + 62, + 302, + 302, + 23, + 111, + 1, + 1, + 47, + 90, + 233, + 233, + 233, + 308, + 90, + 90, + 90, + 90, + 90, + 218, + 218, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 393, + 28, + 28, + 28, + 28, + 191, + 191, + 191, + 191, + 352, + 352, + 89, + 154, + 154, + 350, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 195, + 195, + 320, + 320, + 320, + 71, + 71, + 71, + 227, + 10, + 10, + 227, + 239, + 315, + 315, + 315, + 239, + 239, + 239, + 239, + 311, + 311, + 311, + 311, + 311, + 311, + 311, + 81, + 81, + 81, + 170, + 321, + 104, + 200, + 302, + 111, + 111, + 111, + 111, + 111, + 180, + 180, + 180, + 373, + 125, + 125, + 264, + 264, + 264, + 264, + 270, + 270, + 270, + 15, + 138, + 138, + 399, + 399, + 103, + 266, + 266, + 266, + 266, + 295, + 99, + 99, + 99, + 99, + 226, + 327, + 327, + 327, + 84, + 84, + 155, + 155, + 330, + 330, + 80, + 80, + 80, + 80, + 80, + 80, + 253, + 342, + 86, + 86, + 86, + 86, + 86, + 227, + 282, + 53, + 194, + 194, + 353, + 41, + 256, + 312, + 117, + 117, + 117, + 199, + 199, + 384, + 384, + 384, + 42, + 154, + 350, + 350, + 350, + 350, + 350, + 44, + 44, + 259, + 259, + 259, + 259, + 259, + 378, + 378, + 378, + 38, + 247, + 274, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py new file mode 100644 index 0000000000..01ae49c808 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py @@ -0,0 +1,6 @@ +from roundrobin import build + + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 3 flows.""" + build(3).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.data b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.expect b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.expect new file mode 100644 index 0000000000..7ba963a542 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 121, + 275, + 275, + 330, + 243, + 329, + 203, + 203, + 203, + 310, + 310, + 291, + 256, + 268, + 354, + 354, + 380, + 130, + 262, + 307, + 80, + 80, + 80, + 363, + 40, + 40, + 106, + 106, + 106, + 106, + 106, + 106, + 242, + 242, + 242, + 388, + 299, + 299, + 325, + 325, + 325, + 243, + 243, + 243, + 176, + 243, + 243, + 321, + 61, + 287, + 125, + 95, + 95, + 95, + 125, + 125, + 125, + 296, + 296, + 306, + 145, + 145, + 205, + 205, + 205, + 309, + 309, + 309, + 309, + 83, + 171, + 341, + 341, + 341, + 79, + 125, + 212, + 212, + 133, + 215, + 215, + 215, + 215, + 215, + 318, + 238, + 221, + 221, + 221, + 216, + 306, + 80, + 80, + 221, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 168, + 231, + 231, + 11, + 11, + 11, + 241, + 312, + 312, + 98, + 98, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 281, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 314, + 12, + 12, + 12, + 12, + 167, + 300, + 366, + 366, + 366, + 366, + 82, + 82, + 162, + 162, + 162, + 162, + 254, + 330, + 3, + 3, + 177, + 216, + 372, + 69, + 69, + 183, + 238, + 378, + 36, + 150, + 150, + 293, + 293, + 323, + 60, + 60, + 60, + 60, + 60, + 253, + 391, + 82, + 82, + 129, + 129, + 129, + 129, + 129, + 219, + 219, + 305, + 305, + 90, + 90, + 90, + 90, + 90, + 251, + 251, + 251, + 251, + 251, + 318, + 21, + 21, + 21, + 119, + 267, + 332, + 332, + 66, + 66, + 151, + 151, + 219, + 219, + 219, + 219, + 219, + 343, + 343, + 343, + 343, + 343, + 343, + 98, + 98, + 98, + 98, + 98, + 98, + 250, + 250, + 250, + 250, + 250, + 308, + 308, + 90, + 203, + 203, + 356, + 356, + 21, + 290, + 290, + 354, + 354, + 354, + 0, + 0, + 276, + 346, + 346, + 346, + 76, + 76, + 76, + 76, + 76, + 113, + 209, + 306, + 306, + 306, + 306, + 306, + 89, + 89, + 89, + 89, + 170, + 217, + 374, + 374, + 374, + 11, + 161, + 220, + 220, + 220, + 220, + 220, + 220, + 220, + 310, + 310, + 310, + 18, + 18, + 183, + 183, + 183, + 183, + 183, + 246, + 388, + 388, + 388, + 388, + 91, + 91, + 109, + 208, + 378, + 378, + 81, + 120, + 297, + 297, + 297, + 310, + 310, + 310, + 95, + 191, + 255, + 332, + 63, + 162, + 162, + 162, + 300, + 303, + 86, + 86, + 120, + 256, + 400, + 6, + 278, + 157, + 278, + 278, + 359, + 45, + 45, + 223, + 351, + 351, + 238, + 238, + 238, + 238, + 180, + 180, + 238, + 400, + 400, + 103, + 54, + 103, + 103, + 222, + 332, + 332, + 332, + 41, + 121, + 121, + 121, + 121, + 220, + 380, + 154, + 154, + 269, + 301, + 87, + 182, + 182, + 248, + 248, + 248, + 248, + 248, + 312, + 7, + 7, + 165, + 252, + 252, + 323, + 195, + 296, + 296, + 397, + 12, + 12, + 12, + 144, + 144, + 144, + 144, + 144, + 144, + 218, + 218, + 218, + 218, + 218, + 380, + 8, + 195, + 195, + 227, + 367, + 40, + 152, + 255, + 337, + 41, + 128, + 128, + 128, + 128, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 310, + 36, + 198, + 201, + 51, + 51, + 51, + 51, + 149, + 149, + 154, + 154, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 244, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 30, + 30, + 30, + 30, + 164, + 164, + 256, + 362, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 14, + 123, + 382, + 382, + 142, + 122, + 82, + 181, + 181, + 321, + 92, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 237, + 348, + 43, + 43, + 43, + 206, + 387, + 80, + 80, + 80, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 207, + 207, + 207, + 79, + 338, + 79, + 79, + 143, + 143, + 143, + 217, + 366, + 13, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 3, + 105, + 105, + 105, + 105, + 353, + 353, + 353, + 353, + 51, + 51, + 51, + 241, + 241, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 2, + 135, + 135, + 209, + 333, + 240, + 240, + 208, + 208, + 74, + 74, + 347, + 347, + 347, + 347, + 74, + 189, + 189, + 189, + 255, + 360, + 360, + 360, + 42, + 109, + 223, + 223, + 223, + 223, + 361, + 361, + 81, + 144, + 256, + 348, + 348, + 348, + 85, + 85, + 175, + 213, + 339, + 339, + 339, + 339, + 9, + 9, + 9, + 107, + 260, + 260, + 260, + 260, + 360, + 360, + 59, + 188, + 203, + 203, + 203, + 203, + 363, + 40, + 223, + 223, + 382, + 30, + 194, + 194, + 194, + 235, + 235, + 235, + 398, + 398, + 398, + 398, + 71, + 71, + 149, + 149, + 282, + 382, + 26, + 26, + 168, + 168, + 235, + 235, + 316, + 316, + 64, + 184, + 184, + 249, + 320, + 320, + 92, + 92, + 92, + 101, + 101, + 257, + 393, + 24, + 132, + 299, + 325, + 325, + 181, + 181, + 239, + 239, + 239, + 309, + 87, + 87, + 154, + 256, + 305, + 86, + 86, + 86, + 105, + 105, + 206, + 313, + 313, + 313, + 313, + 34, + 112, + 112, + 254, + 379, + 379, + 379, + 379, + 16, + 16, + 16, + 201, + 320, + 320, + 320, + 20, + 20, + 20, + 260, + 260, + 260, + 316, + 95, + 95, + 95, + 95, + 141, + 141, + 222, + 312, + 312, + 55, + 55, + 108, + 215, + 215, + 313, + 313, + 313, + 76, + 76, + 33, + 98, + 98, + 98, + 13, + 13, + 304, + 13, + 331, + 142, + 142, + 287, + 301, + 121, + 88, + 121, + 272, + 346, + 346, + 346, + 346, + 346, + 7, + 239, + 239, + 17, + 17, + 226, + 226, + 52, + 128, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 77, + 77, + 159, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 386, + 147, + 147, + 206, + 187, + 187, + 238, + 364, + 75, + 179, + 237, + 237, + 87, + 40, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 295, + 295, + 295, + 295, + 295, + 394, + 16, + 16, + 190, + 234, + 234, + 392, + 392, + 392, + 392, + 75, + 75, + 75, + 166, + 166, + 219, + 394, + 394, + 35, + 200, + 343, + 175, + 175, + 321, + 321, + 321, + 321, + 321, + 321, + 150, + 192, + 192, + 192, + 306, + 306, + 306, + 53, + 113, + 113, + 113, + 255, + 362, + 144, + 144, + 233, + 161, + 161, + 323, + 323, + 72, + 190, + 190, + 331, + 222, + 222, + 331, + 37, + 197, + 266, + 309, + 92, + 92, + 92, + 173, + 173, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 308, + 308, + 308, + 308, + 308, + 0, + 181, + 181, + 181, + 242, + 242, + 354, + 86, + 86, + 113, + 113, + 113, + 113, + 274, + 45, + 154, + 154, + 269, + 269, + 269, + 321, + 50, + 50, + 50, + 50, + 132, + 299, + 324, + 324, + 324, + 324, + 324, + 51, + 150, + 150, + 150, + 150, + 150, + 150, + 267, + 365, + 77, + 77, + 167, + 238, + 238, + 362, + 21, + 21, + 160, + 160, + 160, + 299, + 299, + 299, + 380, + 380, + 0, + 0, + 0, + 0, + 0, + 127, + 287, + 287, + 370, + 46, + 142, + 220, + 220, + 319, + 319, + 319, + 86, + 162, + 162, + 212, + 212, + 397, + 397, + 397, + 99, + 99, + 99, + 174, + 297, + 386, + 23, + 150, + 293, + 293, + 293, + 128, + 128, + 128, + 128, + 128, + 281, + 148, + 222, + 222, + 313, + 186, + 40, + 186, + 237, + 237, + 312, + 312, + 312, + 312, + 312, + 312, + 97, + 97, + 97, + 97, + 97, + 170, + 293, + 324, + 324, + 68, + 68, + 165, + 264, + 323, + 29, + 179, + 179, + 179, + 179, + 272, + 272, + 320, + 320, + 320, + 320, + 46, + 129, + 32, + 154, + 154, + 154, + 154, + 154, + 154, + 365, + 365, + 14, + 14, + 14, + 14, + 14, + 132, + 132, + 338, + 69, + 185, + 185, + 358, + 358, + 358, + 358, + 261, + 261, + 261, + 261, + 358, + 70, + 70, + 186, + 186, + 186, + 186, + 218, + 333, + 72, + 72, + 101, + 91, + 117, + 275, + 23, + 23, + 155, + 155, + 155, + 297, + 297, + 87, + 109, + 299, + 339, + 339, + 339, + 339, + 79, + 167, + 167, + 167, + 226, + 226, + 67, + 188, + 188, + 255, + 255, + 46, + 188, + 85, + 132, + 92, + 92, + 92, + 92, + 92, + 92, + 184, + 260, + 260, + 332, + 79, + 79, + 186, + 231, + 231, + 304, + 11, + 11, + 160, + 280, + 330, + 330, + 63, + 170, + 170, + 158, + 158, + 97, + 97, + 97, + 155, + 178, + 178, + 199, + 125, + 155, + 155, + 155, + 122, + 122, + 150, + 150, + 150, + 397, + 397, + 63, + 194, + 194, + 194, + 194, + 298, + 304, + 304, + 304, + 80, + 128, + 295, + 295, + 339, + 339, + 339, + 71, + 71, + 167, + 285, + 327, + 327, + 74, + 195, + 195, + 195, + 214, + 214, + 318, + 318, + 57, + 173, + 173, + 173, + 173, + 173, + 173, + 173, + 264, + 264, + 264, + 264, + 398, + 75, + 75, + 75, + 118, + 274, + 274, + 310, + 62, + 62, + 110, + 272, + 272, + 272, + 351, + 351, + 351, + 32, + 32, + 202, + 351, + 43, + 186, + 186, + 186, + 288, + 288, + 288, + 314, + 314, + 314, + 314, + 3, + 158, + 158, + 323, + 323, + 26, + 26, + 26, + 26, + 120, + 339, + 339, + 339, + 55, + 55, + 349, + 349, + 58, + 58, + 58, + 83, + 83, + 83, + 235, + 171, + 235, + 71, + 71, + 71, + 71, + 372, + 372, + 71, + 71, + 71, + 192, + 192, + 192, + 236, + 353, + 65, + 65, + 65, + 245, + 245, + 245, + 164, + 245, + 304, + 9, + 9, + 136, + 136, + 350, + 80, + 119, + 74, + 178, + 178, + 178, + 178, + 178, + 266, + 49, + 49, + 49, + 49, + 134, + 134, + 134, + 134, + 134, + 239, + 318, + 318, + 318, + 318, + 34, + 124, + 124, + 124, + 124, + 124, + 291, + 291, + 291, + 291, + 291, + 357, + 26, + 26, + 26, + 26, + 148, + 49, + 49, + 131, + 131, + 131, + 131, + 300, + 43, + 43, + 43, + 129, + 129, + 129, + 208, + 22, + 145, + 145, + 8, + 325, + 8, + 148, + 148, + 57, + 57, + 57, + 57, + 160, + 28, + 142, + 22, + 22, + 102, + 102, + 102, + 216, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 48, + 48, + 246, + 246, + 246, + 393, + 393, + 15, + 15, + 237, + 334, + 91, + 245, + 245, + 99, + 295, + 295, + 295, + 295, + 295, + 295, + 384, + 384, + 384, + 275, + 324, + 187, + 390, + 122, + 122, + 299, + 333, + 198, + 254, + 254, + 66, + 103, + 298, + 298, + 10, + 10, + 398, + 398, + 10, + 102, + 102, + 237, + 237, + 237, + 317, + 317, + 164, + 245, + 320, + 320, + 320, + 320, + 320, + 320, + 74, + 150, + 150, + 267, + 325, + 92, + 92, + 190, + 190, + 213, + 344, + 344, + 20, + 20, + 20, + 20, + 180, + 180, + 180, + 287, + 367, + 14, + 114, + 114, + 114, + 114, + 114, + 241, + 241, + 241, + 241, + 382, + 382, + 382, + 51, + 51, + 143, + 271, + 271, + 271, + 395, + 395, + 395, + 23, + 23, + 153, + 231, + 231, + 378, + 378, + 378, + 378, + 5, + 5, + 5, + 5, + 5, + 155, + 277, + 277, + 337, + 74, + 200, + 246, + 246, + 246, + 394, + 83, + 124, + 124, + 278, + 309, + 15, + 155, + 155, + 155, + 291, + 311, + 88, + 88, + 88, + 88, + 149, + 203, + 203, + 203, + 203, + 397, + 397, + 23, + 23, + 194, + 279, + 374, + 374, + 374, + 374, + 63, + 330, + 330, + 63, + 63, + 63, + 246, + 246, + 246, + 246, + 367, + 367, + 367, + 52, + 52, + 350, + 4, + 378, + 378, + 378, + 37, + 37, + 314, + 314, + 60, + 60, + 60, + 102, + 102, + 233, + 336, + 156, + 286, + 286, + 286, + 347, + 107, + 107, + 107, + 318, + 334, + 24, + 24, + 24, + 334, + 185, + 185, + 211, + 361, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 160, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 15, + 219, + 313, + 313, + 313, + 15, + 166, + 276, + 23, + 174, + 174, + 174, + 333, + 333, + 333, + 82, + 82, + 82, + 82, + 132, + 98, + 98, + 98, + 98, + 15, + 15, + 191, + 191, + 191, + 391, + 391, + 1, + 151, + 100, + 6, + 226, + 6, + 284, + 284, + 62, + 233, + 233, + 53, + 278, + 181, + 278, + 278, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 3, + 3, + 3, + 3, + 150, + 317, + 317, + 317, + 317, + 317, + 317, + 317, + 4, + 123, + 346, + 346, + 23, + 178, + 19, + 294, + 294, + 375, + 375, + 19, + 19, + 138, + 138, + 207, + 370, + 370, + 370, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 203, + 203, + 325, + 325, + 325, + 325, + 135, + 385, + 130, + 130, + 365, + 67, + 67, + 67, + 375, + 37, + 37, + 37, + 115, + 290, + 325, + 325, + 325, + 89, + 89, + 111, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 397, + 397, + 397, + 397, + 56, + 56, + 123, + 217, + 380, + 63, + 63, + 101, + 101, + 376, + 376, + 376, + 14, + 14, + 14, + 14, + 14, + 105, + 228, + 319, + 319, + 93, + 222, + 222, + 222, + 382, + 5, + 131, + 131, + 345, + 86, + 86, + 350, + 52, + 52, + 365, + 365, + 69, + 141, + 233, + 330, + 330, + 330, + 330, + 30, + 165, + 231, + 231, + 231, + 231, + 360, + 27, + 27, + 27, + 174, + 208, + 208, + 302, + 302, + 71, + 71, + 71, + 71, + 71, + 71, + 293, + 293, + 293, + 293, + 293, + 368, + 81, + 224, + 398, + 398, + 86, + 86, + 86, + 86, + 260, + 260, + 260, + 260, + 360, + 94, + 292, + 309, + 9, + 208, + 367, + 26, + 26, + 26, + 26, + 26, + 296, + 296, + 352, + 97, + 341, + 341, + 341, + 36, + 36, + 36, + 253, + 253, + 335, + 98, + 341, + 0, + 0, + 276, + 301, + 65, + 65, + 65, + 65, + 65, + 65, + 304, + 304, + 99, + 99, + 141, + 336, + 30, + 236, + 236, + 394, + 47, + 47, + 394, + 367, + 367, + 371, + 391, + 391, + 391, + 360, + 311, + 362, + 338, + 338, + 338, + 338, + 375, + 277, + 112, + 277, + 375, + 230, + 230, + 230, + 49, + 49, + 49, + 233, + 34, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 61, + 61, + 263, + 263, + 400, + 400, + 73, + 111, + 111, + 111, + 17, + 198, + 198, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 155, + 155, + 325, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 322, + 322, + 322, + 322, + 322, + 18, + 18, + 18, + 106, + 106, + 106, + 231, + 382, + 382, + 382, + 382, + 382, + 382, + 28, + 152, + 152, + 297, + 297, + 367, + 36, + 196, + 106, + 117, + 117, + 106, + 80, + 290, + 290, + 290, + 308, + 308, + 308, + 308, + 308, + 308, + 80, + 119, + 235, + 350, + 350, + 31, + 137, + 137, + 137, + 117, + 117, + 117, + 117, + 117, + 124, + 389, + 389, + 41, + 41, + 124, + 124, + 263, + 263, + 394, + 394, + 197, + 252, + 252, + 376, + 26, + 26, + 26, + 108, + 108, + 108, + 260, + 302, + 302, + 12, + 12, + 155, + 155, + 309, + 309, + 309, + 309, + 12, + 12, + 149, + 290, + 384, + 118, + 202, + 202, + 202, + 202, + 202, + 381, + 123, + 123, + 236, + 358, + 186, + 186, + 276, + 387, + 387, + 182, + 93, + 182, + 207, + 207, + 207, + 388, + 69, + 69, + 69, + 125, + 246, + 386, + 386, + 76, + 76, + 76, + 76, + 177, + 296, + 296, + 343, + 80, + 119, + 231, + 397, + 397, + 397, + 397, + 23, + 187, + 187, + 187, + 187, + 226, + 226, + 226, + 226, + 226, + 336, + 336, + 17, + 101, + 218, + 218, + 218, + 355, + 355, + 355, + 92, + 92, + 105, + 105, + 299, + 299, + 299, + 299, + 360, + 96, + 96, + 96, + 118, + 211, + 211, + 366, + 366, + 366, + 366, + 10, + 10, + 10, + 10, + 10, + 10, + 125, + 210, + 210, + 379, + 379, + 379, + 10, + 148, + 148, + 148, + 271, + 342, + 342, + 342, + 61, + 61, + 61, + 138, + 230, + 230, + 230, + 394, + 53, + 53, + 167, + 222, + 222, + 222, + 353, + 25, + 25, + 25, + 146, + 146, + 319, + 41, + 41, + 41, + 130, + 130, + 130, + 331, + 68, + 68, + 68, + 68, + 115, + 365, + 57, + 112, + 335, + 86, + 159, + 159, + 159, + 159, + 159, + 159, + 159, + 159, + 272, + 272, + 379, + 29, + 104, + 104, + 104, + 208, + 372, + 123, + 220, + 355, + 355, + 158, + 158, + 97, + 97, + 158, + 158, + 391, + 105, + 105, + 382, + 382, + 262, + 218, + 366, + 218, + 16, + 16, + 383, + 16, + 113, + 295, + 340, + 340, + 67, + 67, + 67, + 159, + 246, + 81, + 81, + 81, + 81, + 124, + 124, + 124, + 124, + 124, + 260, + 373, + 16, + 193, + 250, + 88, + 88, + 88, + 152, + 253, + 51, + 189, + 189, + 198, + 198, + 198, + 131, + 25, + 25, + 25, + 198, + 198, + 250, + 32, + 32, + 32, + 117, + 117, + 386, + 73, + 187, + 270, + 344, + 344, + 69, + 69, + 69, + 69, + 186, + 249, + 249, + 249, + 332, + 332, + 332, + 332, + 332, + 38, + 187, + 187, + 187, + 187, + 233, + 386, + 64, + 64, + 64, + 64, + 103, + 300, + 66, + 66, + 253, + 190, + 219, + 219, + 280, + 278, + 214, + 106, + 71, + 71, + 150, + 296, + 398, + 398, + 398, + 172, + 172, + 23, + 23, + 23, + 172, + 205, + 205, + 389, + 389, + 27, + 125, + 125, + 125, + 125, + 125, + 125, + 125, + 125, + 125, + 125, + 125, + 218, + 218, + 68, + 68, + 139, + 139, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 374, + 374, + 374, + 374, + 11, + 160, + 225, + 225, + 225, + 225, + 381, + 381, + 38, + 166, + 295, + 391, + 391, + 96, + 96, + 96, + 168, + 168, + 168, + 298, + 354, + 354, + 16, + 135, + 135, + 135, + 135, + 243, + 243, + 325, + 72, + 72, + 147, + 147, + 147, + 250, + 304, + 304, + 55, + 266, + 266, + 383, + 383, + 23, + 23, + 261, + 377, + 59, + 234, + 353, + 353, + 28, + 28, + 28, + 341, + 341, + 53, + 338, + 338, + 10, + 330, + 26, + 26, + 26, + 380, + 380, + 194, + 380, + 33, + 33, + 139, + 139, + 139, + 313, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 172, + 274, + 386, + 386, + 81, + 179, + 207, + 342, + 24, + 24, + 161, + 161, + 242, + 242, + 242, + 372, + 372, + 372, + 372, + 372, + 372, + 91, + 165, + 165, + 165, + 165, + 165, + 264, + 367, + 367, + 76, + 76, + 114, + 114, + 114, + 114, + 114, + 251, + 251, + 304, + 304, + 26, + 26, + 124, + 239, + 239, + 239, + 358, + 358, + 358, + 51, + 246, + 344, + 344, + 344, + 344, + 344, + 23, + 259, + 344, + 344, + 344, + 62, + 263, + 263, + 339, + 32, + 32, + 32, + 251, + 359, + 359, + 91, + 204, + 308, + 308, + 258, + 340, + 365, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 138, + 85, + 62, + 62, + 324, + 62, + 62, + 392, + 316, + 205, + 153, + 153, + 205, + 316, + 118, + 288, + 22, + 315, + 22, + 145, + 145, + 212, + 37, + 195, + 195, + 254, + 254, + 181, + 394, + 39, + 39, + 219, + 377, + 377, + 100, + 100, + 217, + 321, + 67, + 67, + 265, + 265, + 265, + 265, + 265, + 176, + 265, + 265, + 319, + 319, + 5, + 223, + 223, + 343, + 52, + 52, + 286, + 335, + 335, + 335, + 335, + 0, + 0, + 287, + 287, + 287, + 368, + 73, + 73, + 229, + 229, + 400, + 28, + 28, + 28, + 28, + 28, + 28, + 204, + 204, + 348, + 78, + 207, + 16, + 9, + 9, + 9, + 67, + 67, + 38, + 249, + 38, + 231, + 34, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 129, + 129, + 241, + 241, + 25, + 218, + 350, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 200, + 200, + 290, + 338, + 338, + 3, + 3, + 3, + 189, + 391, + 90, + 90, + 118, + 118, + 261, + 261, + 261, + 397, + 54, + 185, + 185, + 185, + 185, + 225, + 302, + 302, + 73, + 73, + 365, + 85, + 102, + 231, + 231, + 231, + 231, + 316, + 186, + 186, + 186, + 283, + 377, + 377, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 189, + 189, + 189, + 249, + 249, + 393, + 121, + 121, + 234, + 234, + 343, + 115, + 234, + 234, + 234, + 308, + 308, + 94, + 145, + 234, + 234, + 400, + 400, + 400, + 400, + 56, + 56, + 103, + 218, + 218, + 394, + 394, + 64, + 115, + 115, + 211, + 211, + 211, + 336, + 27, + 188, + 229, + 229, + 306, + 90, + 129, + 296, + 296, + 301, + 301, + 112, + 260, + 327, + 119, + 209, + 209, + 209, + 385, + 12, + 114, + 114, + 114, + 241, + 241, + 241, + 241, + 393, + 18, + 18, + 140, + 228, + 228, + 314, + 314, + 12, + 179, + 179, + 212, + 380, + 380, + 380, + 58, + 58, + 183, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 386, + 9, + 9, + 119, + 119, + 119, + 216, + 216, + 216, + 340, + 340, + 340, + 340, + 6, + 6, + 124, + 254, + 254, + 254, + 254, + 254, + 254, + 388, + 145, + 145, + 145, + 145, + 277, + 353, + 167, + 167, + 167, + 259, + 367, + 367, + 367, + 185, + 20, + 185, + 185, + 248, + 248, + 330, + 330, + 12, + 12, + 137, + 226, + 309, + 309, + 146, + 231, + 231, + 324, + 324, + 324, + 324, + 77, + 133, + 288, + 325, + 153, + 153, + 203, + 203, + 203, + 324, + 324, + 141, + 299, + 299, + 100, + 166, + 166, + 207, + 207, + 16, + 104, + 244, + 244, + 31, + 31, + 193, + 193, + 193, + 203, + 203, + 375, + 375, + 375, + 17, + 196, + 196, + 245, + 333, + 333, + 333, + 115, + 115, + 273, + 333, + 67, + 67, + 67, + 67, + 143, + 143, + 241, + 241, + 348, + 92, + 180, + 267, + 267, + 349, + 349, + 349, + 176, + 176, + 240, + 347, + 137, + 94, + 137, + 137, + 215, + 30, + 124, + 162, + 162, + 279, + 279, + 279, + 19, + 141, + 141, + 141, + 216, + 216, + 216, + 216, + 216, + 333, + 333, + 38, + 38, + 150, + 150, + 223, + 349, + 99, + 99, + 99, + 195, + 195, + 195, + 214, + 214, + 214, + 214, + 214, + 391, + 80, + 80, + 146, + 203, + 203, + 349, + 27, + 27, + 27, + 27, + 149, + 149, + 224, + 162, + 162, + 162, + 162, + 52, + 216, + 216, + 332, + 332, + 52, + 52, + 52, + 52, + 198, + 257, + 257, + 97, + 112, + 258, + 258, + 65, + 332, + 332, + 65, + 65, + 65, + 147, + 147, + 147, + 262, + 262, + 361, + 61, + 61, + 61, + 165, + 299, + 357, + 357, + 89, + 151, + 268, + 268, + 268, + 268, + 399, + 399, + 44, + 127, + 297, + 297, + 297, + 27, + 123, + 123, + 271, + 321, + 321, + 24, + 135, + 268, + 324, + 154, + 244, + 244, + 244, + 70, + 70, + 70, + 153, + 153, + 153, + 270, + 179, + 269, + 269, + 269, + 134, + 134, + 286, + 286, + 286, + 286, + 286, + 374, + 70, + 70, + 70, + 189, + 288, + 388, + 388, + 110, + 249, + 313, + 192, + 286, + 113, + 233, + 233, + 385, + 192, + 192, + 247, + 97, + 97, + 97, + 107, + 231, + 126, + 224, + 396, + 396, + 161, + 161, + 161, + 206, + 206, + 206, + 206, + 206, + 352, + 0, + 122, + 231, + 355, + 83, + 171, + 266, + 266, + 340, + 54, + 54, + 267, + 267, + 267, + 267, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 128, + 128, + 128, + 273, + 395, + 198, + 198, + 49, + 49, + 198, + 247, + 361, + 13, + 13, + 192, + 253, + 378, + 38, + 164, + 164, + 264, + 369, + 169, + 252, + 361, + 144, + 219, + 400, + 400, + 400, + 400, + 121, + 278, + 278, + 302, + 175, + 175, + 238, + 326, + 326, + 326, + 136, + 338, + 129, + 230, + 342, + 183, + 183, + 183, + 93, + 93, + 93, + 183, + 183, + 325, + 325, + 325, + 28, + 145, + 145, + 298, + 298, + 307, + 75, + 75, + 133, + 133, + 133, + 247, + 394, + 29, + 130, + 130, + 245, + 245, + 245, + 331, + 78, + 193, + 386, + 37, + 170, + 272, + 100, + 100, + 100, + 100, + 185, + 185, + 388, + 85, + 85, + 247, + 247, + 305, + 305, + 39, + 156, + 269, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 110, + 110, + 110, + 289, + 217, + 217, + 379, + 182, + 224, + 355, + 134, + 338, + 338, + 69, + 143, + 143, + 202, + 164, + 299, + 299, + 299, + 377, + 377, + 4, + 4, + 236, + 143, + 236, + 236, + 236, + 316, + 91, + 91, + 91, + 185, + 185, + 185, + 185, + 185, + 236, + 304, + 304, + 304, + 91, + 116, + 274, + 274, + 274, + 274, + 392, + 392, + 392, + 17, + 17, + 17, + 149, + 149, + 149, + 149, + 225, + 225, + 384, + 384, + 83, + 161, + 161, + 260, + 384, + 384, + 76, + 125, + 125, + 252, + 397, + 8, + 159, + 159, + 159, + 238, + 238, + 80, + 155, + 255, + 45, + 197, + 197, + 197, + 197, + 197, + 197, + 197, + 245, + 388, + 5, + 180, + 249, + 100, + 112, + 112, + 88, + 175, + 175, + 26, + 26, + 115, + 62, + 62, + 344, + 77, + 77, + 355, + 355, + 297, + 297, + 297, + 355, + 355, + 78, + 184, + 279, + 395, + 395, + 395, + 395, + 49, + 180, + 180, + 180, + 274, + 274, + 358, + 89, + 160, + 287, + 287, + 398, + 53, + 121, + 205, + 205, + 205, + 394, + 188, + 217, + 123, + 177, + 177, + 342, + 177, + 93, + 43, + 43, + 115, + 115, + 115, + 224, + 378, + 378, + 378, + 378, + 378, + 378, + 378, + 378, + 43, + 43, + 43, + 166, + 166, + 387, + 279, + 279, + 387, + 92, + 92, + 136, + 136, + 136, + 136, + 267, + 334, + 334, + 92, + 92, + 92, + 92, + 200, + 258, + 258, + 320, + 320, + 320, + 320, + 320, + 4, + 128, + 128, + 300, + 369, + 369, + 57, + 173, + 207, + 302, + 302, + 302, + 59, + 153, + 201, + 93, + 341, + 93, + 93, + 93, + 128, + 128, + 214, + 214, + 214, + 214, + 36, + 165, + 165, + 165, + 165, + 165, + 296, + 334, + 334, + 334, + 334, + 334, + 334, + 15, + 135, + 135, + 135, + 135, + 285, + 285, + 285, + 285, + 334, + 73, + 73, + 73, + 131, + 218, + 342, + 23, + 23, + 23, + 23, + 23, + 23, + 23, + 150, + 232, + 232, + 232, + 58, + 179, + 295, + 53, + 53, + 146, + 146, + 146, + 297, + 67, + 67, + 339, + 67, + 193, + 296, + 296, + 296, + 296, + 296, + 321, + 321, + 321, + 321, + 31, + 130, + 130, + 286, + 335, + 335, + 83, + 83, + 103, + 270, + 303, + 74, + 195, + 195, + 345, + 236, + 236, + 345, + 345, + 345, + 10, + 103, + 204, + 204, + 316, + 29, + 29, + 124, + 124, + 267, + 267, + 377, + 50, + 182, + 182, + 182, + 209, + 209, + 209, + 209, + 348, + 348, + 348, + 348, + 99, + 120, + 120, + 120, + 204, + 204, + 397, + 16, + 16, + 128, + 259, + 259, + 349, + 23, + 23, + 23, + 23, + 23, + 23, + 186, + 221, + 344, + 100, + 100, + 100, + 159, + 159, + 159, + 250, + 352, + 352, + 352, + 58, + 130, + 130, + 219, + 379, + 379, + 379, + 379, + 63, + 168, + 246, + 319, + 97, + 97, + 97, + 178, + 178, + 257, + 368, + 368, + 368, + 48, + 48, + 48, + 48, + 48, + 161, + 240, + 322, + 322, + 322, + 74, + 74, + 112, + 211, + 390, + 390, + 390, + 390, + 390, + 390, + 390, + 390, + 390, + 390, + 35, + 104, + 104, + 104, + 270, + 329, + 329, + 55, + 129, + 279, + 385, + 76, + 76, + 194, + 194, + 194, + 266, + 347, + 130, + 130, + 130, + 130, + 217, + 217, + 366, + 112, + 112, + 112, + 112, + 219, + 219, + 219, + 219, + 219, + 219, + 219, + 219, + 345, + 345, + 345, + 66, + 175, + 175, + 248, + 364, + 144, + 245, + 245, + 382, + 382, + 382, + 42, + 153, + 153, + 295, + 380, + 380, + 180, + 258, + 357, + 165, + 165, + 165, + 226, + 226, + 226, + 390, + 390, + 390, + 390, + 5, + 5, + 5, + 137, + 137, + 265, + 265, + 265, + 377, + 377, + 55, + 144, + 144, + 144, + 144, + 282, + 282, + 282, + 282, + 376, + 170, + 233, + 233, + 318, + 105, + 105, + 105, + 105, + 276, + 399, + 399, + 185, + 251, + 251, + 251, + 319, + 77, + 77, + 77, + 200, + 200, + 200, + 200, + 200, + 200, + 275, + 275, + 275, + 383, + 42, + 188, + 217, + 345, + 345, + 55, + 55, + 156, + 241, + 241, + 241, + 241, + 241, + 241, + 350, + 350, + 26, + 127, + 248, + 248, + 248, + 248, + 382, + 382, + 382, + 127, + 289, + 289, + 289, + 289, + 289, + 387, + 88, + 88, + 88, + 161, + 217, + 349, + 212, + 321, + 10, + 157, + 340, + 263, + 376, + 60, + 150, + 150, + 355, + 355, + 355, + 355, + 340, + 340, + 318, + 325, + 325, + 326, + 354, + 345, + 231, + 345, + 345, + 345, + 41, + 190, + 190, + 354, + 354, + 76, + 76, + 76, + 76, + 76, + 76, + 179, + 179, + 179, + 179, + 179, + 179, + 179, + 208, + 340, + 30, + 175, + 252, + 329, + 329, + 59, + 296, + 329, + 329, + 329, + 185, + 299, + 309, + 85, + 204, + 204, + 334, + 313, + 183, + 219, + 127, + 127, + 282, + 370, + 163, + 163, + 85, + 138, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 174, + 18, + 133, + 133, + 368, + 45, + 183, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 318, + 318, + 318, + 157, + 211, + 259, + 156, + 259, + 259, + 200, + 200, + 218, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 34, + 34, + 169, + 169, + 251, + 339, + 73, + 169, + 396, + 396, + 6, + 6, + 6, + 6, + 181, + 181, + 224, + 349, + 4, + 176, + 176, + 154, + 154, + 213, + 154, + 269, + 163, + 163, + 393, + 393, + 163, + 163, + 260, + 343, + 343, + 32, + 32, + 32, + 32, + 215, + 393, + 393, + 393, + 213, + 213, + 334, + 15, + 15, + 258, + 258, + 375, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 153, + 153, + 252, + 387, + 40, + 120, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 302, + 302, + 55, + 55, + 55, + 55, + 159, + 272, + 272, + 317, + 317, + 35, + 173, + 173, + 173, + 173, + 173, + 229, + 391, + 391, + 391, + 391, + 54, + 149, + 233, + 233, + 233, + 233, + 333, + 169, + 169, + 169, + 169, + 169, + 259, + 259, + 323, + 179, + 288, + 365, + 365, + 365, + 125, + 125, + 125, + 285, + 343, + 158, + 205, + 344, + 344, + 90, + 90, + 90, + 182, + 182, + 182, + 247, + 247, + 356, + 356, + 356, + 154, + 256, + 256, + 256, + 256, + 256, + 325, + 130, + 46, + 130, + 268, + 268, + 268, + 268, + 383, + 383, + 84, + 84, + 84, + 144, + 228, + 228, + 228, + 368, + 52, + 187, + 269, + 335, + 17, + 144, + 213, + 213, + 326, + 72, + 111, + 111, + 269, + 269, + 269, + 398, + 75, + 191, + 191, + 295, + 295, + 295, + 295, + 295, + 295, + 385, + 385, + 15, + 15, + 181, + 181, + 297, + 297, + 340, + 340, + 53, + 53, + 53, + 53, + 53, + 53, + 119, + 280, + 280, + 334, + 334, + 334, + 334, + 334, + 334, + 334, + 91, + 91, + 91, + 91, + 91, + 126, + 294, + 352, + 62, + 62, + 103, + 103, + 103, + 264, + 339, + 339, + 3, + 3, + 3, + 3, + 3, + 250, + 104, + 104, + 250, + 327, + 66, + 155, + 252, + 336, + 336, + 61, + 266, + 345, + 345, + 22, + 22, + 22, + 22, + 193, + 193, + 193, + 193, + 274, + 274, + 351, + 69, + 169, + 230, + 230, + 230, + 350, + 350, + 54, + 54, + 164, + 279, + 279, + 310, + 64, + 64, + 147, + 147, + 147, + 213, + 213, + 213, + 213, + 213, + 363, + 51, + 140, + 140, + 140, + 241, + 241, + 26, + 26, + 26, + 131, + 289, + 289, + 289, + 289, + 289, + 289, + 327, + 327, + 67, + 110, + 232, + 377, + 377, + 377, + 68, + 68, + 68, + 68, + 200, + 244, + 63, + 378, + 63, + 63, + 63, + 63, + 109, + 262, + 339, + 45, + 45, + 146, + 146, + 146, + 267, + 267, + 386, + 386, + 70, + 126, + 246, + 355, + 5, + 164, + 164, + 211, + 211, + 395, + 395, + 7, + 197, + 197, + 197, + 197, + 197, + 197, + 231, + 231, + 231, + 92, + 92, + 92, + 161, + 161, + 209, + 209, + 209, + 19, + 19, + 142, + 34, + 34, + 34, + 183, + 183, + 235, + 235, + 235, + 95, + 95, + 175, + 224, + 224, + 47, + 47, + 47, + 47, + 47, + 179, + 26, + 146, + 146, + 146, + 63, + 199, + 199, + 94, + 270, + 94, + 94, + 94, + 156, + 156, + 156, + 156, + 229, + 25, + 101, + 101, + 101, + 101, + 281, + 87, + 119, + 119, + 273, + 273, + 33, + 154, + 154, + 154, + 154, + 207, + 22, + 156, + 100, + 179, + 393, + 393, + 203, + 203, + 203, + 393, + 393, + 393, + 393, + 393, + 99, + 108, + 226, + 23, + 115, + 37, + 281, + 281, + 281, + 346, + 346, + 346, + 346, + 346, + 346, + 346, + 37, + 240, + 240, + 240, + 383, + 25, + 316, + 82, + 82, + 82, + 82, + 113, + 113, + 340, + 15, + 15, + 115, + 115, + 115, + 115, + 375, + 86, + 121, + 61, + 61, + 61, + 376, + 61, + 61, + 135, + 230, + 230, + 294, + 294, + 85, + 83, + 10, + 151, + 151, + 151, + 151, + 354, + 354, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 47, + 206, + 206, + 318, + 240, + 364, + 364, + 96, + 96, + 160, + 160, + 364, + 364, + 14, + 155, + 155, + 155, + 155, + 364, + 341, + 190, + 190, + 190, + 190, + 283, + 329, + 329, + 69, + 164, + 164, + 59, + 172, + 172, + 390, + 41, + 41, + 41, + 164, + 164, + 216, + 216, + 216, + 216, + 326, + 326, + 326, + 326, + 326, + 93, + 186, + 275, + 275, + 275, + 306, + 180, + 288, + 288, + 288, + 288, + 288, + 288, + 312, + 37, + 197, + 230, + 230, + 230, + 230, + 331, + 8, + 224, + 224, + 352, + 352, + 239, + 239, + 239, + 239, + 343, + 343, + 177, + 177, + 177, + 218, + 336, + 336, + 94, + 137, + 54, + 179, + 212, + 376, + 1, + 152, + 152, + 224, + 385, + 385, + 39, + 39, + 182, + 309, + 309, + 309, + 208, + 309, + 55, + 55, + 137, + 275, + 322, + 322, + 4, + 4, + 181, + 351, + 39, + 184, + 184, + 325, + 325, + 5, + 5, + 5, + 187, + 187, + 187, + 187, + 187, + 247, + 247, + 247, + 247, + 247, + 335, + 335, + 335, + 63, + 63, + 141, + 141, + 141, + 238, + 238, + 238, + 238, + 238, + 238, + 388, + 63, + 101, + 206, + 389, + 389, + 42, + 42, + 191, + 204, + 322, + 32, + 114, + 242, + 242, + 345, + 0, + 185, + 185, + 374, + 282, + 282, + 282, + 374, + 374, + 28, + 164, + 228, + 372, + 56, + 142, + 254, + 254, + 345, + 94, + 109, + 109, + 292, + 336, + 336, + 123, + 123, + 228, + 307, + 307, + 307, + 89, + 150, + 297, + 310, + 283, + 241, + 241, + 343, + 343, + 343, + 241, + 241, + 205, + 164, + 277, + 277, + 198, + 261, + 261, + 261, + 261, + 352, + 273, + 220, + 220, + 220, + 220, + 220, + 220, + 220, + 180, + 255, + 255, + 361, + 270, + 244, + 182, + 182, + 182, + 81, + 81, + 182, + 238, + 238, + 238, + 238, + 357, + 357, + 357, + 21, + 21, + 21, + 352, + 79, + 389, + 33, + 298, + 339, + 339, + 95, + 282, + 383, + 383, + 342, + 297, + 56, + 56, + 297, + 154, + 297, + 297, + 297, + 297, + 297, + 342, + 342, + 75, + 75, + 75, + 196, + 196, + 238, + 349, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 222, + 341, + 341, + 341, + 77, + 136, + 241, + 241, + 241, + 241, + 241, + 241, + 319, + 55, + 197, + 298, + 339, + 89, + 310, + 10, + 10, + 10, + 10, + 10, + 10, + 234, + 360, + 54, + 54, + 54, + 255, + 255, + 340, + 340, + 340, + 340, + 340, + 340, + 5, + 5, + 5, + 111, + 111, + 267, + 267, + 361, + 361, + 2, + 2, + 120, + 120, + 120, + 261, + 261, + 334, + 43, + 43, + 231, + 231, + 307, + 74, + 74, + 74, + 217, + 342, + 342, + 24, + 24, + 24, + 24, + 24, + 107, + 223, + 313, + 313, + 313, + 96, + 186, + 269, + 269, + 269, + 376, + 24, + 24, + 24, + 221, + 360, + 7, + 7, + 7, + 220, + 399, + 90, + 90, + 164, + 298, + 298, + 307, + 307, + 307, + 32, + 148, + 148, + 212, + 212, + 327, + 65, + 262, + 342, + 342, + 288, + 380, + 6, + 6, + 6, + 6, + 202, + 328, + 207, + 299, + 210, + 82, + 82, + 194, + 194, + 266, + 24, + 24, + 104, + 104, + 252, + 115, + 256, + 230, + 230, + 230, + 230, + 230, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 158, + 158, + 158, + 390, + 91, + 176, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 165, + 229, + 229, + 133, + 297, + 85, + 189, + 271, + 271, + 271, + 40, + 135, + 135, + 170, + 170, + 170, + 170, + 122, + 215, + 122, + 142, + 142, + 142, + 288, + 288, + 288, + 142, + 198, + 106, + 86, + 363, + 363, + 86, + 122, + 122, + 122, + 122, + 242, + 242, + 242, + 16, + 16, + 16, + 105, + 281, + 281, + 372, + 372, + 372, + 188, + 188, + 188, + 188, + 272, + 386, + 189, + 284, + 389, + 43, + 43, + 103, + 103, + 277, + 277, + 315, + 315, + 195, + 195, + 195, + 195, + 293, + 373, + 120, + 78, + 120, + 120, + 120, + 214, + 343, + 194, + 194, + 235, + 235, + 301, + 187, + 258, + 347, + 73, + 147, + 147, + 213, + 213, + 18, + 18, + 18, + 310, + 310, + 18, + 18, + 109, + 109, + 109, + 109, + 109, + 109, + 245, + 376, + 376, + 83, + 185, + 229, + 328, + 328, + 328, + 189, + 209, + 209, + 396, + 396, + 14, + 119, + 256, + 256, + 256, + 379, + 32, + 32, + 32, + 32, + 32, + 32, + 173, + 236, + 236, + 345, + 345, + 49, + 162, + 162, + 162, + 286, + 390, + 390, + 161, + 161, + 161, + 161, + 161, + 204, + 204, + 204, + 204, + 352, + 31, + 194, + 194, + 286, + 359, + 359, + 359, + 359, + 96, + 148, + 217, + 320, + 320, + 320, + 200, + 200, + 200, + 200, + 222, + 222, + 330, + 123, + 123, + 296, + 346, + 81, + 81, + 81, + 81, + 194, + 254, + 254, + 254, + 254, + 254, + 330, + 10, + 10, + 10, + 10, + 189, + 245, + 245, + 339, + 37, + 188, + 253, + 253, + 253, + 253, + 319, + 57, + 129, + 129, + 258, + 258, + 368, + 368, + 81, + 157, + 157, + 157, + 201, + 201, + 201, + 201, + 201, + 348, + 18, + 149, + 359, + 287, + 287, + 359, + 19, + 122, + 122, + 338, + 338, + 54, + 167, + 243, + 243, + 243, + 363, + 363, + 363, + 363, + 363, + 363, + 363, + 17, + 17, + 17, + 17, + 17, + 17, + 167, + 340, + 47, + 146, + 369, + 76, + 76, + 76, + 131, + 131, + 131, + 131, + 131, + 131, + 300, + 381, + 381, + 381, + 381, + 85, + 85, + 85, + 128, + 315, + 315, + 315, + 315, + 315, + 315, + 16, + 16, + 142, + 259, + 259, + 351, + 130, + 130, + 130, + 372, + 229, + 229, + 229, + 229, + 229, + 372, + 182, + 182, + 182, + 256, + 256, + 303, + 153, + 234, + 332, + 332, + 332, + 332, + 115, + 296, + 309, + 173, + 363, + 167, + 167, + 167, + 307, + 49, + 110, + 110, + 110, + 334, + 195, + 385, + 129, + 362, + 362, + 173, + 352, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 195, + 195, + 195, + 195, + 195, + 217, + 371, + 12, + 12, + 126, + 126, + 126, + 372, + 9, + 156, + 346, + 48, + 48, + 48, + 104, + 219, + 399, + 399, + 399, + 399, + 399, + 399, + 91, + 171, + 171, + 171, + 171, + 286, + 286, + 36, + 36, + 36, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 36, + 133, + 133, + 133, + 256, + 256, + 256, + 355, + 355, + 12, + 185, + 242, + 329, + 329, + 329, + 329, + 329, + 329, + 329, + 54, + 177, + 265, + 265, + 265, + 265, + 303, + 303, + 68, + 68, + 106, + 106, + 106, + 238, + 396, + 396, + 396, + 396, + 0, + 0, + 169, + 270, + 382, + 161, + 213, + 213, + 213, + 213, + 213, + 342, + 182, + 258, + 370, + 57, + 162, + 162, + 162, + 162, + 203, + 203, + 203, + 389, + 389, + 79, + 199, + 246, + 246, + 304, + 28, + 161, + 275, + 275, + 275, + 275, + 351, + 351, + 174, + 11, + 11, + 11, + 11, + 174, + 243, + 397, + 397, + 68, + 182, + 296, + 301, + 19, + 189, + 189, + 189, + 189, + 283, + 374, + 374, + 55, + 175, + 175, + 209, + 209, + 81, + 101, + 101, + 101, + 252, + 252, + 252, + 54, + 54, + 169, + 219, + 330, + 330, + 65, + 122, + 122, + 286, + 395, + 395, + 395, + 395, + 395, + 34, + 170, + 260, + 260, + 260, + 377, + 85, + 85, + 115, + 253, + 334, + 334, + 13, + 130, + 130, + 130, + 130, + 130, + 130, + 266, + 363, + 363, + 363, + 0, + 131, + 220, + 347, + 347, + 98, + 98, + 171, + 354, + 47, + 47, + 165, + 165, + 165, + 75, + 194, + 326, + 84, + 84, + 134, + 380, + 380, + 67, + 67, + 67, + 67, + 187, + 53, + 180, + 180, + 260, + 260, + 397, + 76, + 193, + 201, + 379, + 21, + 191, + 269, + 269, + 353, + 59, + 59, + 59, + 136, + 209, + 209, + 209, + 209, + 336, + 336, + 336, + 42, + 123, + 251, + 251, + 328, + 328, + 328, + 328, + 328, + 328, + 75, + 75, + 165, + 165, + 243, + 243, + 386, + 190, + 190, + 264, + 389, + 19, + 19, + 142, + 142, + 273, + 273, + 273, + 273, + 273, + 273, + 352, + 36, + 36, + 158, + 158, + 331, + 331, + 108, + 397, + 142, + 389, + 389, + 389, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 283, + 365, + 160, + 160, + 262, + 262, + 262, + 324, + 324, + 130, + 130, + 130, + 130, + 130, + 130, + 284, + 324, + 324, + 324, + 170, + 246, + 246, + 246, + 338, + 338, + 9, + 9, + 102, + 265, + 29, + 150, + 264, + 264, + 83, + 83, + 148, + 148, + 148, + 293, + 293, + 397, + 98, + 98, + 109, + 229, + 356, + 90, + 90, + 90, + 150, + 150, + 150, + 150, + 247, + 322, + 26, + 26, + 26, + 152, + 234, + 234, + 3, + 153, + 366, + 366, + 80, + 80, + 80, + 146, + 146, + 7, + 116, + 116, + 212, + 212, + 322, + 7, + 161, + 161, + 65, + 321, + 65, + 102, + 320, + 320, + 92, + 131, + 263, + 74, + 74, + 105, + 91, + 91, + 150, + 150, + 365, + 36, + 224, + 224, + 224, + 310, + 4, + 350, + 350, + 350, + 23, + 23, + 23, + 23, + 159, + 159, + 159, + 159, + 159, + 295, + 397, + 92, + 108, + 317, + 317, + 317, + 138, + 138, + 138, + 138, + 295, + 356, + 178, + 178, + 178, + 324, + 118, + 118, + 118, + 118, + 236, + 344, + 151, + 151, + 35, + 35, + 151, + 151, + 151, + 211, + 211, + 363, + 151, + 151, + 266, + 385, + 3, + 123, + 318, + 318, + 318, + 40, + 113, + 349, + 349, + 16, + 221, + 221, + 355, + 355, + 149, + 292, + 292, + 292, + 292, + 347, + 92, + 92, + 92, + 138, + 138, + 138, + 138, + 208, + 208, + 208, + 303, + 303, + 111, + 111, + 239, + 239, + 321, + 321, + 38, + 152, + 152, + 152, + 225, + 225, + 353, + 72, + 72, + 129, + 253, + 142, + 235, + 235, + 235, + 235, + 104, + 294, + 171, + 387, + 171, + 226, + 130, + 176, + 95, + 95, + 95, + 176, + 237, + 237, + 237, + 237, + 237, + 350, + 350, + 350, + 350, + 11, + 102, + 102, + 102, + 320, + 320, + 320, + 29, + 29, + 155, + 155, + 385, + 385, + 2, + 126, + 126, + 126, + 4, + 4, + 176, + 176, + 176, + 176, + 22, + 152, + 387, + 387, + 31, + 170, + 203, + 203, + 203, + 80, + 80, + 80, + 230, + 230, + 11, + 86, + 86, + 92, + 92, + 92, + 122, + 327, + 327, + 92, + 92, + 92, + 90, + 90, + 90, + 90, + 101, + 90, + 182, + 87, + 298, + 353, + 87, + 87, + 0, + 335, + 335, + 128, + 128, + 128, + 128, + 335, + 335, + 335, + 335, + 335, + 0, + 236, + 236, + 236, + 236, + 382, + 72, + 72, + 278, + 337, + 337, + 93, + 93, + 93, + 297, + 99, + 235, + 235, + 235, + 377, + 77, + 126, + 126, + 126, + 267, + 267, + 267, + 267, + 321, + 321, + 321, + 321, + 40, + 176, + 210, + 337, + 337, + 41, + 41, + 41, + 152, + 152, + 223, + 223, + 223, + 327, + 1, + 135, + 135, + 135, + 243, + 243, + 243, + 243, + 340, + 66, + 192, + 192, + 192, + 192, + 192, + 192, + 284, + 373, + 373, + 373, + 373, + 21, + 279, + 279, + 50, + 239, + 322, + 28, + 28, + 185, + 185, + 283, + 283, + 353, + 353, + 353, + 48, + 196, + 265, + 375, + 375, + 375, + 375, + 99, + 99, + 177, + 216, + 336, + 77, + 77, + 77, + 77, + 77, + 194, + 254, + 348, + 25, + 25, + 166, + 166, + 244, + 244, + 37, + 37, + 163, + 163, + 163, + 163, + 207, + 342, + 69, + 188, + 188, + 188, + 188, + 188, + 188, + 241, + 241, + 334, + 334, + 86, + 86, + 86, + 86, + 138, + 138, + 273, + 273, + 64, + 64, + 64, + 161, + 161, + 216, + 216, + 216, + 392, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 121, + 121, + 237, + 237, + 349, + 349, + 74, + 74, + 74, + 171, + 285, + 285, + 378, + 378, + 79, + 137, + 208, + 2, + 197, + 219, + 71, + 213, + 213, + 213, + 161, + 161, + 161, + 213, + 61, + 61, + 61, + 61, + 61, + 197, + 197, + 197, + 247, + 247, + 348, + 15, + 15, + 15, + 118, + 118, + 118, + 258, + 258, + 36, + 226, + 5, + 292, + 100, + 100, + 259, + 29, + 29, + 29, + 29, + 29, + 146, + 146, + 25, + 123, + 123, + 16, + 16, + 22, + 117, + 4, + 4, + 4, + 84, + 84, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 206, + 206, + 355, + 355, + 355, + 355, + 56, + 169, + 169, + 214, + 214, + 214, + 214, + 371, + 258, + 254, + 378, + 378, + 378, + 196, + 196, + 97, + 97, + 97, + 196, + 196, + 224, + 224, + 224, + 146, + 146, + 292, + 5, + 119, + 119, + 119, + 119, + 119, + 216, + 36, + 36, + 136, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 384, + 384, + 384, + 384, + 91, + 91, + 91, + 194, + 194, + 194, + 194, + 194, + 298, + 397, + 397, + 397, + 88, + 88, + 139, + 139, + 139, + 139, + 139, + 223, + 317, + 36, + 36, + 104, + 104, + 104, + 251, + 251, + 333, + 168, + 298, + 329, + 329, + 329, + 72, + 106, + 106, + 211, + 211, + 360, + 360, + 360, + 38, + 38, + 38, + 38, + 38, + 38, + 101, + 237, + 313, + 61, + 61, + 184, + 184, + 184, + 184, + 184, + 184, + 184, + 207, + 207, + 387, + 387, + 387, + 56, + 193, + 279, + 340, + 340, + 115, + 115, + 297, + 334, + 28, + 28, + 147, + 147, + 147, + 147, + 227, + 331, + 15, + 140, + 140, + 291, + 333, + 38, + 38, + 38, + 184, + 184, + 205, + 205, + 205, + 375, + 24, + 24, + 190, + 225, + 225, + 8, + 108, + 283, + 283, + 283, + 338, + 119, + 119, + 119, + 119, + 119, + 281, + 281, + 322, + 322, + 322, + 125, + 274, + 383, + 383, + 190, + 213, + 111, + 111, + 274, + 274, + 274, + 274, + 366, + 366, + 366, + 366, + 81, + 81, + 170, + 170, + 170, + 170, + 234, + 234, + 234, + 322, + 322, + 322, + 85, + 172, + 286, + 286, + 317, + 110, + 110, + 228, + 318, + 318, + 318, + 3, + 162, + 253, + 253, + 253, + 307, + 77, + 348, + 77, + 77, + 348, + 20, + 294, + 294, + 311, + 42, + 42, + 335, + 172, + 172, + 285, + 285, + 285, + 335, + 197, + 197, + 197, + 197, + 197, + 276, + 276, + 276, + 276, + 276, + 276, + 381, + 381, + 381, + 283, + 384, + 377, + 377, + 353, + 353, + 342, + 233, + 342, + 342, + 87, + 87, + 87, + 87, + 103, + 267, + 362, + 362, + 35, + 35, + 35, + 135, + 135, + 219, + 303, + 59, + 143, + 143, + 143, + 336, + 59, + 348, + 348, + 348, + 179, + 179, + 294, + 294, + 294, + 396, + 396, + 89, + 135, + 389, + 389, + 389, + 249, + 249, + 249, + 249, + 249, + 389, + 84, + 183, + 243, + 324, + 324, + 74, + 74, + 198, + 198, + 261, + 261, + 321, + 90, + 140, + 240, + 240, + 240, + 240, + 240, + 350, + 350, + 350, + 161, + 284, + 284, + 345, + 49, + 118, + 300, + 383, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 186, + 186, + 265, + 334, + 78, + 143, + 143, + 143, + 354, + 354, + 189, + 306, + 182, + 182, + 182, + 211, + 398, + 23, + 180, + 180, + 180, + 180, + 180, + 180, + 353, + 353, + 43, + 192, + 305, + 12, + 12, + 136, + 318, + 318, + 155, + 280, + 280, + 280, + 280, + 198, + 215, + 141, + 87, + 141, + 141, + 141, + 214, + 214, + 330, + 50, + 149, + 149, + 116, + 116, + 116, + 116, + 216, + 216, + 216, + 350, + 194, + 194, + 326, + 199, + 376, + 376, + 376, + 376, + 376, + 31, + 31, + 184, + 184, + 184, + 184, + 263, + 263, + 320, + 56, + 120, + 297, + 297, + 398, + 398, + 1, + 182, + 182, + 182, + 182, + 182, + 182, + 343, + 11, + 11, + 186, + 186, + 320, + 65, + 189, + 189, + 241, + 241, + 363, + 363, + 363, + 98, + 98, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 377, + 377, + 83, + 138, + 138, + 307, + 307, + 148, + 148, + 148, + 381, + 381, + 381, + 381, + 129, + 388, + 388, + 84, + 138, + 138, + 138, + 138, + 138, + 203, + 203, + 203, + 203, + 303, + 303, + 1, + 149, + 233, + 233, + 233, + 233, + 368, + 368, + 368, + 14, + 189, + 216, + 358, + 358, + 358, + 358, + 358, + 84, + 84, + 183, + 216, + 399, + 4, + 179, + 368, + 49, + 49, + 119, + 119, + 362, + 223, + 362, + 362, + 362, + 49, + 49, + 118, + 202, + 383, + 383, + 383, + 28, + 119, + 119, + 215, + 358, + 358, + 69, + 112, + 288, + 358, + 28, + 128, + 128, + 128, + 128, + 128, + 355, + 355, + 27, + 156, + 156, + 358, + 21, + 115, + 348, + 348, + 94, + 135, + 388, + 247, + 388, + 72, + 72, + 173, + 173, + 293, + 293, + 370, + 10, + 10, + 10, + 130, + 367, + 83, + 181, + 30, + 111, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 335, + 47, + 47, + 185, + 239, + 239, + 339, + 42, + 122, + 122, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 22, + 22, + 187, + 399, + 9, + 156, + 156, + 79, + 328, + 79, + 79, + 145, + 339, + 339, + 56, + 56, + 56, + 137, + 282, + 282, + 282, + 282, + 282, + 320, + 320, + 320, + 320, + 320, + 61, + 61, + 61, + 61, + 61, + 120, + 120, + 249, + 354, + 354, + 2, + 2, + 180, + 180, + 288, + 288, + 309, + 309, + 309, + 15, + 15, + 228, + 314, + 314, + 314, + 12, + 226, + 337, + 337, + 337, + 337, + 39, + 39, + 39, + 286, + 354, + 354, + 48, + 239, + 239, + 139, + 239, + 309, + 25, + 278, + 278, + 376, + 269, + 350, + 125, + 294, + 375, + 375, + 63, + 63, + 237, + 380, + 71, + 71, + 71, + 71, + 109, + 109, + 109, + 222, + 222, + 394, + 40, + 268, + 20, + 124, + 221, + 221, + 221, + 59, + 59, + 59, + 59, + 147, + 296, + 108, + 108, + 213, + 213, + 197, + 288, + 288, + 395, + 395, + 395, + 74, + 74, + 74, + 107, + 277, + 339, + 339, + 193, + 283, + 365, + 248, + 308, + 308, + 71, + 399, + 236, + 399, + 399, + 399, + 93, + 93, + 101, + 273, + 365, + 195, + 195, + 195, + 195, + 195, + 346, + 28, + 28, + 28, + 163, + 269, + 393, + 393, + 36, + 36, + 113, + 223, + 223, + 223, + 223, + 223, + 396, + 396, + 57, + 191, + 264, + 264, + 318, + 161, + 202, + 202, + 202, + 202, + 371, + 371, + 371, + 371, + 371, + 371, + 25, + 25, + 135, + 231, + 385, + 141, + 141, + 5, + 141, + 141, + 265, + 398, + 398, + 398, + 398, + 398, + 398, + 398, + 41, + 111, + 111, + 251, + 331, + 133, + 96, + 133, + 133, + 245, + 245, + 245, + 245, + 375, + 95, + 95, + 95, + 95, + 95, + 146, + 224, + 388, + 11, + 161, + 294, + 294, + 340, + 340, + 5, + 105, + 241, + 241, + 382, + 187, + 187, + 51, + 51, + 187, + 304, + 16, + 150, + 301, + 140, + 361, + 361, + 294, + 294, + 294, + 361, + 361, + 6, + 163, + 163, + 163, + 298, + 369, + 31, + 179, + 251, + 251, + 251, + 251, + 350, + 350, + 350, + 93, + 141, + 141, + 141, + 141, + 141, + 240, + 396, + 89, + 190, + 190, + 190, + 202, + 334, + 334, + 334, + 334, + 334, + 334, + 33, + 33, + 189, + 189, + 222, + 318, + 197, + 80, + 80, + 80, + 80, + 197, + 197, + 197, + 224, + 306, + 53, + 151, + 203, + 203, + 318, + 318, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 198, + 317, + 317, + 12, + 12, + 12, + 104, + 104, + 340, + 94, + 179, + 335, + 160, + 160, + 301, + 103, + 234, + 340, + 155, + 279, + 279, + 311, + 169, + 201, + 201, + 149, + 164, + 164, + 164, + 164, + 164, + 155, + 113, + 175, + 290, + 290, + 290, + 290, + 290, + 175, + 175, + 276, + 145, + 187, + 336, + 282, + 336, + 336, + 336, + 336, + 187, + 187, + 363, + 60, + 60, + 152, + 359, + 54, + 54, + 369, + 70, + 346, + 98, + 98, + 203, + 341, + 49, + 312, + 201, + 201, + 312, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 363, + 1, + 1, + 166, + 14, + 147, + 147, + 147, + 208, + 208, + 208, + 303, + 65, + 65, + 170, + 170, + 170, + 170, + 382, + 382, + 382, + 44, + 44, + 44, + 191, + 191, + 191, + 191, + 212, + 388, + 15, + 15, + 15, + 199, + 393, + 393, + 45, + 45, + 45, + 45, + 45, + 45, + 126, + 126, + 126, + 349, + 95, + 95, + 95, + 95, + 237, + 237, + 366, + 74, + 74, + 259, + 393, + 97, + 115, + 277, + 277, + 277, + 277, + 277, + 353, + 353, + 353, + 353, + 79, + 79, + 138, + 260, + 260, + 374, + 73, + 313, + 40, + 305, + 305, + 295, + 305, + 305, + 3, + 243, + 391, + 391, + 36, + 36, + 152, + 238, + 238, + 238, + 238, + 356, + 356, + 111, + 111, + 111, + 111, + 217, + 217, + 352, + 18, + 18, + 147, + 160, + 160, + 267, + 53, + 53, + 160, + 160, + 18, + 126, + 126, + 126, + 67, + 351, + 351, + 351, + 351, + 67, + 345, + 36, + 36, + 323, + 323, + 27, + 27, + 272, + 272, + 272, + 45, + 211, + 99, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 27, + 232, + 36, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 283, + 283, + 355, + 21, + 270, + 378, + 378, + 378, + 378, + 7, + 142, + 142, + 210, + 210, + 374, + 374, + 69, + 69, + 69, + 69, + 111, + 111, + 229, + 229, + 229, + 229, + 229, + 313, + 313, + 313, + 48, + 122, + 272, + 272, + 272, + 340, + 38, + 103, + 232, + 307, + 307, + 307, + 69, + 69, + 69, + 175, + 175, + 216, + 399, + 399, + 44, + 44, + 136, + 225, + 382, + 382, + 49, + 49, + 49, + 160, + 218, + 218, + 218, + 316, + 316, + 316, + 316, + 316, + 36, + 36, + 36, + 36, + 116, + 230, + 230, + 366, + 63, + 63, + 63, + 199, + 240, + 370, + 0, + 0, + 0, + 0, + 0, + 0, + 151, + 151, + 151, + 251, + 251, + 251, + 325, + 325, + 325, + 325, + 325, + 325, + 32, + 121, + 121, + 227, + 227, + 312, + 312, + 312, + 61, + 112, + 273, + 322, + 195, + 195, + 195, + 195, + 195, + 285, + 285, + 285, + 319, + 319, + 319, + 77, + 154, + 253, + 301, + 301, + 301, + 89, + 189, + 239, + 374, + 123, + 123, + 123, + 65, + 65, + 65, + 65, + 123, + 237, + 393, + 393, + 156, + 202, + 202, + 202, + 399, + 127, + 127, + 209, + 209, + 335, + 335, + 130, + 130, + 130, + 130, + 130, + 130, + 72, + 130, + 290, + 290, + 308, + 308, + 82, + 292, + 361, + 361, + 235, + 385, + 385, + 385, + 203, + 370, + 370, + 93, + 93, + 93, + 180, + 245, + 245, + 295, + 295, + 295, + 366, + 152, + 152, + 207, + 207, + 77, + 180, + 104, + 344, + 157, + 383, + 383, + 383, + 220, + 383, + 383, + 383, + 9, + 9, + 158, + 158, + 158, + 20, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 201, + 201, + 201, + 201, + 201, + 201, + 310, + 71, + 120, + 258, + 333, + 333, + 13, + 162, + 208, + 208, + 337, + 337, + 269, + 269, + 269, + 180, + 269, + 269, + 269, + 83, + 40, + 98, + 63, + 370, + 370, + 370, + 86, + 186, + 186, + 241, + 241, + 366, + 31, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 26, + 237, + 237, + 321, + 321, + 394, + 391, + 290, + 322, + 51, + 313, + 39, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 285, + 47, + 47, + 47, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 196, + 196, + 196, + 196, + 328, + 328, + 100, + 100, + 138, + 138, + 230, + 226, + 226, + 226, + 226, + 226, + 226, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 101, + 282, + 282, + 396, + 396, + 396, + 396, + 261, + 214, + 214, + 363, + 363, + 363, + 363, + 363, + 363, + 76, + 236, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 279, + 279, + 279, + 136, + 211, + 174, + 223, + 219, + 286, + 144, + 144, + 144, + 286, + 387, + 387, + 97, + 97, + 169, + 39, + 145, + 145, + 145, + 145, + 145, + 145, + 145, + 145, + 203, + 203, + 203, + 87, + 87, + 87, + 119, + 232, + 7, + 7, + 7, + 145, + 229, + 229, + 381, + 381, + 37, + 152, + 256, + 44, + 176, + 176, + 176, + 260, + 260, + 260, + 80, + 128, + 128, + 128, + 128, + 254, + 382, + 65, + 139, + 296, + 296, + 296, + 392, + 392, + 55, + 55, + 55, + 197, + 221, + 315, + 315, + 315, + 315, + 315, + 315, + 19, + 189, + 189, + 189, + 381, + 381, + 381, + 381, + 100, + 137, + 137, + 324, + 243, + 324, + 324, + 324, + 324, + 36, + 36, + 36, + 169, + 261, + 261, + 261, + 261, + 261, + 393, + 34, + 34, + 188, + 315, + 54, + 54, + 54, + 54, + 168, + 231, + 312, + 312, + 312, + 65, + 107, + 63, + 106, + 106, + 351, + 351, + 56, + 150, + 301, + 62, + 62, + 187, + 304, + 113, + 113, + 90, + 113, + 291, + 291, + 291, + 355, + 355, + 355, + 355, + 355, + 19, + 19, + 194, + 194, + 194, + 194, + 237, + 329, + 329, + 329, + 329, + 16, + 145, + 145, + 145, + 145, + 216, + 216, + 216, + 398, + 398, + 398, + 398, + 398, + 3, + 3, + 173, + 282, + 368, + 368, + 368, + 61, + 180, + 206, + 348, + 88, + 101, + 101, + 101, + 281, + 281, + 309, + 309, + 136, + 296, + 296, + 296, + 330, + 180, + 254, + 176, + 177, + 177, + 144, + 271, + 144, + 144, + 144, + 269, + 142, + 142, + 254, + 322, + 21, + 21, + 141, + 141, + 36, + 151, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 260, + 260, + 306, + 72, + 344, + 13, + 62, + 56, + 56, + 170, + 26, + 26, + 26, + 151, + 2, + 2, + 2, + 202, + 362, + 2, + 2, + 172, + 289, + 289, + 86, + 86, + 154, + 154, + 66, + 148, + 21, + 134, + 134, + 22, + 22, + 162, + 250, + 389, + 389, + 34, + 146, + 346, + 200, + 200, + 390, + 390, + 390, + 390, + 390, + 200, + 110, + 136, + 136, + 282, + 252, + 252, + 320, + 320, + 320, + 320, + 320, + 46, + 46, + 158, + 158, + 252, + 253, + 240, + 240, + 240, + 240, + 210, + 268, + 220, + 27, + 27, + 27, + 27, + 165, + 300, + 300, + 307, + 307, + 39, + 39, + 114, + 252, + 252, + 252, + 252, + 74, + 74, + 74, + 74, + 74, + 140, + 140, + 140, + 140, + 140, + 236, + 236, + 393, + 393, + 393, + 393, + 61, + 279, + 279, + 279, + 24, + 116, + 116, + 262, + 262, + 262, + 262, + 354, + 354, + 354, + 354, + 354, + 66, + 66, + 161, + 161, + 283, + 283, + 321, + 321, + 1, + 151, + 151, + 286, + 314, + 100, + 100, + 180, + 309, + 309, + 90, + 90, + 90, + 129, + 129, + 129, + 129, + 129, + 99, + 113, + 82, + 152, + 152, + 152, + 152, + 152, + 86, + 107, + 330, + 16, + 16, + 16, + 16, + 188, + 188, + 354, + 354, + 354, + 76, + 76, + 189, + 189, + 189, + 189, + 394, + 13, + 148, + 41, + 145, + 145, + 145, + 361, + 62, + 112, + 112, + 112, + 279, + 370, + 370, + 90, + 106, + 106, + 106, + 106, + 229, + 229, + 391, + 391, + 59, + 59, + 59, + 114, + 283, + 283, + 283, + 400, + 400, + 400, + 400, + 41, + 194, + 275, + 275, + 275, + 275, + 275, + 334, + 334, + 89, + 89, + 111, + 300, + 300, + 379, + 84, + 139, + 139, + 252, + 337, + 17, + 148, + 148, + 148, + 206, + 306, + 306, + 99, + 99, + 99, + 99, + 99, + 181, + 253, + 81, + 140, + 140, + 140, + 140, + 140, + 254, + 396, + 72, + 200, + 200, + 270, + 342, + 342, + 342, + 67, + 67, + 67, + 67, + 144, + 264, + 264, + 264, + 264, + 264, + 313, + 24, + 162, + 209, + 209, + 357, + 357, + 35, + 35, + 35, + 148, + 148, + 202, + 346, + 67, + 162, + 162, + 162, + 162, + 212, + 308, + 88, + 88, + 154, + 202, + 202, + 335, + 335, + 335, + 335, + 335, + 335, + 49, + 49, + 101, + 101, + 206, + 206, + 380, + 52, + 122, + 256, + 256, + 303, + 36, + 36, + 36, + 133, + 264, + 264, + 393, + 393, + 164, + 242, + 331, + 34, + 147, + 147, + 260, + 260, + 260, + 260, + 260, + 260, + 377, + 377, + 29, + 29, + 255, + 255, + 255, + 255, + 166, + 255, + 348, + 348, + 75, + 75, + 75, + 102, + 102, + 251, + 251, + 371, + 91, + 289, + 174, + 174, + 289, + 289, + 379, + 379, + 379, + 379, + 379, + 95, + 164, + 164, + 288, + 319, + 319, + 97, + 97, + 120, + 279, + 279, + 279, + 358, + 358, + 99, + 116, + 116, + 116, + 241, + 390, + 85, + 180, + 240, + 240, + 355, + 355, + 355, + 355, + 355, + 23, + 23, + 120, + 120, + 120, + 120, + 216, + 363, + 363, + 47, + 47, + 125, + 125, + 125, + 219, + 219, + 387, + 62, + 187, + 207, + 207, + 207, + 356, + 356, + 356, + 356, + 356, + 356, + 356, + 356, + 0, + 0, + 0, + 116, + 116, + 298, + 298, + 390, + 54, + 54, + 199, + 199, + 256, + 373, + 373, + 39, + 39, + 39, + 39, + 39, + 39, + 115, + 229, + 229, + 355, + 24, + 199, + 287, + 287, + 287, + 287, + 326, + 326, + 47, + 189, + 189, + 189, + 189, + 253, + 331, + 331, + 95, + 104, + 104, + 287, + 287, + 323, + 323, + 323, + 37, + 184, + 184, + 184, + 275, + 275, + 384, + 98, + 142, + 211, + 211, + 211, + 305, + 3, + 149, + 291, + 367, + 367, + 85, + 85, + 186, + 186, + 269, + 269, + 382, + 382, + 382, + 382, + 96, + 162, + 257, + 257, + 301, + 57, + 135, + 135, + 135, + 260, + 335, + 81, + 102, + 102, + 102, + 102, + 280, + 372, + 372, + 82, + 82, + 82, + 130, + 263, + 263, + 263, + 263, + 320, + 29, + 163, + 234, + 234, + 394, + 394, + 21, + 21, + 179, + 213, + 302, + 16, + 16, + 142, + 216, + 216, + 397, + 136, + 136, + 229, + 229, + 336, + 130, + 86, + 86, + 130, + 263, + 362, + 15, + 15, + 15, + 15, + 15, + 15, + 173, + 173, + 278, + 278, + 314, + 109, + 109, + 109, + 109, + 245, + 245, + 336, + 189, + 189, + 189, + 82, + 189, + 189, + 243, + 243, + 243, + 319, + 319, + 188, + 211, + 211, + 211, + 211, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 63, + 140, + 209, + 369, + 106, + 253, + 383, + 120, + 238, + 238, + 238, + 238, + 326, + 149, + 334, + 334, + 267, + 267, + 334, + 19, + 19, + 198, + 207, + 327, + 29, + 29, + 29, + 29, + 29, + 170, + 170, + 170, + 170, + 255, + 255, + 255, + 330, + 330, + 330, + 330, + 10, + 151, + 239, + 50, + 50, + 50, + 195, + 276, + 276, + 276, + 58, + 142, + 142, + 142, + 142, + 78, + 78, + 78, + 213, + 364, + 364, + 78, + 199, + 230, + 230, + 230, + 230, + 230, + 392, + 12, + 12, + 161, + 161, + 381, + 92, + 92, + 92, + 109, + 335, + 39, + 180, + 180, + 180, + 367, + 56, + 198, + 198, + 209, + 209, + 86, + 106, + 106, + 358, + 87, + 164, + 191, + 253, + 191, + 191, + 252, + 252, + 195, + 195, + 279, + 279, + 279, + 328, + 140, + 140, + 241, + 241, + 241, + 4, + 174, + 174, + 174, + 240, + 240, + 96, + 96, + 194, + 194, + 194, + 271, + 271, + 271, + 70, + 70, + 176, + 176, + 176, + 239, + 378, + 20, + 139, + 257, + 321, + 73, + 73, + 73, + 130, + 260, + 323, + 323, + 57, + 57, + 150, + 150, + 150, + 150, + 150, + 217, + 370, + 17, + 182, + 182, + 182, + 182, + 182, + 236, + 390, + 29, + 29, + 123, + 228, + 374, + 57, + 172, + 172, + 172, + 292, + 302, + 302, + 24, + 288, + 153, + 288, + 304, + 92, + 156, + 266, + 266, + 384, + 384, + 2, + 2, + 2, + 2, + 2, + 2, + 167, + 254, + 254, + 254, + 301, + 45, + 45, + 151, + 151, + 151, + 151, + 207, + 394, + 394, + 394, + 394, + 1, + 1, + 199, + 268, + 332, + 332, + 9, + 149, + 149, + 354, + 354, + 354, + 354, + 354, + 354, + 354, + 354, + 26, + 155, + 155, + 155, + 155, + 155, + 232, + 232, + 302, + 302, + 302, + 17, + 17, + 17, + 17, + 187, + 187, + 269, + 330, + 330, + 28, + 28, + 28, + 186, + 186, + 238, + 238, + 330, + 330, + 50, + 199, + 199, + 199, + 270, + 339, + 21, + 114, + 217, + 217, + 323, + 64, + 64, + 144, + 316, + 0, + 0, + 147, + 331, + 183, + 379, + 379, + 127, + 127, + 127, + 210, + 371, + 371, + 371, + 85, + 140, + 140, + 397, + 48, + 48, + 142, + 293, + 342, + 342, + 5, + 5, + 5, + 165, + 227, + 227, + 227, + 227, + 315, + 315, + 12, + 12, + 12, + 101, + 101, + 101, + 285, + 285, + 377, + 92, + 92, + 92, + 175, + 255, + 330, + 330, + 194, + 34, + 194, + 194, + 239, + 398, + 192, + 31, + 192, + 192, + 192, + 192, + 265, + 339, + 66, + 297, + 297, + 297, + 297, + 297, + 342, + 342, + 342, + 342, + 51, + 182, + 281, + 281, + 281, + 281, + 388, + 388, + 84, + 84, + 119, + 119, + 282, + 395, + 395, + 395, + 395, + 68, + 68, + 132, + 255, + 255, + 255, + 384, + 43, + 200, + 200, + 200, + 263, + 400, + 76, + 76, + 126, + 126, + 215, + 363, + 64, + 64, + 172, + 279, + 279, + 380, + 188, + 188, + 287, + 287, + 287, + 346, + 139, + 255, + 317, + 264, + 264, + 264, + 353, + 235, + 333, + 333, + 333, + 168, + 86, + 168, + 366, + 366, + 69, + 392, + 342, + 342, + 342, + 342, + 342, + 19, + 149, + 255, + 255, + 255, + 255, + 255, + 255, + 323, + 123, + 371, + 274, + 388, + 388, + 388, + 388, + 359, + 359, + 327, + 57, + 181, + 181, + 250, + 327, + 327, + 327, + 327, + 56, + 56, + 56, + 310, + 34, + 364, + 364, + 364, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 116, + 116, + 266, + 54, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 251, + 32, + 215, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 244, + 388, + 388, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 121, + 121, + 204, + 204, + 204, + 334, + 334, + 26, + 26, + 26, + 145, + 145, + 145, + 145, + 281, + 281, + 281, + 338, + 40, + 40, + 144, + 211, + 39, + 130, + 232, + 232, + 232, + 232, + 232, + 347, + 8, + 8, + 197, + 197, + 197, + 217, + 42, + 132, + 295, + 295, + 295, + 5, + 5, + 5, + 5, + 315, + 315, + 5, + 131, + 131, + 244, + 322, + 322, + 322, + 322, + 76, + 76, + 108, + 299, + 299, + 397, + 397, + 65, + 65, + 183, + 183, + 183, + 254, + 395, + 71, + 71, + 253, + 68, + 68, + 68, + 68, + 68, + 108, + 108, + 108, + 108, + 232, + 330, + 330, + 97, + 168, + 204, + 31, + 286, + 166, + 166, + 166, + 166, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 398, + 398, + 398, + 75, + 75, + 75, + 75, + 75, + 182, + 249, + 355, + 12, + 12, + 295, + 150, + 295, + 295, + 295, + 349, + 349, + 349, + 349, + 23, + 175, + 274, + 274, + 341, + 341, + 33, + 33, + 33, + 125, + 125, + 217, + 386, + 386, + 386, + 146, + 146, + 146, + 212, + 212, + 212, + 336, + 336, + 37, + 166, + 166, + 166, + 273, + 273, + 339, + 339, + 40, + 40, + 40, + 40, + 194, + 194, + 206, + 325, + 49, + 140, + 140, + 201, + 201, + 367, + 24, + 131, + 131, + 131, + 131, + 246, + 246, + 334, + 334, + 100, + 131, + 209, + 209, + 330, + 330, + 330, + 72, + 111, + 111, + 242, + 242, + 242, + 398, + 67, + 194, + 248, + 248, + 248, + 340, + 73, + 192, + 314, + 269, + 314, + 314, + 0, + 186, + 224, + 224, + 372, + 6, + 140, + 140, + 273, + 315, + 24, + 145, + 240, + 240, + 366, + 366, + 138, + 138, + 249, + 249, + 249, + 388, + 388, + 78, + 78, + 167, + 268, + 268, + 268, + 268, + 365, + 87, + 87, + 87, + 157, + 354, + 91, + 91, + 174, + 174, + 174, + 174, + 174, + 247, + 346, + 91, + 91, + 179, + 179, + 179, + 179, + 249, + 324, + 16, + 177, + 177, + 319, + 283, + 283, + 319, + 152, + 16, + 16, + 152, + 152, + 263, + 345, + 345, + 345, + 345, + 30, + 148, + 148, + 148, + 210, + 210, + 394, + 60, + 60, + 202, + 340, + 132, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 316, + 25, + 146, + 146, + 146, + 146, + 274, + 363, + 363, + 363, + 363, + 38, + 38, + 38, + 38, + 38, + 187, + 256, + 361, + 96, + 96, + 144, + 144, + 144, + 144, + 144, + 144, + 144, + 144, + 144, + 295, + 295, + 371, + 371, + 371, + 371, + 34, + 131, + 212, + 212, + 375, + 0, + 0, + 0, + 0, + 188, + 237, + 237, + 237, + 385, + 385, + 385, + 385, + 385, + 76, + 76, + 76, + 142, + 142, + 142, + 257, + 257, + 257, + 257, + 257, + 257, + 309, + 59, + 59, + 113, + 113, + 231, + 231, + 382, + 382, + 382, + 382, + 77, + 149, + 149, + 294, + 308, + 308, + 308, + 66, + 66, + 66, + 66, + 66, + 66, + 66, + 66, + 66, + 66, + 143, + 224, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 55, + 55, + 119, + 119, + 119, + 119, + 245, + 245, + 245, + 245, + 379, + 379, + 379, + 379, + 379, + 25, + 199, + 213, + 213, + 385, + 48, + 48, + 166, + 251, + 329, + 329, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 167, + 216, + 216, + 216, + 355, + 169, + 169, + 14, + 14, + 14, + 169, + 169, + 288, + 288, + 323, + 124, + 225, + 225, + 311, + 311, + 311, + 311, + 311, + 5, + 5, + 5, + 139, + 265, + 392, + 392, + 392, + 24, + 24, + 199, + 199, + 199, + 224, + 314, + 26, + 26, + 26, + 193, + 193, + 216, + 310, + 221, + 385, + 242, + 242, + 364, + 229, + 229, + 400, + 400, + 278, + 278, + 380, + 261, + 261, + 79, + 113, + 261, + 261, + 261, + 356, + 72, + 72, + 72, + 72, + 72, + 144, + 144, + 263, + 263, + 358, + 358, + 358, + 358, + 99, + 99, + 155, + 155, + 254, + 312, + 312, + 312, + 312, + 312, + 312, + 58, + 58, + 166, + 166, + 166, + 280, + 367, + 367, + 367, + 45, + 178, + 256, + 256, + 319, + 56, + 56, + 216, + 216, + 307, + 307, + 36, + 36, + 260, + 260, + 346, + 60, + 60, + 277, + 317, + 317, + 317, + 317, + 18, + 232, + 329, + 51, + 51, + 51, + 148, + 243, + 243, + 243, + 331, + 331, + 92, + 227, + 316, + 316, + 316, + 92, + 214, + 319, + 22, + 22, + 22, + 22, + 120, + 120, + 266, + 266, + 266, + 364, + 23, + 125, + 125, + 125, + 125, + 125, + 202, + 360, + 360, + 76, + 160, + 160, + 259, + 333, + 333, + 44, + 266, + 266, + 194, + 266, + 336, + 83, + 182, + 182, + 182, + 182, + 202, + 393, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 150, + 150, + 150, + 254, + 385, + 385, + 72, + 116, + 116, + 116, + 116, + 201, + 201, + 201, + 201, + 201, + 389, + 111, + 254, + 384, + 384, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 307, + 307, + 193, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 286, + 384, + 384, + 17, + 17, + 17, + 17, + 296, + 178, + 178, + 296, + 296, + 296, + 352, + 33, + 169, + 169, + 169, + 267, + 349, + 349, + 349, + 379, + 379, + 333, + 136, + 136, + 136, + 262, + 333, + 333, + 333, + 333, + 333, + 21, + 198, + 198, + 198, + 291, + 304, + 100, + 114, + 114, + 114, + 114, + 284, + 316, + 316, + 200, + 200, + 200, + 266, + 400, + 400, + 400, + 82, + 141, + 222, + 376, + 376, + 139, + 139, + 216, + 341, + 73, + 73, + 114, + 114, + 114, + 245, + 245, + 245, + 245, + 302, + 193, + 246, + 246, + 373, + 373, + 29, + 169, + 282, + 372, + 46, + 200, + 268, + 268, + 268, + 268, + 268, + 372, + 372, + 15, + 15, + 193, + 193, + 283, + 309, + 22, + 369, + 369, + 369, + 383, + 370, + 370, + 377, + 377, + 377, + 312, + 312, + 62, + 397, + 397, + 397, + 392, + 246, + 246, + 392, + 344, + 104, + 201, + 396, + 396, + 396, + 22, + 22, + 162, + 259, + 259, + 323, + 323, + 323, + 15, + 171, + 171, + 171, + 171, + 275, + 374, + 19, + 19, + 19, + 19, + 161, + 212, + 319, + 49, + 49, + 49, + 49, + 49, + 49, + 49, + 190, + 190, + 190, + 222, + 222, + 222, + 339, + 339, + 89, + 131, + 131, + 251, + 251, + 372, + 372, + 99, + 169, + 169, + 169, + 169, + 254, + 254, + 301, + 301, + 42, + 42, + 42, + 42, + 153, + 153, + 283, + 340, + 13, + 13, + 13, + 131, + 276, + 354, + 98, + 158, + 279, + 391, + 391, + 38, + 137, + 137, + 137, + 137, + 281, + 281, + 281, + 281, + 344, + 13, + 13, + 13, + 13, + 157, + 157, + 298, + 298, + 298, + 359, + 359, + 359, + 28, + 28, + 159, + 249, + 249, + 326, + 17, + 181, + 181, + 237, + 237, + 237, + 325, + 23, + 181, + 181, + 181, + 181, + 181, + 289, + 289, + 289, + 289, + 319, + 53, + 53, + 53, + 142, + 142, + 228, + 345, + 83, + 83, + 225, + 396, + 396, + 100, + 141, + 141, + 234, + 19, + 19, + 239, + 0, + 215, + 215, + 227, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 81, + 117, + 117, + 117, + 117, + 17, + 17, + 117, + 6, + 6, + 285, + 285, + 329, + 40, + 252, + 319, + 319, + 56, + 56, + 56, + 250, + 250, + 367, + 4, + 4, + 194, + 278, + 278, + 278, + 278, + 9, + 128, + 234, + 234, + 234, + 55, + 55, + 101, + 101, + 220, + 361, + 24, + 220, + 220, + 71, + 71, + 71, + 71, + 71, + 260, + 354, + 354, + 354, + 354, + 30, + 204, + 181, + 204, + 204, + 29, + 29, + 107, + 107, + 107, + 107, + 217, + 217, + 15, + 15, + 15, + 133, + 133, + 133, + 133, + 133, + 133, + 133, + 267, + 267, + 267, + 267, + 267, + 267, + 267, + 318, + 318, + 93, + 93, + 93, + 154, + 294, + 357, + 357, + 9, + 169, + 169, + 278, + 278, + 278, + 352, + 85, + 194, + 203, + 203, + 203, + 5, + 5, + 127, + 230, + 230, + 92, + 92, + 92, + 163, + 163, + 163, + 163, + 270, + 57, + 188, + 188, + 282, + 334, + 334, + 38, + 125, + 125, + 125, + 253, + 253, + 94, + 94, + 111, + 217, + 22, + 22, + 163, + 163, + 206, + 206, + 331, + 73, + 73, + 145, + 145, + 237, + 237, + 339, + 339, + 339, + 339, + 55, + 189, + 235, + 324, + 324, + 78, + 78, + 78, + 111, + 254, + 239, + 315, + 315, + 315, + 46, + 161, + 161, + 161, + 239, + 365, + 365, + 90, + 154, + 154, + 274, + 2, + 2, + 2, + 2, + 186, + 186, + 186, + 291, + 119, + 238, + 336, + 336, + 31, + 102, + 340, + 340, + 340, + 340, + 88, + 88, + 88, + 116, + 116, + 116, + 350, + 350, + 94, + 159, + 159, + 262, + 376, + 49, + 147, + 147, + 260, + 323, + 95, + 112, + 286, + 286, + 308, + 308, + 70, + 138, + 138, + 138, + 221, + 221, + 320, + 8, + 127, + 241, + 241, + 241, + 352, + 151, + 213, + 213, + 213, + 213, + 213, + 213, + 367, + 367, + 297, + 297, + 319, + 319, + 284, + 284, + 284, + 304, + 163, + 163, + 163, + 163, + 163, + 163, + 247, + 247, + 247, + 332, + 171, + 171, + 23, + 23, + 171, + 224, + 372, + 372, + 372, + 372, + 372, + 372, + 34, + 34, + 188, + 246, + 395, + 24, + 110, + 296, + 296, + 49, + 181, + 257, + 257, + 257, + 257, + 23, + 318, + 318, + 23, + 125, + 270, + 385, + 333, + 165, + 165, + 333, + 333, + 333, + 145, + 112, + 174, + 174, + 174, + 249, + 174, + 148, + 148, + 86, + 148, + 148, + 148, + 148, + 38, + 110, + 111, + 90, + 258, + 373, + 134, + 134, + 243, + 171, + 171, + 171, + 171, + 326, + 3, + 171, + 296, + 296, + 296, + 324, + 324, + 324, + 1, + 179, + 179, + 262, + 378, + 378, + 77, + 77, + 77, + 77, + 77, + 177, + 297, + 297, + 376, + 81, + 187, + 187, + 95, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 376, + 376, + 376, + 100, + 100, + 100, + 150, + 341, + 341, + 341, + 341, + 341, + 37, + 137, + 342, + 80, + 80, + 121, + 121, + 121, + 253, + 322, + 322, + 322, + 322, + 61, + 172, + 219, + 325, + 325, + 7, + 7, + 7, + 7, + 7, + 190, + 190, + 215, + 360, + 360, + 360, + 68, + 101, + 212, + 212, + 212, + 383, + 33, + 33, + 127, + 127, + 127, + 127, + 127, + 221, + 221, + 221, + 221, + 221, + 221, + 326, + 60, + 128, + 257, + 356, + 54, + 54, + 54, + 54, + 137, + 288, + 370, + 70, + 70, + 70, + 193, + 236, + 236, + 236, + 33, + 130, + 130, + 130, + 213, + 213, + 314, + 56, + 56, + 111, + 208, + 389, + 389, + 389, + 25, + 25, + 25, + 25, + 25, + 198, + 198, + 198, + 276, + 389, + 389, + 14, + 108, + 108, + 239, + 370, + 90, + 107, + 107, + 270, + 270, + 270, + 374, + 94, + 94, + 94, + 119, + 119, + 119, + 208, + 208, + 208, + 208, + 208, + 374, + 374, + 51, + 105, + 105, + 105, + 105, + 241, + 241, + 241, + 241, + 241, + 387, + 97, + 97, + 97, + 97, + 189, + 250, + 250, + 250, + 250, + 318, + 58, + 58, + 191, + 242, + 373, + 373, + 38, + 38, + 38, + 133, + 229, + 323, + 323, + 30, + 161, + 161, + 271, + 271, + 385, + 72, + 72, + 143, + 143, + 143, + 296, + 296, + 296, + 296, + 296, + 335, + 47, + 47, + 47, + 153, + 153, + 153, + 153, + 258, + 361, + 2, + 163, + 211, + 211, + 211, + 211, + 396, + 396, + 67, + 67, + 164, + 209, + 154, + 313, + 227, + 227, + 169, + 169, + 169, + 169, + 330, + 330, + 79, + 169, + 271, + 347, + 347, + 347, + 164, + 285, + 285, + 285, + 285, + 319, + 163, + 300, + 107, + 107, + 107, + 107, + 299, + 299, + 397, + 397, + 397, + 397, + 397, + 397, + 130, + 130, + 35, + 35, + 130, + 288, + 107, + 222, + 108, + 204, + 327, + 336, + 129, + 129, + 129, + 129, + 262, + 323, + 192, + 244, + 371, + 371, + 154, + 283, + 283, + 144, + 144, + 144, + 224, + 334, + 115, + 257, + 257, + 257, + 301, + 175, + 175, + 213, + 84, + 84, + 84, + 171, + 171, + 276, + 276, + 51, + 117, + 117, + 117, + 290, + 181, + 233, + 363, + 363, + 363, + 363, + 34, + 34, + 149, + 295, + 380, + 35, + 35, + 195, + 336, + 48, + 121, + 88, + 190, + 133, + 133, + 133, + 133, + 186, + 367, + 367, + 100, + 100, + 124, + 124, + 363, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 195, + 222, + 222, + 222, + 222, + 384, + 83, + 83, + 298, + 217, + 217, + 217, + 282, + 366, + 282, + 282, + 282, + 38, + 203, + 203, + 128, + 203, + 203, + 379, + 39, + 219, + 243, + 269, + 23, + 23, + 46, + 15, + 278, + 144, + 304, + 144, + 144, + 218, + 375, + 375, + 57, + 271, + 271, + 16, + 42, + 397, + 327, + 25, + 25, + 129, + 244, + 318, + 318, + 318, + 318, + 318, + 34, + 34, + 34, + 196, + 377, + 68, + 68, + 130, + 130, + 130, + 130, + 130, + 130, + 130, + 283, + 364, + 364, + 30, + 201, + 26, + 264, + 264, + 19, + 123, + 123, + 123, + 234, + 234, + 338, + 18, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 19, + 376, + 19, + 284, + 15, + 15, + 245, + 304, + 68, + 199, + 199, + 199, + 199, + 266, + 266, + 266, + 303, + 303, + 303, + 78, + 203, + 203, + 301, + 301, + 153, + 238, + 238, + 353, + 353, + 353, + 353, + 353, + 102, + 102, + 207, + 318, + 318, + 318, + 32, + 32, + 180, + 287, + 287, + 287, + 287, + 307, + 61, + 119, + 240, + 373, + 1, + 1, + 1, + 121, + 121, + 121, + 298, + 369, + 32, + 153, + 191, + 191, + 183, + 183, + 183, + 285, + 285, + 285, + 285, + 285, + 73, + 183, + 228, + 316, + 80, + 80, + 182, + 182, + 276, + 276, + 276, + 276, + 276, + 276, + 344, + 344, + 65, + 65, + 197, + 260, + 351, + 351, + 351, + 351, + 351, + 177, + 177, + 252, + 103, + 189, + 183, + 183, + 183, + 110, + 156, + 107, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 291, + 291, + 116, + 291, + 291, + 54, + 54, + 284, + 194, + 284, + 284, + 34, + 194, + 300, + 392, + 392, + 392, + 96, + 96, + 96, + 161, + 307, + 79, + 92, + 155, + 290, + 290, + 326, + 326, + 63, + 171, + 262, + 262, + 262, + 262, + 306, + 306, + 306, + 97, + 97, + 159, + 230, + 25, + 25, + 269, + 358, + 358, + 32, + 32, + 266, + 80, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 102, + 312, + 312, + 312, + 312, + 312, + 368, + 368, + 368, + 124, + 73, + 124, + 278, + 278, + 278, + 278, + 278, + 367, + 367, + 367, + 367, + 367, + 367, + 367, + 77, + 123, + 225, + 225, + 225, + 225, + 391, + 391, + 47, + 47, + 123, + 123, + 207, + 207, + 387, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 177, + 201, + 344, + 344, + 7, + 102, + 210, + 22, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 77, + 234, + 387, + 38, + 143, + 143, + 143, + 233, + 233, + 363, + 84, + 84, + 128, + 79, + 188, + 188, + 188, + 14, + 14, + 203, + 203, + 310, + 14, + 118, + 222, + 22, + 361, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 196, + 314, + 314, + 314, + 314, + 314, + 314, + 49, + 164, + 164, + 391, + 391, + 54, + 54, + 127, + 127, + 385, + 385, + 385, + 84, + 179, + 346, + 346, + 346, + 82, + 82, + 82, + 82, + 82, + 82, + 165, + 165, + 281, + 363, + 363, + 47, + 47, + 47, + 172, + 172, + 292, + 314, + 314, + 59, + 59, + 289, + 399, + 399, + 97, + 123, + 236, + 321, + 321, + 38, + 168, + 168, + 168, + 168, + 221, + 221, + 221, + 373, + 373, + 373, + 99, + 192, + 224, + 324, + 75, + 298, + 382, + 382, + 98, + 98, + 169, + 169, + 293, + 293, + 293, + 293, + 293, + 308, + 26, + 26, + 26, + 261, + 309, + 98, + 285, + 285, + 285, + 356, + 7, + 7, + 7, + 236, + 314, + 15, + 15, + 282, + 389, + 389, + 93, + 357, + 24, + 0, + 0, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 207, + 393, + 62, + 300, + 384, + 319, + 319, + 319, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 353, + 53, + 296, + 395, + 8, + 8, + 8, + 130, + 130, + 206, + 206, + 206, + 316, + 37, + 109, + 224, + 224, + 224, + 224, + 224, + 343, + 343, + 43, + 43, + 270, + 270, + 334, + 96, + 96, + 169, + 169, + 238, + 238, + 348, + 32, + 195, + 195, + 195, + 257, + 257, + 56, + 354, + 354, + 354, + 354, + 354, + 56, + 126, + 126, + 126, + 126, + 223, + 223, + 223, + 223, + 397, + 61, + 61, + 61, + 155, + 240, + 240, + 397, + 397, + 14, + 186, + 230, + 391, + 391, + 391, + 62, + 130, + 130, + 258, + 306, + 306, + 161, + 207, + 207, + 207, + 367, + 367, + 189, + 232, + 370, + 104, + 104, + 104, + 209, + 209, + 209, + 209, + 303, + 50, + 50, + 178, + 203, + 203, + 203, + 257, + 257, + 257, + 386, + 257, + 257, + 257, + 257, + 257, + 257, + 257, + 257, + 355, + 355, + 66, + 231, + 375, + 375, + 375, + 375, + 375, + 375, + 250, + 250, + 250, + 194, + 250, + 250, + 250, + 392, + 152, + 211, + 211, + 391, + 391, + 291, + 291, + 291, + 55, + 214, + 214, + 214, + 254, + 95, + 95, + 95, + 121, + 121, + 254, + 254, + 254, + 69, + 197, + 265, + 265, + 265, + 265, + 38, + 38, + 38, + 187, + 187, + 187, + 230, + 230, + 230, + 230, + 230, + 7, + 199, + 199, + 229, + 229, + 346, + 346, + 63, + 157, + 157, + 157, + 157, + 157, + 292, + 292, + 394, + 394, + 116, + 116, + 316, + 180, + 36, + 194, + 194, + 65, + 348, + 348, + 348, + 27, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 295, + 211, + 211, + 211, + 211, + 363, + 363, + 211, + 369, + 6, + 76, + 367, + 21, + 21, + 102, + 227, + 227, + 227, + 393, + 393, + 163, + 163, + 256, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 183, + 183, + 183, + 93, + 156, + 192, + 192, + 261, + 261, + 261, + 391, + 114, + 294, + 347, + 130, + 130, + 130, + 130, + 256, + 286, + 298, + 87, + 87, + 87, + 165, + 267, + 267, + 267, + 35, + 35, + 35, + 353, + 353, + 35, + 35, + 35, + 35, + 35, + 157, + 157, + 295, + 2, + 348, + 348, + 348, + 348, + 348, + 348, + 348, + 2, + 2, + 2, + 194, + 194, + 273, + 50, + 50, + 50, + 144, + 245, + 32, + 198, + 198, + 277, + 277, + 277, + 277, + 384, + 84, + 192, + 192, + 192, + 192, + 284, + 48, + 150, + 150, + 150, + 252, + 328, + 84, + 84, + 84, + 84, + 109, + 257, + 336, + 336, + 71, + 71, + 71, + 71, + 175, + 213, + 213, + 213, + 324, + 324, + 324, + 81, + 81, + 127, + 286, + 397, + 0, + 131, + 131, + 131, + 131, + 131, + 259, + 259, + 336, + 7, + 7, + 223, + 14, + 138, + 138, + 138, + 138, + 208, + 208, + 208, + 208, + 208, + 208, + 208, + 351, + 351, + 351, + 351, + 351, + 351, + 351, + 51, + 51, + 152, + 273, + 273, + 374, + 374, + 57, + 57, + 175, + 201, + 350, + 350, + 82, + 82, + 204, + 204, + 9, + 9, + 9, + 9, + 218, + 97, + 223, + 393, + 393, + 23, + 23, + 23, + 23, + 43, + 64, + 47, + 160, + 8, + 178, + 300, + 361, + 361, + 133, + 244, + 304, + 227, + 227, + 227, + 227, + 344, + 296, + 305, + 0, + 246, + 246, + 360, + 360, + 74, + 74, + 231, + 310, + 246, + 368, + 368, + 254, + 310, + 211, + 211, + 289, + 2, + 2, + 173, + 173, + 173, + 173, + 173, + 173, + 258, + 356, + 356, + 58, + 105, + 105, + 246, + 362, + 362, + 362, + 362, + 362, + 81, + 81, + 153, + 153, + 153, + 256, + 256, + 256, + 256, + 256, + 248, + 248, + 359, + 228, + 228, + 242, + 204, + 223, + 386, + 62, + 62, + 62, + 126, + 126, + 126, + 126, + 126, + 126, + 322, + 322, + 288, + 288, + 322, + 187, + 187, + 187, + 187, + 346, + 128, + 243, + 243, + 243, + 243, + 9, + 182, + 161, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 384, + 11, + 11, + 11, + 11, + 11, + 170, + 277, + 303, + 303, + 303, + 303, + 303, + 58, + 130, + 130, + 294, + 0, + 0, + 166, + 287, + 287, + 287, + 386, + 16, + 16, + 109, + 109, + 302, + 20, + 20, + 20, + 20, + 147, + 208, + 86, + 86, + 137, + 137, + 137, + 137, + 238, + 395, + 22, + 141, + 141, + 375, + 375, + 263, + 375, + 375, + 41, + 185, + 376, + 57, + 57, + 57, + 57, + 57, + 57, + 180, + 216, + 216, + 373, + 44, + 44, + 175, + 175, + 175, + 274, + 274, + 341, + 341, + 341, + 341, + 341, + 47, + 47, + 47, + 47, + 47, + 106, + 106, + 106, + 106, + 245, + 245, + 333, + 14, + 132, + 279, + 341, + 341, + 0, + 125, + 125, + 348, + 348, + 72, + 72, + 125, + 125, + 325, + 27, + 193, + 193, + 252, + 252, + 252, + 384, + 384, + 76, + 156, + 253, + 373, + 373, + 14, + 103, + 246, + 163, + 163, + 163, + 252, + 252, + 252, + 252, + 370, + 370, + 370, + 370, + 28, + 141, + 206, + 206, + 206, + 206, + 206, + 206, + 368, + 76, + 76, + 76, + 76, + 149, + 149, + 149, + 149, + 260, + 260, + 260, + 330, + 59, + 192, + 292, + 375, + 10, + 10, + 149, + 149, + 149, + 149, + 227, + 227, + 358, + 358, + 8, + 8, + 8, + 138, + 138, + 138, + 138, + 266, + 266, + 400, + 400, + 7, + 7, + 7, + 157, + 297, + 297, + 0, + 0, + 159, + 216, + 81, + 156, + 201, + 201, + 352, + 140, + 140, + 260, + 353, + 353, + 9, + 9, + 108, + 215, + 161, + 161, + 36, + 136, + 136, + 308, + 12, + 12, + 12, + 200, + 390, + 390, + 155, + 155, + 155, + 224, + 389, + 131, + 226, + 335, + 261, + 207, + 215, + 6, + 154, + 352, + 38, + 38, + 359, + 359, + 359, + 359, + 359, + 98, + 98, + 98, + 188, + 289, + 139, + 82, + 382, + 382, + 82, + 82, + 139, + 139, + 289, + 289, + 381, + 381, + 381, + 16, + 199, + 199, + 247, + 247, + 397, + 397, + 52, + 52, + 52, + 174, + 174, + 174, + 253, + 352, + 352, + 352, + 352, + 75, + 130, + 213, + 213, + 213, + 77, + 77, + 156, + 228, + 228, + 228, + 33, + 124, + 124, + 244, + 244, + 338, + 14, + 14, + 145, + 273, + 49, + 135, + 135, + 395, + 83, + 141, + 380, + 380, + 380, + 125, + 125, + 125, + 125, + 131, + 86, + 86, + 123, + 123, + 145, + 125, + 125, + 82, + 125, + 125, + 142, + 142, + 109, + 134, + 180, + 180, + 180, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 381, + 42, + 271, + 271, + 49, + 49, + 163, + 279, + 168, + 380, + 22, + 168, + 168, + 168, + 168, + 233, + 233, + 343, + 135, + 135, + 246, + 234, + 234, + 165, + 232, + 15, + 15, + 250, + 51, + 115, + 115, + 115, + 115, + 203, + 203, + 318, + 318, + 318, + 318, + 32, + 165, + 165, + 247, + 247, + 22, + 141, + 276, + 91, + 286, + 262, + 357, + 357, + 272, + 272, + 235, + 235, + 235, + 79, + 103, + 235, + 235, + 144, + 46, + 46, + 46, + 46, + 144, + 144, + 234, + 180, + 180, + 180, + 180, + 180, + 204, + 68, + 114, + 114, + 277, + 65, + 65, + 144, + 144, + 226, + 226, + 43, + 43, + 43, + 121, + 121, + 333, + 333, + 333, + 333, + 21, + 196, + 196, + 271, + 108, + 108, + 283, + 283, + 114, + 368, + 368, + 99, + 99, + 114, + 208, + 208, + 354, + 102, + 323, + 162, + 162, + 66, + 66, + 66, + 162, + 162, + 162, + 162, + 258, + 360, + 49, + 49, + 49, + 49, + 49, + 49, + 49, + 187, + 187, + 218, + 341, + 341, + 30, + 145, + 145, + 250, + 390, + 151, + 151, + 400, + 186, + 312, + 312, + 312, + 312, + 7, + 200, + 200, + 317, + 317, + 317, + 317, + 317, + 2, + 154, + 242, + 242, + 242, + 320, + 109, + 375, + 375, + 200, + 200, + 200, + 200, + 203, + 203, + 203, + 348, + 146, + 242, + 303, + 65, + 65, + 65, + 65, + 65, + 65, + 182, + 257, + 358, + 358, + 358, + 38, + 38, + 312, + 364, + 102, + 102, + 364, + 376, + 376, + 376, + 343, + 343, + 343, + 343, + 318, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 337, + 274, + 274, + 339, + 51, + 262, + 61, + 61, + 61, + 223, + 86, + 84, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 58, + 58, + 58, + 58, + 191, + 241, + 241, + 241, + 79, + 79, + 246, + 246, + 365, + 365, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 88, + 161, + 5, + 5, + 5, + 5, + 5, + 5, + 247, + 192, + 247, + 247, + 350, + 350, + 350, + 36, + 331, + 69, + 69, + 69, + 197, + 197, + 197, + 197, + 221, + 221, + 221, + 221, + 314, + 314, + 73, + 163, + 163, + 257, + 257, + 380, + 380, + 380, + 380, + 380, + 380, + 380, + 380, + 90, + 151, + 151, + 278, + 278, + 385, + 15, + 125, + 125, + 204, + 341, + 341, + 341, + 3, + 125, + 239, + 239, + 60, + 60, + 291, + 81, + 122, + 122, + 122, + 122, + 122, + 122, + 209, + 365, + 15, + 134, + 213, + 213, + 96, + 174, + 174, + 174, + 174, + 253, + 253, + 253, + 253, + 369, + 369, + 369, + 147, + 147, + 290, + 163, + 262, + 244, + 244, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 213, + 395, + 395, + 65, + 17, + 17, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 150, + 150, + 379, + 379, + 379, + 58, + 58, + 140, + 62, + 289, + 62, + 62, + 373, + 62, + 111, + 12, + 154, + 302, + 302, + 62, + 23, + 1, + 1, + 47, + 90, + 233, + 233, + 233, + 308, + 90, + 90, + 90, + 90, + 90, + 218, + 218, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 393, + 28, + 28, + 28, + 28, + 191, + 191, + 191, + 191, + 227, + 227, + 352, + 89, + 89, + 154, + 350, + 350, + 350, + 350, + 350, + 227, + 227, + 350, + 350, + 55, + 55, + 55, + 195, + 195, + 195, + 239, + 320, + 320, + 71, + 170, + 170, + 170, + 170, + 315, + 315, + 315, + 315, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 200, + 200, + 200, + 264, + 311, + 81, + 180, + 266, + 321, + 321, + 321, + 321, + 321, + 138, + 15, + 15, + 138, + 226, + 226, + 302, + 302, + 302, + 302, + 99, + 99, + 99, + 104, + 270, + 270, + 373, + 373, + 84, + 111, + 111, + 111, + 111, + 253, + 399, + 399, + 399, + 399, + 80, + 125, + 125, + 125, + 227, + 227, + 327, + 327, + 86, + 86, + 155, + 155, + 155, + 155, + 155, + 155, + 256, + 330, + 53, + 53, + 53, + 53, + 53, + 103, + 295, + 342, + 41, + 41, + 194, + 282, + 353, + 42, + 199, + 199, + 199, + 259, + 259, + 312, + 312, + 312, + 44, + 117, + 247, + 247, + 247, + 247, + 247, + 384, + 384, + 38, + 38, + 38, + 38, + 38, + 154, + 154, + 154, + 274, + 350, + 23, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py new file mode 100644 index 0000000000..5c3ecb5cab --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py @@ -0,0 +1,6 @@ +from roundrobin import build + + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 4 flows.""" + build(4).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.data b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.expect b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.expect new file mode 100644 index 0000000000..cfb56e0fd6 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 121, + 203, + 203, + 275, + 330, + 243, + 329, + 329, + 329, + 310, + 310, + 291, + 256, + 268, + 354, + 354, + 380, + 130, + 307, + 80, + 262, + 262, + 262, + 363, + 40, + 40, + 106, + 106, + 106, + 106, + 106, + 106, + 242, + 242, + 242, + 388, + 299, + 299, + 325, + 325, + 325, + 243, + 243, + 243, + 176, + 243, + 243, + 321, + 61, + 287, + 125, + 125, + 125, + 125, + 306, + 306, + 306, + 95, + 95, + 296, + 145, + 145, + 205, + 205, + 205, + 309, + 309, + 309, + 309, + 83, + 171, + 341, + 341, + 341, + 79, + 125, + 212, + 212, + 133, + 215, + 215, + 215, + 215, + 215, + 318, + 238, + 221, + 221, + 221, + 216, + 306, + 80, + 80, + 221, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 168, + 231, + 11, + 231, + 231, + 231, + 241, + 98, + 98, + 181, + 181, + 312, + 312, + 312, + 312, + 312, + 312, + 312, + 312, + 366, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 82, + 82, + 82, + 82, + 167, + 281, + 330, + 330, + 330, + 330, + 3, + 3, + 216, + 216, + 216, + 216, + 300, + 372, + 69, + 69, + 150, + 238, + 254, + 378, + 378, + 36, + 82, + 162, + 314, + 323, + 323, + 60, + 60, + 90, + 177, + 177, + 177, + 177, + 177, + 293, + 391, + 21, + 21, + 129, + 129, + 129, + 129, + 129, + 183, + 183, + 253, + 253, + 66, + 332, + 332, + 332, + 332, + 66, + 66, + 66, + 66, + 66, + 98, + 219, + 219, + 219, + 251, + 343, + 21, + 21, + 90, + 90, + 219, + 219, + 267, + 267, + 267, + 267, + 267, + 356, + 356, + 356, + 356, + 356, + 356, + 0, + 0, + 0, + 0, + 0, + 0, + 119, + 119, + 119, + 119, + 119, + 203, + 203, + 250, + 354, + 354, + 76, + 76, + 151, + 209, + 209, + 305, + 305, + 305, + 346, + 346, + 11, + 89, + 89, + 89, + 217, + 217, + 217, + 217, + 217, + 318, + 374, + 18, + 18, + 18, + 18, + 18, + 113, + 113, + 113, + 113, + 220, + 290, + 109, + 109, + 109, + 170, + 276, + 388, + 388, + 388, + 388, + 388, + 388, + 388, + 120, + 120, + 120, + 208, + 208, + 308, + 308, + 308, + 308, + 308, + 378, + 91, + 63, + 63, + 63, + 91, + 91, + 161, + 306, + 332, + 332, + 81, + 183, + 246, + 246, + 246, + 400, + 400, + 400, + 6, + 95, + 191, + 310, + 359, + 86, + 86, + 86, + 162, + 297, + 351, + 351, + 120, + 223, + 310, + 400, + 238, + 157, + 238, + 238, + 303, + 332, + 332, + 45, + 222, + 222, + 255, + 255, + 255, + 255, + 255, + 255, + 380, + 220, + 220, + 300, + 300, + 323, + 323, + 54, + 103, + 103, + 103, + 180, + 256, + 256, + 256, + 256, + 397, + 41, + 121, + 121, + 182, + 278, + 154, + 218, + 218, + 269, + 269, + 269, + 269, + 269, + 7, + 87, + 87, + 165, + 301, + 301, + 380, + 144, + 195, + 195, + 312, + 12, + 12, + 12, + 152, + 152, + 152, + 152, + 152, + 152, + 227, + 227, + 227, + 227, + 227, + 248, + 367, + 8, + 8, + 128, + 195, + 252, + 337, + 40, + 149, + 198, + 296, + 296, + 296, + 296, + 41, + 41, + 41, + 41, + 41, + 41, + 41, + 41, + 201, + 255, + 36, + 286, + 51, + 51, + 51, + 51, + 154, + 154, + 310, + 310, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 244, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 30, + 30, + 30, + 30, + 164, + 164, + 256, + 362, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 382, + 14, + 123, + 123, + 142, + 122, + 82, + 181, + 181, + 321, + 92, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 237, + 348, + 43, + 43, + 43, + 206, + 387, + 80, + 80, + 80, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 207, + 207, + 207, + 79, + 338, + 79, + 79, + 143, + 143, + 143, + 217, + 366, + 13, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 3, + 105, + 105, + 105, + 105, + 353, + 353, + 353, + 353, + 51, + 51, + 51, + 241, + 241, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 2, + 135, + 135, + 209, + 255, + 333, + 333, + 240, + 240, + 74, + 74, + 347, + 256, + 256, + 256, + 347, + 74, + 74, + 74, + 81, + 208, + 208, + 208, + 260, + 360, + 42, + 42, + 42, + 42, + 109, + 109, + 223, + 361, + 144, + 189, + 189, + 189, + 348, + 348, + 9, + 85, + 213, + 213, + 213, + 213, + 339, + 339, + 339, + 59, + 107, + 107, + 107, + 107, + 203, + 203, + 282, + 360, + 40, + 40, + 40, + 40, + 175, + 316, + 363, + 363, + 30, + 223, + 320, + 320, + 320, + 382, + 382, + 382, + 71, + 71, + 71, + 71, + 149, + 149, + 235, + 235, + 249, + 398, + 26, + 26, + 188, + 188, + 309, + 309, + 382, + 382, + 64, + 101, + 101, + 194, + 257, + 257, + 393, + 393, + 393, + 24, + 24, + 132, + 235, + 299, + 325, + 92, + 168, + 168, + 256, + 256, + 154, + 154, + 154, + 184, + 254, + 254, + 105, + 239, + 305, + 112, + 112, + 112, + 206, + 206, + 313, + 379, + 379, + 379, + 379, + 34, + 87, + 87, + 181, + 260, + 260, + 260, + 260, + 16, + 16, + 16, + 86, + 201, + 201, + 201, + 320, + 320, + 320, + 20, + 20, + 20, + 95, + 222, + 222, + 222, + 222, + 316, + 316, + 55, + 141, + 141, + 215, + 215, + 312, + 76, + 76, + 108, + 108, + 108, + 313, + 313, + 33, + 98, + 98, + 98, + 13, + 13, + 304, + 13, + 331, + 142, + 142, + 301, + 287, + 121, + 346, + 7, + 121, + 239, + 239, + 239, + 239, + 239, + 272, + 17, + 17, + 88, + 88, + 226, + 226, + 52, + 128, + 57, + 57, + 258, + 320, + 320, + 361, + 361, + 320, + 320, + 94, + 123, + 123, + 123, + 213, + 77, + 77, + 159, + 292, + 292, + 292, + 292, + 292, + 206, + 206, + 292, + 386, + 386, + 147, + 238, + 238, + 187, + 364, + 75, + 87, + 179, + 179, + 40, + 237, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 190, + 190, + 190, + 190, + 190, + 295, + 394, + 394, + 16, + 166, + 166, + 392, + 392, + 392, + 392, + 75, + 75, + 75, + 150, + 150, + 200, + 394, + 394, + 35, + 175, + 343, + 234, + 234, + 321, + 321, + 321, + 321, + 321, + 321, + 113, + 219, + 219, + 219, + 306, + 306, + 306, + 53, + 192, + 144, + 144, + 192, + 255, + 362, + 362, + 233, + 161, + 161, + 323, + 323, + 72, + 190, + 190, + 331, + 266, + 266, + 331, + 37, + 92, + 197, + 309, + 0, + 0, + 0, + 113, + 113, + 222, + 222, + 222, + 222, + 222, + 222, + 222, + 256, + 256, + 256, + 256, + 256, + 354, + 45, + 45, + 45, + 86, + 86, + 173, + 242, + 242, + 50, + 50, + 50, + 50, + 154, + 181, + 274, + 274, + 51, + 321, + 321, + 51, + 132, + 132, + 132, + 132, + 167, + 269, + 324, + 324, + 324, + 324, + 324, + 77, + 150, + 150, + 150, + 150, + 150, + 150, + 162, + 308, + 365, + 365, + 21, + 160, + 160, + 238, + 299, + 299, + 362, + 362, + 362, + 0, + 0, + 0, + 127, + 127, + 220, + 220, + 220, + 220, + 220, + 267, + 380, + 380, + 46, + 142, + 174, + 299, + 299, + 370, + 370, + 370, + 86, + 212, + 212, + 287, + 287, + 397, + 397, + 397, + 99, + 99, + 99, + 319, + 386, + 150, + 222, + 297, + 23, + 23, + 23, + 128, + 128, + 128, + 128, + 128, + 237, + 293, + 148, + 148, + 186, + 281, + 281, + 40, + 170, + 170, + 313, + 313, + 313, + 313, + 313, + 313, + 68, + 68, + 68, + 68, + 324, + 68, + 97, + 165, + 165, + 312, + 312, + 323, + 29, + 129, + 179, + 293, + 293, + 293, + 293, + 46, + 46, + 154, + 154, + 154, + 154, + 185, + 264, + 32, + 132, + 132, + 132, + 132, + 132, + 132, + 186, + 186, + 320, + 320, + 320, + 320, + 320, + 365, + 365, + 14, + 101, + 167, + 167, + 272, + 272, + 272, + 272, + 272, + 272, + 272, + 272, + 338, + 69, + 69, + 117, + 117, + 117, + 117, + 188, + 261, + 358, + 358, + 70, + 155, + 188, + 275, + 333, + 333, + 72, + 72, + 72, + 109, + 109, + 218, + 297, + 23, + 91, + 91, + 91, + 91, + 184, + 299, + 299, + 299, + 339, + 339, + 79, + 87, + 87, + 186, + 186, + 255, + 67, + 132, + 170, + 46, + 46, + 46, + 46, + 46, + 46, + 160, + 226, + 226, + 260, + 332, + 332, + 79, + 158, + 158, + 178, + 304, + 304, + 330, + 11, + 85, + 85, + 199, + 280, + 280, + 63, + 63, + 92, + 92, + 92, + 231, + 155, + 155, + 125, + 155, + 122, + 122, + 122, + 97, + 97, + 150, + 150, + 194, + 397, + 397, + 63, + 150, + 150, + 150, + 150, + 167, + 304, + 304, + 304, + 339, + 80, + 128, + 128, + 214, + 214, + 214, + 298, + 298, + 327, + 71, + 195, + 195, + 295, + 74, + 74, + 74, + 118, + 118, + 173, + 173, + 285, + 57, + 57, + 57, + 398, + 398, + 398, + 398, + 57, + 57, + 57, + 57, + 110, + 264, + 264, + 264, + 75, + 318, + 318, + 351, + 62, + 62, + 310, + 351, + 351, + 351, + 32, + 32, + 32, + 202, + 202, + 274, + 323, + 43, + 83, + 83, + 83, + 186, + 186, + 186, + 272, + 272, + 272, + 272, + 339, + 3, + 3, + 158, + 158, + 288, + 288, + 288, + 288, + 349, + 26, + 26, + 26, + 120, + 120, + 314, + 314, + 55, + 55, + 55, + 58, + 58, + 58, + 235, + 235, + 71, + 171, + 171, + 171, + 171, + 171, + 171, + 245, + 245, + 245, + 372, + 372, + 372, + 65, + 236, + 304, + 304, + 304, + 353, + 353, + 353, + 353, + 9, + 136, + 192, + 192, + 350, + 350, + 80, + 119, + 164, + 74, + 134, + 134, + 134, + 134, + 134, + 178, + 266, + 266, + 266, + 266, + 49, + 49, + 49, + 357, + 357, + 49, + 124, + 124, + 124, + 124, + 239, + 291, + 291, + 291, + 291, + 291, + 34, + 34, + 34, + 34, + 34, + 148, + 318, + 318, + 318, + 318, + 26, + 131, + 131, + 300, + 300, + 300, + 300, + 49, + 129, + 129, + 129, + 208, + 208, + 208, + 43, + 145, + 22, + 22, + 148, + 148, + 325, + 8, + 8, + 160, + 160, + 160, + 160, + 57, + 142, + 28, + 102, + 102, + 22, + 22, + 216, + 22, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 48, + 48, + 246, + 246, + 246, + 393, + 393, + 15, + 15, + 237, + 334, + 91, + 245, + 245, + 99, + 295, + 295, + 295, + 295, + 295, + 295, + 384, + 384, + 384, + 275, + 324, + 122, + 187, + 299, + 299, + 390, + 333, + 103, + 198, + 198, + 254, + 66, + 102, + 102, + 164, + 164, + 164, + 164, + 298, + 398, + 398, + 10, + 10, + 10, + 150, + 150, + 237, + 245, + 325, + 325, + 325, + 325, + 325, + 325, + 74, + 114, + 114, + 190, + 267, + 344, + 344, + 20, + 20, + 143, + 180, + 180, + 317, + 317, + 317, + 317, + 367, + 367, + 367, + 14, + 153, + 213, + 320, + 320, + 320, + 320, + 320, + 382, + 382, + 382, + 382, + 51, + 51, + 51, + 92, + 92, + 200, + 287, + 287, + 287, + 395, + 395, + 395, + 23, + 23, + 155, + 231, + 231, + 241, + 241, + 241, + 241, + 378, + 378, + 378, + 378, + 378, + 5, + 124, + 124, + 194, + 271, + 337, + 74, + 74, + 74, + 155, + 277, + 394, + 394, + 15, + 149, + 203, + 246, + 246, + 246, + 397, + 83, + 278, + 278, + 278, + 278, + 374, + 23, + 23, + 23, + 23, + 88, + 88, + 309, + 309, + 330, + 63, + 291, + 291, + 291, + 291, + 367, + 63, + 63, + 311, + 311, + 311, + 350, + 350, + 350, + 350, + 52, + 52, + 52, + 314, + 314, + 378, + 4, + 279, + 279, + 279, + 336, + 336, + 37, + 37, + 102, + 102, + 102, + 233, + 233, + 246, + 347, + 60, + 156, + 156, + 156, + 318, + 334, + 334, + 334, + 107, + 286, + 286, + 286, + 286, + 24, + 185, + 185, + 361, + 211, + 64, + 64, + 160, + 174, + 174, + 174, + 174, + 377, + 377, + 377, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 82, + 82, + 219, + 219, + 219, + 313, + 15, + 98, + 166, + 276, + 276, + 276, + 333, + 333, + 333, + 23, + 23, + 23, + 23, + 132, + 174, + 174, + 174, + 174, + 15, + 15, + 100, + 100, + 100, + 191, + 191, + 391, + 1, + 151, + 6, + 226, + 284, + 6, + 6, + 62, + 233, + 233, + 53, + 278, + 181, + 278, + 278, + 133, + 133, + 152, + 384, + 384, + 384, + 317, + 384, + 384, + 384, + 384, + 3, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 178, + 346, + 4, + 4, + 123, + 23, + 138, + 138, + 138, + 207, + 207, + 294, + 294, + 375, + 375, + 19, + 370, + 370, + 370, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 203, + 203, + 325, + 325, + 325, + 325, + 135, + 385, + 130, + 130, + 365, + 67, + 67, + 67, + 89, + 290, + 290, + 290, + 375, + 37, + 115, + 115, + 115, + 319, + 216, + 319, + 325, + 325, + 325, + 325, + 325, + 325, + 325, + 325, + 325, + 56, + 56, + 56, + 56, + 111, + 111, + 217, + 397, + 63, + 123, + 123, + 380, + 380, + 14, + 14, + 14, + 101, + 101, + 101, + 101, + 101, + 228, + 302, + 376, + 376, + 5, + 93, + 93, + 93, + 222, + 382, + 52, + 52, + 86, + 345, + 345, + 69, + 105, + 105, + 309, + 309, + 350, + 30, + 131, + 233, + 233, + 233, + 233, + 365, + 27, + 81, + 81, + 81, + 81, + 165, + 330, + 330, + 330, + 71, + 141, + 141, + 231, + 231, + 293, + 293, + 293, + 293, + 293, + 293, + 360, + 360, + 360, + 360, + 360, + 9, + 86, + 174, + 301, + 301, + 368, + 368, + 368, + 368, + 26, + 26, + 26, + 26, + 94, + 208, + 260, + 398, + 97, + 224, + 304, + 360, + 360, + 360, + 360, + 360, + 36, + 36, + 208, + 292, + 367, + 367, + 367, + 98, + 98, + 98, + 296, + 296, + 352, + 0, + 253, + 341, + 341, + 276, + 335, + 65, + 65, + 65, + 65, + 65, + 65, + 341, + 99, + 341, + 341, + 30, + 141, + 336, + 47, + 47, + 236, + 394, + 394, + 311, + 394, + 394, + 367, + 371, + 371, + 371, + 391, + 360, + 362, + 338, + 338, + 338, + 338, + 375, + 277, + 112, + 277, + 375, + 230, + 230, + 230, + 49, + 49, + 49, + 233, + 34, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 61, + 61, + 263, + 263, + 400, + 400, + 73, + 111, + 111, + 111, + 198, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 325, + 325, + 155, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 297, + 297, + 297, + 297, + 297, + 322, + 322, + 322, + 18, + 18, + 18, + 106, + 196, + 196, + 196, + 196, + 196, + 196, + 382, + 28, + 28, + 152, + 152, + 231, + 367, + 36, + 106, + 117, + 117, + 106, + 80, + 290, + 290, + 290, + 80, + 80, + 80, + 80, + 80, + 80, + 119, + 235, + 308, + 350, + 350, + 31, + 137, + 137, + 137, + 197, + 197, + 197, + 197, + 197, + 117, + 389, + 389, + 41, + 41, + 117, + 117, + 263, + 263, + 394, + 394, + 124, + 252, + 252, + 376, + 26, + 26, + 26, + 108, + 108, + 108, + 302, + 12, + 384, + 12, + 12, + 155, + 155, + 186, + 186, + 186, + 186, + 309, + 309, + 381, + 12, + 149, + 182, + 260, + 260, + 260, + 260, + 260, + 358, + 118, + 118, + 202, + 290, + 387, + 387, + 123, + 236, + 236, + 276, + 276, + 388, + 69, + 69, + 69, + 125, + 207, + 207, + 207, + 246, + 386, + 76, + 76, + 93, + 93, + 93, + 93, + 177, + 296, + 296, + 343, + 80, + 119, + 231, + 397, + 397, + 397, + 397, + 23, + 101, + 101, + 101, + 101, + 226, + 226, + 226, + 226, + 226, + 336, + 336, + 17, + 187, + 299, + 299, + 299, + 355, + 355, + 355, + 105, + 105, + 218, + 218, + 360, + 360, + 360, + 360, + 10, + 92, + 92, + 92, + 211, + 366, + 366, + 10, + 10, + 10, + 10, + 96, + 96, + 96, + 96, + 96, + 96, + 210, + 271, + 271, + 379, + 379, + 379, + 61, + 118, + 118, + 118, + 167, + 342, + 342, + 342, + 53, + 53, + 53, + 125, + 230, + 230, + 230, + 394, + 25, + 25, + 148, + 222, + 222, + 222, + 319, + 353, + 353, + 353, + 41, + 41, + 138, + 331, + 331, + 331, + 68, + 68, + 68, + 146, + 365, + 365, + 365, + 365, + 57, + 130, + 335, + 115, + 112, + 159, + 104, + 272, + 272, + 272, + 208, + 208, + 208, + 208, + 272, + 272, + 379, + 29, + 104, + 104, + 104, + 220, + 372, + 86, + 355, + 123, + 123, + 391, + 391, + 391, + 391, + 158, + 158, + 382, + 105, + 105, + 97, + 97, + 262, + 218, + 366, + 218, + 16, + 16, + 383, + 16, + 113, + 295, + 340, + 340, + 67, + 67, + 67, + 159, + 193, + 246, + 246, + 246, + 246, + 373, + 373, + 373, + 373, + 373, + 16, + 81, + 189, + 260, + 51, + 124, + 124, + 124, + 198, + 250, + 152, + 253, + 253, + 88, + 88, + 88, + 131, + 198, + 198, + 198, + 25, + 250, + 25, + 117, + 117, + 117, + 187, + 187, + 386, + 32, + 186, + 270, + 344, + 344, + 73, + 73, + 73, + 73, + 187, + 249, + 249, + 249, + 332, + 332, + 332, + 332, + 332, + 69, + 103, + 103, + 103, + 103, + 233, + 300, + 386, + 386, + 386, + 386, + 38, + 219, + 253, + 253, + 64, + 214, + 280, + 280, + 66, + 190, + 278, + 106, + 71, + 71, + 150, + 172, + 296, + 296, + 296, + 398, + 398, + 398, + 398, + 398, + 23, + 125, + 125, + 205, + 205, + 389, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 139, + 139, + 218, + 218, + 241, + 241, + 68, + 68, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 68, + 68, + 68, + 68, + 96, + 225, + 295, + 295, + 295, + 295, + 381, + 381, + 11, + 160, + 166, + 298, + 298, + 391, + 391, + 391, + 38, + 38, + 38, + 135, + 168, + 168, + 243, + 354, + 354, + 354, + 354, + 16, + 16, + 147, + 304, + 304, + 325, + 325, + 325, + 72, + 234, + 234, + 250, + 383, + 383, + 55, + 55, + 266, + 266, + 377, + 23, + 261, + 353, + 59, + 59, + 341, + 341, + 341, + 28, + 28, + 82, + 313, + 313, + 338, + 53, + 81, + 81, + 81, + 330, + 330, + 194, + 330, + 10, + 10, + 91, + 91, + 91, + 172, + 380, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 380, + 26, + 139, + 139, + 179, + 304, + 386, + 33, + 161, + 161, + 242, + 242, + 342, + 342, + 342, + 24, + 24, + 24, + 24, + 24, + 24, + 114, + 165, + 165, + 165, + 165, + 165, + 264, + 372, + 372, + 76, + 76, + 124, + 124, + 124, + 124, + 124, + 207, + 207, + 251, + 251, + 367, + 367, + 26, + 239, + 239, + 239, + 308, + 308, + 308, + 358, + 51, + 246, + 246, + 246, + 246, + 246, + 344, + 23, + 259, + 259, + 91, + 259, + 344, + 344, + 62, + 204, + 204, + 204, + 263, + 339, + 339, + 32, + 251, + 359, + 359, + 258, + 340, + 365, + 213, + 213, + 213, + 73, + 73, + 16, + 85, + 68, + 138, + 49, + 62, + 62, + 324, + 62, + 62, + 392, + 316, + 205, + 153, + 153, + 205, + 316, + 118, + 195, + 288, + 288, + 22, + 145, + 145, + 181, + 315, + 37, + 37, + 212, + 212, + 254, + 394, + 39, + 39, + 219, + 377, + 265, + 377, + 377, + 67, + 100, + 217, + 217, + 319, + 319, + 319, + 319, + 319, + 319, + 321, + 321, + 5, + 5, + 223, + 286, + 286, + 343, + 52, + 52, + 229, + 287, + 287, + 287, + 287, + 335, + 335, + 0, + 0, + 0, + 176, + 368, + 368, + 73, + 73, + 204, + 400, + 400, + 400, + 400, + 400, + 400, + 28, + 28, + 207, + 348, + 78, + 16, + 9, + 9, + 9, + 67, + 67, + 38, + 249, + 38, + 231, + 34, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 241, + 241, + 25, + 25, + 129, + 218, + 290, + 350, + 350, + 350, + 350, + 350, + 350, + 350, + 350, + 3, + 3, + 84, + 200, + 200, + 302, + 302, + 302, + 338, + 54, + 90, + 90, + 189, + 189, + 316, + 316, + 316, + 391, + 73, + 118, + 118, + 118, + 118, + 185, + 261, + 261, + 397, + 397, + 85, + 225, + 308, + 365, + 365, + 365, + 365, + 102, + 231, + 231, + 231, + 283, + 377, + 377, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 121, + 121, + 121, + 186, + 186, + 249, + 393, + 393, + 115, + 115, + 189, + 343, + 145, + 145, + 145, + 234, + 234, + 400, + 103, + 234, + 234, + 394, + 306, + 306, + 306, + 394, + 394, + 56, + 115, + 115, + 188, + 188, + 301, + 336, + 336, + 64, + 64, + 64, + 129, + 234, + 296, + 327, + 327, + 27, + 94, + 218, + 260, + 260, + 385, + 385, + 112, + 211, + 241, + 119, + 229, + 229, + 229, + 12, + 114, + 209, + 209, + 209, + 274, + 274, + 274, + 274, + 393, + 18, + 18, + 90, + 228, + 228, + 314, + 314, + 380, + 12, + 12, + 140, + 179, + 179, + 179, + 386, + 386, + 58, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 183, + 254, + 254, + 340, + 340, + 340, + 9, + 9, + 9, + 124, + 124, + 124, + 124, + 212, + 212, + 277, + 388, + 388, + 388, + 388, + 388, + 388, + 6, + 145, + 145, + 145, + 145, + 216, + 259, + 353, + 353, + 353, + 137, + 167, + 167, + 167, + 248, + 248, + 367, + 367, + 20, + 20, + 146, + 146, + 185, + 185, + 309, + 330, + 12, + 12, + 133, + 226, + 226, + 288, + 288, + 288, + 288, + 324, + 77, + 153, + 166, + 299, + 299, + 325, + 325, + 325, + 141, + 141, + 193, + 244, + 244, + 324, + 16, + 16, + 104, + 104, + 231, + 115, + 196, + 196, + 31, + 31, + 143, + 143, + 143, + 203, + 203, + 245, + 245, + 245, + 375, + 17, + 17, + 100, + 207, + 207, + 207, + 273, + 273, + 333, + 67, + 137, + 137, + 137, + 137, + 180, + 180, + 241, + 241, + 333, + 124, + 203, + 267, + 267, + 348, + 348, + 348, + 141, + 141, + 176, + 349, + 150, + 150, + 162, + 162, + 347, + 30, + 146, + 195, + 195, + 279, + 279, + 279, + 19, + 149, + 149, + 149, + 240, + 240, + 240, + 240, + 240, + 333, + 333, + 38, + 38, + 92, + 92, + 162, + 349, + 80, + 80, + 80, + 112, + 112, + 112, + 198, + 198, + 198, + 198, + 198, + 391, + 27, + 27, + 147, + 215, + 215, + 349, + 94, + 94, + 94, + 94, + 216, + 216, + 151, + 165, + 165, + 165, + 165, + 52, + 52, + 52, + 127, + 127, + 223, + 223, + 223, + 223, + 257, + 332, + 332, + 65, + 99, + 214, + 214, + 258, + 258, + 258, + 332, + 332, + 332, + 61, + 61, + 61, + 123, + 123, + 203, + 262, + 262, + 262, + 361, + 44, + 135, + 135, + 224, + 299, + 357, + 357, + 357, + 357, + 27, + 27, + 97, + 216, + 268, + 268, + 268, + 399, + 24, + 24, + 154, + 179, + 179, + 297, + 321, + 153, + 189, + 271, + 324, + 324, + 324, + 70, + 70, + 70, + 89, + 89, + 89, + 192, + 268, + 134, + 134, + 134, + 233, + 233, + 244, + 244, + 244, + 244, + 244, + 374, + 70, + 70, + 70, + 110, + 192, + 270, + 270, + 388, + 113, + 161, + 269, + 107, + 231, + 286, + 286, + 385, + 126, + 126, + 288, + 122, + 122, + 122, + 224, + 249, + 97, + 286, + 396, + 396, + 247, + 247, + 247, + 206, + 206, + 206, + 352, + 352, + 206, + 313, + 355, + 0, + 83, + 171, + 231, + 266, + 266, + 340, + 54, + 54, + 267, + 267, + 267, + 267, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 273, + 273, + 273, + 395, + 128, + 198, + 198, + 198, + 198, + 247, + 361, + 49, + 144, + 144, + 192, + 253, + 378, + 13, + 121, + 121, + 164, + 264, + 369, + 38, + 169, + 252, + 361, + 219, + 219, + 219, + 219, + 302, + 400, + 400, + 136, + 175, + 175, + 278, + 326, + 326, + 326, + 129, + 238, + 338, + 145, + 183, + 307, + 307, + 307, + 307, + 307, + 307, + 342, + 342, + 28, + 28, + 28, + 93, + 230, + 230, + 298, + 298, + 325, + 75, + 75, + 133, + 133, + 133, + 193, + 247, + 394, + 29, + 29, + 130, + 130, + 130, + 170, + 245, + 331, + 78, + 100, + 185, + 272, + 386, + 386, + 386, + 386, + 37, + 37, + 85, + 247, + 247, + 388, + 388, + 39, + 39, + 156, + 269, + 112, + 305, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 110, + 110, + 110, + 217, + 289, + 289, + 379, + 134, + 182, + 355, + 143, + 224, + 224, + 338, + 69, + 69, + 164, + 202, + 299, + 299, + 299, + 377, + 377, + 4, + 4, + 91, + 91, + 236, + 236, + 236, + 316, + 17, + 392, + 392, + 17, + 17, + 17, + 17, + 17, + 91, + 236, + 236, + 236, + 304, + 384, + 76, + 76, + 76, + 76, + 143, + 143, + 143, + 185, + 185, + 185, + 274, + 274, + 274, + 274, + 384, + 384, + 8, + 8, + 83, + 161, + 161, + 260, + 397, + 397, + 80, + 116, + 116, + 225, + 252, + 45, + 149, + 149, + 149, + 197, + 197, + 255, + 5, + 125, + 238, + 159, + 245, + 245, + 245, + 245, + 245, + 245, + 388, + 26, + 159, + 180, + 249, + 155, + 175, + 175, + 100, + 88, + 88, + 112, + 62, + 112, + 115, + 115, + 344, + 77, + 77, + 355, + 355, + 297, + 297, + 297, + 355, + 355, + 78, + 184, + 279, + 395, + 395, + 395, + 395, + 49, + 89, + 89, + 89, + 180, + 180, + 274, + 358, + 53, + 160, + 160, + 205, + 287, + 398, + 121, + 121, + 121, + 188, + 394, + 123, + 217, + 177, + 177, + 342, + 177, + 93, + 43, + 43, + 224, + 224, + 224, + 378, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 115, + 115, + 115, + 166, + 166, + 387, + 279, + 279, + 387, + 4, + 4, + 92, + 92, + 92, + 92, + 200, + 320, + 320, + 334, + 334, + 334, + 334, + 57, + 92, + 92, + 173, + 173, + 173, + 173, + 173, + 267, + 59, + 369, + 59, + 93, + 93, + 207, + 258, + 36, + 136, + 136, + 136, + 201, + 300, + 128, + 165, + 165, + 296, + 296, + 296, + 341, + 341, + 15, + 15, + 15, + 15, + 153, + 214, + 214, + 214, + 214, + 214, + 302, + 334, + 334, + 334, + 334, + 334, + 334, + 73, + 128, + 128, + 128, + 128, + 218, + 218, + 218, + 218, + 285, + 334, + 334, + 334, + 23, + 135, + 232, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 342, + 58, + 58, + 58, + 131, + 179, + 297, + 53, + 53, + 150, + 150, + 150, + 193, + 296, + 296, + 296, + 339, + 67, + 146, + 146, + 146, + 146, + 146, + 195, + 195, + 195, + 195, + 303, + 321, + 321, + 31, + 130, + 130, + 182, + 182, + 286, + 335, + 74, + 103, + 270, + 270, + 345, + 345, + 345, + 10, + 10, + 10, + 103, + 236, + 316, + 316, + 377, + 29, + 29, + 124, + 124, + 204, + 204, + 267, + 50, + 83, + 83, + 83, + 209, + 209, + 209, + 209, + 259, + 259, + 259, + 259, + 348, + 16, + 16, + 16, + 120, + 120, + 186, + 250, + 250, + 397, + 23, + 23, + 128, + 204, + 204, + 204, + 204, + 204, + 204, + 349, + 58, + 99, + 221, + 221, + 221, + 246, + 246, + 246, + 344, + 63, + 63, + 63, + 100, + 219, + 219, + 257, + 352, + 352, + 352, + 352, + 48, + 159, + 168, + 319, + 379, + 379, + 379, + 74, + 74, + 130, + 240, + 240, + 240, + 270, + 270, + 270, + 270, + 270, + 368, + 35, + 97, + 97, + 97, + 178, + 178, + 279, + 322, + 112, + 112, + 112, + 112, + 112, + 112, + 55, + 55, + 55, + 55, + 112, + 211, + 211, + 211, + 266, + 390, + 390, + 76, + 104, + 161, + 329, + 129, + 129, + 194, + 194, + 194, + 385, + 130, + 217, + 217, + 217, + 217, + 248, + 248, + 347, + 112, + 112, + 112, + 112, + 175, + 175, + 175, + 175, + 175, + 175, + 175, + 175, + 245, + 245, + 245, + 366, + 66, + 66, + 144, + 219, + 295, + 345, + 345, + 42, + 42, + 42, + 153, + 180, + 180, + 318, + 364, + 364, + 137, + 165, + 258, + 382, + 382, + 382, + 144, + 144, + 144, + 226, + 226, + 226, + 226, + 319, + 319, + 319, + 380, + 380, + 5, + 5, + 5, + 105, + 105, + 170, + 265, + 265, + 265, + 265, + 357, + 357, + 357, + 357, + 55, + 233, + 282, + 282, + 390, + 185, + 185, + 185, + 185, + 276, + 377, + 377, + 200, + 251, + 251, + 251, + 376, + 77, + 77, + 77, + 217, + 217, + 217, + 217, + 217, + 217, + 275, + 275, + 275, + 399, + 42, + 188, + 241, + 383, + 383, + 55, + 55, + 156, + 345, + 248, + 248, + 217, + 217, + 217, + 248, + 248, + 345, + 26, + 127, + 127, + 127, + 127, + 212, + 212, + 212, + 289, + 350, + 350, + 350, + 350, + 350, + 127, + 161, + 161, + 161, + 318, + 382, + 88, + 387, + 349, + 10, + 157, + 321, + 263, + 340, + 60, + 150, + 150, + 376, + 376, + 376, + 376, + 355, + 355, + 340, + 325, + 325, + 326, + 354, + 345, + 231, + 345, + 345, + 345, + 41, + 190, + 190, + 354, + 354, + 76, + 76, + 76, + 76, + 76, + 76, + 179, + 179, + 179, + 179, + 179, + 179, + 179, + 252, + 340, + 30, + 208, + 309, + 329, + 329, + 59, + 175, + 296, + 296, + 296, + 329, + 185, + 299, + 334, + 85, + 85, + 204, + 313, + 183, + 219, + 282, + 282, + 370, + 127, + 163, + 163, + 70, + 85, + 138, + 138, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 133, + 174, + 18, + 18, + 183, + 368, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 157, + 157, + 157, + 211, + 318, + 259, + 156, + 218, + 218, + 259, + 259, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 34, + 34, + 169, + 169, + 251, + 339, + 73, + 169, + 396, + 396, + 6, + 6, + 6, + 6, + 181, + 181, + 349, + 4, + 224, + 176, + 176, + 154, + 154, + 154, + 213, + 269, + 163, + 163, + 393, + 393, + 163, + 163, + 260, + 343, + 343, + 32, + 32, + 32, + 32, + 215, + 258, + 258, + 258, + 393, + 393, + 15, + 213, + 213, + 302, + 302, + 334, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 153, + 153, + 229, + 317, + 375, + 40, + 120, + 120, + 120, + 120, + 120, + 120, + 120, + 120, + 233, + 233, + 252, + 252, + 252, + 252, + 387, + 55, + 55, + 159, + 159, + 173, + 245, + 245, + 245, + 245, + 245, + 391, + 35, + 35, + 35, + 35, + 149, + 169, + 272, + 272, + 272, + 272, + 333, + 54, + 54, + 54, + 54, + 54, + 125, + 125, + 179, + 259, + 323, + 158, + 158, + 158, + 205, + 205, + 205, + 288, + 365, + 182, + 285, + 343, + 343, + 154, + 154, + 154, + 228, + 228, + 228, + 247, + 247, + 344, + 344, + 344, + 130, + 213, + 213, + 213, + 213, + 213, + 256, + 356, + 356, + 46, + 90, + 90, + 90, + 90, + 187, + 187, + 268, + 268, + 268, + 325, + 52, + 52, + 52, + 144, + 269, + 383, + 17, + 84, + 269, + 368, + 72, + 72, + 144, + 191, + 295, + 295, + 335, + 335, + 335, + 75, + 111, + 181, + 181, + 297, + 297, + 297, + 297, + 297, + 297, + 326, + 326, + 15, + 15, + 91, + 91, + 280, + 280, + 398, + 398, + 53, + 53, + 53, + 53, + 53, + 53, + 119, + 294, + 294, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 62, + 62, + 62, + 62, + 62, + 126, + 264, + 340, + 3, + 3, + 103, + 103, + 103, + 250, + 334, + 334, + 66, + 66, + 66, + 66, + 66, + 230, + 104, + 104, + 230, + 252, + 352, + 61, + 155, + 213, + 213, + 266, + 339, + 22, + 22, + 193, + 193, + 193, + 193, + 274, + 274, + 274, + 274, + 327, + 327, + 69, + 232, + 279, + 336, + 336, + 336, + 54, + 54, + 169, + 169, + 241, + 345, + 345, + 64, + 147, + 147, + 164, + 164, + 164, + 289, + 289, + 289, + 289, + 289, + 351, + 51, + 140, + 140, + 140, + 200, + 200, + 310, + 310, + 310, + 350, + 26, + 26, + 26, + 26, + 26, + 26, + 131, + 131, + 244, + 363, + 67, + 110, + 110, + 110, + 262, + 262, + 262, + 262, + 327, + 68, + 92, + 92, + 164, + 164, + 164, + 164, + 267, + 377, + 63, + 109, + 109, + 197, + 197, + 197, + 246, + 246, + 378, + 378, + 45, + 146, + 161, + 339, + 70, + 126, + 126, + 211, + 211, + 386, + 386, + 5, + 142, + 142, + 142, + 142, + 142, + 142, + 183, + 183, + 183, + 355, + 355, + 355, + 7, + 7, + 95, + 95, + 95, + 231, + 231, + 395, + 19, + 19, + 19, + 146, + 146, + 175, + 175, + 175, + 34, + 34, + 156, + 179, + 179, + 47, + 47, + 47, + 47, + 47, + 101, + 199, + 26, + 26, + 26, + 119, + 209, + 209, + 63, + 270, + 63, + 63, + 63, + 154, + 154, + 154, + 154, + 235, + 25, + 94, + 94, + 94, + 94, + 224, + 281, + 33, + 33, + 156, + 156, + 179, + 273, + 273, + 273, + 273, + 22, + 87, + 229, + 100, + 207, + 393, + 393, + 393, + 393, + 393, + 23, + 23, + 23, + 23, + 23, + 108, + 203, + 37, + 99, + 226, + 115, + 281, + 281, + 281, + 346, + 346, + 346, + 346, + 346, + 346, + 346, + 25, + 115, + 115, + 115, + 240, + 316, + 383, + 82, + 82, + 82, + 15, + 82, + 82, + 340, + 113, + 113, + 375, + 375, + 375, + 375, + 61, + 86, + 115, + 121, + 121, + 121, + 376, + 121, + 121, + 230, + 135, + 135, + 294, + 294, + 85, + 10, + 83, + 151, + 354, + 354, + 354, + 151, + 151, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 364, + 47, + 47, + 206, + 318, + 364, + 364, + 96, + 14, + 96, + 96, + 240, + 240, + 364, + 160, + 160, + 160, + 160, + 341, + 155, + 190, + 190, + 190, + 190, + 283, + 329, + 329, + 69, + 164, + 164, + 59, + 172, + 172, + 306, + 390, + 390, + 390, + 41, + 41, + 164, + 164, + 164, + 164, + 275, + 275, + 275, + 275, + 275, + 326, + 93, + 186, + 186, + 186, + 312, + 331, + 37, + 37, + 37, + 37, + 37, + 37, + 216, + 288, + 352, + 8, + 8, + 8, + 8, + 180, + 343, + 230, + 230, + 197, + 197, + 224, + 224, + 224, + 336, + 224, + 224, + 239, + 239, + 239, + 94, + 218, + 218, + 54, + 137, + 177, + 1, + 152, + 179, + 376, + 39, + 39, + 212, + 309, + 309, + 385, + 385, + 55, + 137, + 137, + 137, + 137, + 182, + 322, + 322, + 4, + 141, + 224, + 224, + 275, + 275, + 351, + 39, + 101, + 181, + 181, + 325, + 325, + 5, + 5, + 5, + 184, + 184, + 184, + 184, + 184, + 247, + 247, + 247, + 247, + 247, + 335, + 335, + 335, + 63, + 63, + 187, + 187, + 187, + 388, + 388, + 388, + 388, + 388, + 388, + 63, + 114, + 208, + 242, + 389, + 389, + 42, + 42, + 191, + 322, + 32, + 238, + 345, + 206, + 0, + 206, + 374, + 28, + 28, + 204, + 142, + 142, + 142, + 204, + 204, + 282, + 372, + 56, + 109, + 185, + 254, + 345, + 345, + 94, + 164, + 307, + 307, + 336, + 123, + 123, + 228, + 228, + 292, + 150, + 150, + 150, + 228, + 310, + 89, + 205, + 297, + 220, + 220, + 343, + 343, + 343, + 220, + 220, + 283, + 164, + 241, + 241, + 198, + 277, + 277, + 277, + 277, + 352, + 261, + 273, + 273, + 273, + 273, + 273, + 273, + 273, + 180, + 255, + 255, + 361, + 270, + 244, + 182, + 182, + 182, + 81, + 81, + 182, + 357, + 357, + 357, + 357, + 238, + 238, + 238, + 352, + 352, + 352, + 21, + 95, + 389, + 79, + 298, + 339, + 339, + 33, + 282, + 383, + 383, + 342, + 297, + 56, + 56, + 297, + 154, + 297, + 297, + 297, + 297, + 196, + 297, + 297, + 342, + 342, + 342, + 75, + 75, + 238, + 319, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 7, + 222, + 222, + 222, + 241, + 341, + 77, + 77, + 77, + 77, + 77, + 77, + 136, + 197, + 310, + 339, + 55, + 89, + 298, + 360, + 360, + 360, + 360, + 360, + 360, + 10, + 234, + 255, + 255, + 255, + 340, + 340, + 54, + 54, + 54, + 54, + 54, + 54, + 111, + 111, + 111, + 231, + 231, + 267, + 267, + 361, + 361, + 5, + 5, + 120, + 120, + 120, + 217, + 217, + 261, + 334, + 334, + 2, + 2, + 223, + 307, + 307, + 307, + 342, + 43, + 43, + 221, + 221, + 107, + 107, + 107, + 221, + 269, + 376, + 376, + 376, + 74, + 96, + 220, + 220, + 220, + 313, + 360, + 360, + 360, + 24, + 212, + 298, + 298, + 298, + 399, + 24, + 90, + 90, + 202, + 262, + 262, + 327, + 327, + 327, + 7, + 148, + 148, + 207, + 207, + 288, + 342, + 32, + 186, + 186, + 299, + 380, + 65, + 65, + 65, + 65, + 164, + 307, + 328, + 6, + 210, + 266, + 266, + 24, + 24, + 82, + 230, + 230, + 252, + 252, + 104, + 194, + 256, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 158, + 158, + 158, + 176, + 390, + 91, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 133, + 229, + 229, + 297, + 135, + 165, + 85, + 189, + 189, + 189, + 271, + 40, + 40, + 122, + 122, + 122, + 122, + 170, + 170, + 142, + 198, + 198, + 198, + 198, + 198, + 198, + 288, + 106, + 215, + 122, + 363, + 363, + 122, + 105, + 188, + 188, + 188, + 242, + 242, + 242, + 16, + 16, + 16, + 105, + 189, + 189, + 281, + 281, + 281, + 372, + 372, + 372, + 372, + 86, + 195, + 272, + 386, + 43, + 103, + 103, + 194, + 194, + 284, + 284, + 389, + 389, + 120, + 120, + 120, + 120, + 214, + 277, + 373, + 373, + 78, + 78, + 78, + 147, + 187, + 293, + 293, + 343, + 343, + 109, + 235, + 258, + 347, + 73, + 119, + 119, + 213, + 213, + 315, + 315, + 315, + 315, + 315, + 18, + 376, + 18, + 18, + 18, + 18, + 18, + 18, + 148, + 185, + 185, + 245, + 328, + 83, + 189, + 189, + 189, + 301, + 396, + 396, + 14, + 14, + 123, + 229, + 310, + 310, + 310, + 379, + 32, + 32, + 32, + 32, + 32, + 32, + 173, + 256, + 256, + 345, + 345, + 49, + 162, + 162, + 162, + 286, + 390, + 390, + 161, + 161, + 161, + 161, + 161, + 286, + 286, + 286, + 286, + 352, + 31, + 96, + 96, + 209, + 320, + 320, + 320, + 320, + 359, + 194, + 296, + 330, + 330, + 330, + 200, + 129, + 129, + 129, + 200, + 200, + 254, + 346, + 346, + 236, + 330, + 81, + 10, + 10, + 10, + 81, + 204, + 204, + 204, + 204, + 204, + 245, + 339, + 339, + 339, + 339, + 37, + 157, + 157, + 217, + 253, + 149, + 194, + 194, + 194, + 194, + 319, + 368, + 57, + 57, + 122, + 122, + 189, + 189, + 258, + 348, + 348, + 348, + 18, + 18, + 18, + 18, + 18, + 81, + 222, + 359, + 19, + 19, + 19, + 146, + 188, + 287, + 287, + 338, + 338, + 54, + 131, + 167, + 167, + 167, + 315, + 315, + 315, + 315, + 315, + 315, + 315, + 363, + 363, + 363, + 363, + 363, + 363, + 17, + 128, + 167, + 243, + 340, + 47, + 47, + 47, + 142, + 142, + 142, + 142, + 142, + 142, + 201, + 300, + 300, + 300, + 300, + 369, + 369, + 369, + 76, + 130, + 130, + 130, + 130, + 130, + 130, + 182, + 182, + 303, + 381, + 381, + 16, + 85, + 85, + 85, + 173, + 173, + 173, + 173, + 173, + 173, + 309, + 351, + 351, + 351, + 153, + 153, + 167, + 259, + 372, + 115, + 115, + 115, + 115, + 229, + 307, + 332, + 110, + 234, + 256, + 256, + 256, + 363, + 49, + 129, + 129, + 129, + 195, + 296, + 334, + 126, + 173, + 173, + 385, + 46, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 195, + 195, + 195, + 195, + 195, + 362, + 12, + 104, + 104, + 217, + 217, + 217, + 352, + 9, + 133, + 171, + 371, + 371, + 371, + 48, + 91, + 185, + 185, + 185, + 185, + 185, + 185, + 286, + 372, + 372, + 372, + 372, + 36, + 36, + 106, + 106, + 106, + 106, + 106, + 106, + 106, + 106, + 106, + 106, + 177, + 256, + 256, + 256, + 346, + 346, + 346, + 12, + 12, + 169, + 242, + 399, + 54, + 54, + 54, + 54, + 54, + 54, + 54, + 161, + 265, + 366, + 366, + 366, + 366, + 68, + 68, + 219, + 219, + 270, + 270, + 270, + 355, + 0, + 0, + 0, + 0, + 182, + 182, + 303, + 329, + 238, + 258, + 396, + 396, + 396, + 396, + 396, + 162, + 246, + 382, + 101, + 199, + 342, + 342, + 304, + 304, + 342, + 342, + 342, + 57, + 57, + 122, + 213, + 275, + 275, + 370, + 79, + 161, + 243, + 243, + 243, + 243, + 389, + 389, + 28, + 28, + 28, + 28, + 28, + 115, + 174, + 296, + 296, + 351, + 11, + 182, + 283, + 397, + 68, + 68, + 68, + 68, + 130, + 189, + 189, + 301, + 374, + 374, + 19, + 19, + 131, + 203, + 203, + 203, + 252, + 252, + 252, + 55, + 55, + 81, + 175, + 286, + 286, + 330, + 54, + 54, + 85, + 169, + 169, + 169, + 169, + 169, + 260, + 395, + 65, + 65, + 65, + 98, + 170, + 170, + 253, + 377, + 34, + 34, + 134, + 209, + 209, + 209, + 209, + 209, + 209, + 266, + 334, + 334, + 334, + 13, + 171, + 363, + 0, + 0, + 136, + 136, + 165, + 347, + 47, + 47, + 84, + 84, + 84, + 219, + 354, + 75, + 123, + 123, + 194, + 326, + 326, + 67, + 67, + 67, + 67, + 187, + 380, + 53, + 53, + 180, + 180, + 260, + 397, + 76, + 142, + 220, + 269, + 379, + 21, + 21, + 158, + 193, + 193, + 193, + 353, + 59, + 59, + 59, + 59, + 108, + 108, + 108, + 191, + 251, + 336, + 336, + 42, + 42, + 42, + 42, + 42, + 42, + 142, + 142, + 165, + 165, + 243, + 243, + 328, + 75, + 75, + 160, + 190, + 264, + 264, + 386, + 386, + 19, + 19, + 19, + 19, + 19, + 19, + 130, + 201, + 201, + 273, + 273, + 389, + 389, + 36, + 102, + 209, + 352, + 352, + 352, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 171, + 283, + 331, + 331, + 148, + 148, + 148, + 170, + 170, + 262, + 262, + 262, + 262, + 262, + 262, + 397, + 109, + 109, + 109, + 284, + 389, + 389, + 389, + 9, + 9, + 150, + 150, + 161, + 246, + 365, + 29, + 152, + 152, + 265, + 265, + 324, + 324, + 324, + 26, + 26, + 153, + 264, + 229, + 264, + 324, + 3, + 146, + 146, + 146, + 234, + 234, + 234, + 234, + 293, + 338, + 80, + 80, + 80, + 116, + 247, + 247, + 397, + 7, + 83, + 83, + 356, + 356, + 356, + 7, + 7, + 98, + 212, + 212, + 322, + 322, + 65, + 90, + 366, + 366, + 74, + 74, + 102, + 320, + 322, + 322, + 36, + 92, + 263, + 321, + 321, + 4, + 91, + 91, + 365, + 365, + 23, + 131, + 224, + 224, + 224, + 310, + 350, + 105, + 105, + 105, + 150, + 150, + 150, + 295, + 397, + 397, + 397, + 397, + 397, + 150, + 178, + 317, + 356, + 92, + 92, + 92, + 324, + 324, + 295, + 295, + 324, + 159, + 108, + 108, + 108, + 138, + 118, + 344, + 236, + 236, + 344, + 118, + 211, + 211, + 211, + 211, + 266, + 266, + 266, + 363, + 363, + 35, + 151, + 151, + 385, + 3, + 151, + 318, + 40, + 40, + 40, + 123, + 113, + 349, + 349, + 16, + 221, + 221, + 292, + 292, + 355, + 149, + 149, + 149, + 149, + 208, + 303, + 303, + 303, + 347, + 347, + 347, + 347, + 138, + 138, + 138, + 239, + 239, + 253, + 253, + 321, + 321, + 92, + 38, + 92, + 225, + 225, + 225, + 353, + 353, + 111, + 235, + 235, + 294, + 72, + 152, + 171, + 171, + 171, + 171, + 129, + 142, + 226, + 226, + 387, + 104, + 176, + 130, + 130, + 130, + 130, + 237, + 102, + 11, + 11, + 350, + 350, + 11, + 11, + 11, + 11, + 102, + 176, + 176, + 176, + 320, + 320, + 320, + 385, + 385, + 29, + 29, + 95, + 95, + 2, + 155, + 155, + 155, + 4, + 4, + 126, + 126, + 126, + 126, + 170, + 387, + 22, + 22, + 152, + 203, + 31, + 31, + 31, + 86, + 86, + 86, + 230, + 230, + 80, + 92, + 92, + 11, + 11, + 11, + 327, + 11, + 11, + 90, + 90, + 90, + 122, + 0, + 0, + 0, + 182, + 0, + 122, + 72, + 298, + 353, + 72, + 72, + 87, + 87, + 87, + 87, + 87, + 87, + 87, + 335, + 335, + 335, + 335, + 335, + 101, + 236, + 236, + 236, + 236, + 278, + 382, + 382, + 77, + 93, + 93, + 235, + 235, + 235, + 297, + 337, + 40, + 40, + 40, + 99, + 210, + 267, + 267, + 267, + 377, + 377, + 377, + 377, + 41, + 41, + 41, + 41, + 128, + 223, + 243, + 321, + 321, + 1, + 1, + 1, + 126, + 126, + 176, + 176, + 176, + 284, + 337, + 66, + 66, + 66, + 152, + 152, + 152, + 152, + 239, + 279, + 327, + 327, + 327, + 327, + 327, + 327, + 21, + 135, + 135, + 135, + 135, + 192, + 283, + 283, + 340, + 50, + 99, + 216, + 216, + 265, + 265, + 373, + 373, + 28, + 28, + 28, + 86, + 185, + 254, + 322, + 322, + 322, + 322, + 48, + 48, + 196, + 244, + 353, + 77, + 77, + 77, + 77, + 77, + 177, + 241, + 375, + 25, + 25, + 207, + 207, + 273, + 273, + 336, + 336, + 37, + 37, + 37, + 37, + 194, + 285, + 348, + 69, + 69, + 69, + 69, + 69, + 69, + 166, + 166, + 342, + 342, + 64, + 64, + 64, + 64, + 138, + 138, + 216, + 216, + 334, + 334, + 334, + 55, + 55, + 121, + 121, + 121, + 237, + 392, + 392, + 392, + 392, + 392, + 392, + 392, + 74, + 74, + 163, + 137, + 163, + 163, + 247, + 247, + 247, + 349, + 79, + 79, + 208, + 208, + 258, + 378, + 2, + 188, + 71, + 219, + 61, + 100, + 100, + 100, + 100, + 100, + 100, + 213, + 15, + 15, + 292, + 292, + 292, + 15, + 15, + 15, + 118, + 118, + 161, + 259, + 259, + 259, + 348, + 348, + 348, + 36, + 36, + 171, + 5, + 226, + 29, + 197, + 197, + 25, + 161, + 161, + 146, + 146, + 146, + 161, + 161, + 16, + 123, + 123, + 197, + 197, + 22, + 117, + 4, + 4, + 4, + 84, + 84, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 206, + 206, + 355, + 355, + 355, + 355, + 56, + 214, + 214, + 371, + 371, + 258, + 258, + 371, + 169, + 254, + 378, + 378, + 378, + 196, + 196, + 97, + 97, + 97, + 196, + 196, + 292, + 292, + 292, + 146, + 146, + 224, + 292, + 5, + 5, + 5, + 5, + 5, + 119, + 216, + 216, + 298, + 36, + 36, + 36, + 36, + 36, + 36, + 36, + 36, + 91, + 91, + 91, + 91, + 223, + 223, + 223, + 251, + 251, + 251, + 251, + 251, + 384, + 136, + 136, + 136, + 194, + 194, + 298, + 298, + 298, + 298, + 298, + 397, + 36, + 139, + 139, + 168, + 168, + 168, + 317, + 317, + 333, + 104, + 211, + 313, + 313, + 313, + 329, + 72, + 72, + 106, + 106, + 184, + 184, + 184, + 279, + 279, + 279, + 279, + 279, + 279, + 360, + 38, + 101, + 193, + 193, + 297, + 297, + 297, + 297, + 297, + 297, + 297, + 387, + 387, + 61, + 61, + 61, + 88, + 237, + 291, + 340, + 340, + 56, + 56, + 115, + 207, + 334, + 334, + 28, + 28, + 28, + 28, + 147, + 184, + 283, + 331, + 331, + 15, + 140, + 227, + 227, + 227, + 281, + 281, + 333, + 333, + 333, + 38, + 108, + 108, + 190, + 274, + 274, + 375, + 24, + 119, + 119, + 119, + 205, + 338, + 338, + 274, + 274, + 274, + 338, + 338, + 8, + 8, + 8, + 125, + 225, + 322, + 322, + 111, + 190, + 383, + 383, + 213, + 81, + 81, + 81, + 213, + 213, + 213, + 213, + 286, + 286, + 366, + 366, + 366, + 366, + 85, + 85, + 85, + 234, + 234, + 234, + 317, + 322, + 110, + 110, + 170, + 318, + 318, + 348, + 3, + 3, + 3, + 228, + 307, + 348, + 348, + 348, + 77, + 172, + 253, + 77, + 77, + 162, + 311, + 335, + 335, + 20, + 294, + 294, + 381, + 381, + 381, + 42, + 42, + 42, + 172, + 285, + 285, + 285, + 285, + 285, + 384, + 384, + 384, + 384, + 384, + 384, + 197, + 197, + 197, + 276, + 377, + 283, + 283, + 353, + 353, + 303, + 233, + 303, + 303, + 342, + 342, + 342, + 342, + 35, + 103, + 219, + 219, + 267, + 267, + 267, + 362, + 362, + 87, + 336, + 59, + 135, + 135, + 135, + 348, + 59, + 143, + 143, + 143, + 179, + 179, + 294, + 294, + 294, + 396, + 396, + 135, + 183, + 389, + 389, + 389, + 249, + 249, + 249, + 249, + 249, + 389, + 74, + 89, + 198, + 243, + 243, + 324, + 324, + 84, + 84, + 240, + 240, + 261, + 321, + 90, + 161, + 161, + 161, + 161, + 161, + 284, + 284, + 284, + 350, + 140, + 140, + 300, + 345, + 49, + 118, + 186, + 306, + 306, + 306, + 306, + 306, + 306, + 306, + 383, + 383, + 45, + 143, + 189, + 265, + 265, + 265, + 334, + 334, + 78, + 136, + 182, + 182, + 182, + 354, + 155, + 180, + 305, + 305, + 305, + 305, + 305, + 305, + 398, + 398, + 23, + 192, + 353, + 43, + 43, + 211, + 318, + 318, + 12, + 141, + 141, + 141, + 141, + 198, + 280, + 215, + 87, + 215, + 215, + 215, + 330, + 330, + 50, + 149, + 214, + 214, + 116, + 116, + 116, + 116, + 194, + 194, + 194, + 350, + 120, + 120, + 199, + 320, + 326, + 326, + 326, + 326, + 326, + 31, + 31, + 216, + 216, + 216, + 216, + 263, + 263, + 376, + 56, + 184, + 297, + 297, + 398, + 398, + 1, + 182, + 182, + 138, + 138, + 138, + 138, + 182, + 320, + 320, + 343, + 343, + 11, + 148, + 186, + 186, + 307, + 307, + 363, + 363, + 363, + 65, + 65, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 189, + 189, + 241, + 377, + 377, + 98, + 98, + 170, + 170, + 170, + 303, + 303, + 303, + 303, + 381, + 83, + 83, + 189, + 388, + 388, + 388, + 388, + 388, + 1, + 1, + 1, + 1, + 138, + 138, + 203, + 368, + 14, + 14, + 14, + 14, + 149, + 149, + 149, + 183, + 358, + 4, + 84, + 84, + 84, + 84, + 84, + 179, + 179, + 399, + 49, + 119, + 233, + 368, + 49, + 84, + 84, + 216, + 216, + 362, + 362, + 28, + 28, + 28, + 118, + 118, + 216, + 383, + 69, + 69, + 69, + 119, + 223, + 223, + 358, + 28, + 28, + 94, + 202, + 288, + 358, + 27, + 112, + 112, + 112, + 112, + 112, + 215, + 215, + 355, + 21, + 21, + 128, + 173, + 358, + 72, + 72, + 156, + 348, + 10, + 10, + 115, + 181, + 181, + 247, + 247, + 388, + 388, + 30, + 135, + 135, + 135, + 293, + 370, + 130, + 367, + 83, + 111, + 185, + 185, + 185, + 185, + 185, + 185, + 185, + 185, + 241, + 335, + 335, + 47, + 239, + 122, + 239, + 339, + 42, + 42, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 187, + 187, + 366, + 22, + 399, + 9, + 9, + 145, + 145, + 328, + 328, + 79, + 339, + 339, + 56, + 56, + 56, + 137, + 320, + 320, + 320, + 320, + 320, + 61, + 61, + 61, + 61, + 354, + 61, + 61, + 61, + 61, + 61, + 120, + 120, + 228, + 282, + 282, + 2, + 2, + 226, + 226, + 249, + 249, + 15, + 15, + 15, + 180, + 180, + 288, + 12, + 12, + 12, + 239, + 309, + 337, + 337, + 337, + 337, + 39, + 39, + 39, + 286, + 354, + 354, + 48, + 314, + 314, + 139, + 314, + 376, + 25, + 278, + 237, + 278, + 350, + 269, + 125, + 294, + 375, + 375, + 63, + 63, + 222, + 309, + 380, + 380, + 380, + 380, + 71, + 71, + 71, + 109, + 109, + 221, + 268, + 394, + 40, + 124, + 296, + 296, + 296, + 20, + 20, + 20, + 20, + 147, + 59, + 108, + 108, + 213, + 213, + 288, + 395, + 395, + 74, + 74, + 74, + 107, + 107, + 107, + 197, + 277, + 339, + 339, + 193, + 283, + 365, + 248, + 399, + 399, + 71, + 308, + 93, + 236, + 236, + 236, + 308, + 308, + 365, + 101, + 273, + 346, + 346, + 346, + 346, + 346, + 195, + 269, + 269, + 269, + 393, + 28, + 113, + 113, + 163, + 163, + 396, + 36, + 36, + 36, + 36, + 36, + 135, + 135, + 191, + 318, + 371, + 371, + 57, + 141, + 161, + 161, + 161, + 161, + 264, + 264, + 264, + 264, + 264, + 264, + 385, + 385, + 25, + 111, + 223, + 265, + 265, + 265, + 398, + 398, + 5, + 133, + 133, + 133, + 133, + 133, + 133, + 133, + 202, + 251, + 251, + 331, + 41, + 146, + 146, + 231, + 231, + 245, + 245, + 245, + 245, + 375, + 11, + 11, + 11, + 11, + 11, + 105, + 161, + 294, + 388, + 5, + 96, + 96, + 224, + 224, + 304, + 340, + 150, + 150, + 187, + 241, + 241, + 241, + 241, + 382, + 51, + 95, + 163, + 301, + 361, + 16, + 16, + 16, + 16, + 16, + 140, + 140, + 179, + 294, + 294, + 294, + 369, + 6, + 141, + 190, + 318, + 318, + 318, + 318, + 350, + 350, + 350, + 31, + 151, + 151, + 151, + 151, + 151, + 189, + 298, + 396, + 33, + 33, + 33, + 93, + 197, + 197, + 197, + 197, + 197, + 197, + 306, + 306, + 334, + 334, + 89, + 198, + 251, + 251, + 251, + 251, + 251, + 340, + 340, + 340, + 80, + 104, + 240, + 318, + 335, + 335, + 53, + 53, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 202, + 317, + 317, + 17, + 17, + 340, + 17, + 17, + 103, + 179, + 301, + 12, + 155, + 155, + 222, + 311, + 149, + 224, + 279, + 94, + 94, + 169, + 155, + 164, + 164, + 113, + 203, + 203, + 203, + 203, + 203, + 145, + 234, + 175, + 290, + 290, + 290, + 290, + 290, + 175, + 175, + 276, + 201, + 152, + 336, + 282, + 336, + 336, + 336, + 336, + 152, + 152, + 187, + 363, + 363, + 60, + 359, + 54, + 54, + 98, + 312, + 369, + 70, + 70, + 203, + 346, + 49, + 341, + 201, + 201, + 341, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 363, + 1, + 1, + 147, + 166, + 14, + 14, + 14, + 208, + 208, + 208, + 303, + 382, + 382, + 65, + 65, + 65, + 65, + 170, + 170, + 170, + 388, + 388, + 388, + 44, + 44, + 44, + 44, + 191, + 15, + 199, + 199, + 199, + 393, + 45, + 45, + 212, + 212, + 212, + 212, + 95, + 95, + 212, + 212, + 212, + 349, + 74, + 74, + 74, + 74, + 126, + 126, + 237, + 259, + 259, + 366, + 79, + 97, + 277, + 393, + 393, + 393, + 393, + 393, + 73, + 73, + 73, + 73, + 115, + 115, + 260, + 353, + 353, + 40, + 138, + 313, + 374, + 3, + 3, + 3, + 305, + 305, + 391, + 36, + 152, + 152, + 238, + 238, + 295, + 356, + 356, + 356, + 356, + 111, + 111, + 217, + 217, + 217, + 217, + 243, + 243, + 352, + 18, + 18, + 147, + 160, + 160, + 267, + 53, + 53, + 160, + 160, + 18, + 126, + 126, + 126, + 67, + 351, + 351, + 351, + 351, + 67, + 345, + 36, + 36, + 323, + 323, + 27, + 27, + 211, + 211, + 211, + 272, + 45, + 99, + 291, + 26, + 15, + 15, + 164, + 164, + 27, + 27, + 237, + 36, + 232, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 283, + 283, + 355, + 21, + 270, + 378, + 378, + 378, + 378, + 7, + 142, + 142, + 210, + 210, + 313, + 313, + 374, + 374, + 374, + 374, + 69, + 69, + 111, + 111, + 111, + 111, + 111, + 229, + 229, + 229, + 272, + 340, + 48, + 48, + 48, + 122, + 232, + 307, + 399, + 38, + 38, + 38, + 103, + 103, + 103, + 216, + 216, + 316, + 382, + 382, + 69, + 69, + 136, + 225, + 251, + 251, + 366, + 366, + 366, + 44, + 160, + 160, + 160, + 175, + 175, + 175, + 175, + 175, + 273, + 273, + 273, + 273, + 370, + 49, + 49, + 116, + 218, + 218, + 218, + 312, + 325, + 36, + 151, + 151, + 151, + 151, + 151, + 151, + 230, + 230, + 230, + 319, + 319, + 319, + 322, + 322, + 322, + 322, + 322, + 322, + 63, + 121, + 121, + 240, + 240, + 285, + 285, + 285, + 0, + 112, + 227, + 301, + 374, + 374, + 374, + 374, + 374, + 32, + 32, + 32, + 154, + 154, + 154, + 199, + 253, + 393, + 61, + 61, + 61, + 123, + 195, + 399, + 77, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 189, + 335, + 65, + 65, + 127, + 239, + 239, + 239, + 308, + 361, + 361, + 130, + 130, + 237, + 237, + 290, + 290, + 290, + 290, + 290, + 290, + 290, + 385, + 72, + 72, + 89, + 89, + 202, + 292, + 370, + 370, + 82, + 209, + 209, + 209, + 245, + 235, + 93, + 235, + 235, + 235, + 295, + 203, + 203, + 180, + 180, + 180, + 366, + 152, + 152, + 207, + 207, + 77, + 104, + 180, + 344, + 157, + 383, + 383, + 383, + 220, + 383, + 383, + 383, + 9, + 9, + 158, + 158, + 158, + 20, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 145, + 145, + 145, + 145, + 171, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 162, + 162, + 162, + 162, + 162, + 162, + 258, + 333, + 71, + 120, + 201, + 201, + 310, + 337, + 13, + 13, + 208, + 208, + 269, + 269, + 269, + 269, + 83, + 83, + 40, + 83, + 180, + 98, + 63, + 370, + 86, + 86, + 370, + 31, + 31, + 186, + 186, + 241, + 366, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 26, + 237, + 237, + 321, + 321, + 394, + 391, + 290, + 322, + 51, + 313, + 39, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 285, + 47, + 47, + 47, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 196, + 328, + 328, + 328, + 328, + 57, + 57, + 100, + 100, + 230, + 230, + 138, + 226, + 226, + 226, + 226, + 226, + 226, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 101, + 282, + 282, + 396, + 396, + 396, + 396, + 214, + 261, + 261, + 363, + 363, + 363, + 363, + 363, + 363, + 76, + 236, + 199, + 199, + 199, + 199, + 0, + 135, + 168, + 168, + 68, + 68, + 136, + 136, + 136, + 211, + 279, + 223, + 219, + 174, + 286, + 286, + 286, + 286, + 144, + 169, + 169, + 387, + 387, + 145, + 39, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 176, + 176, + 176, + 97, + 7, + 7, + 97, + 203, + 37, + 37, + 256, + 381, + 37, + 37, + 145, + 145, + 232, + 44, + 152, + 229, + 260, + 260, + 260, + 80, + 80, + 80, + 87, + 197, + 197, + 197, + 197, + 254, + 382, + 65, + 128, + 189, + 189, + 189, + 296, + 296, + 392, + 392, + 392, + 55, + 139, + 221, + 221, + 221, + 221, + 221, + 221, + 315, + 381, + 381, + 381, + 19, + 19, + 19, + 19, + 100, + 169, + 169, + 324, + 243, + 324, + 324, + 324, + 324, + 36, + 36, + 36, + 137, + 188, + 188, + 188, + 188, + 188, + 261, + 393, + 393, + 34, + 107, + 168, + 168, + 168, + 168, + 315, + 54, + 106, + 106, + 106, + 231, + 312, + 65, + 150, + 150, + 187, + 187, + 351, + 63, + 113, + 194, + 194, + 301, + 56, + 145, + 145, + 145, + 173, + 304, + 304, + 304, + 355, + 355, + 355, + 355, + 355, + 62, + 62, + 101, + 101, + 101, + 101, + 180, + 291, + 291, + 291, + 291, + 329, + 19, + 19, + 19, + 19, + 90, + 90, + 90, + 237, + 237, + 237, + 237, + 237, + 282, + 282, + 398, + 16, + 136, + 136, + 136, + 180, + 281, + 368, + 3, + 144, + 176, + 176, + 176, + 296, + 296, + 348, + 348, + 61, + 88, + 88, + 88, + 216, + 309, + 330, + 142, + 177, + 177, + 254, + 254, + 141, + 141, + 141, + 206, + 271, + 271, + 151, + 269, + 322, + 322, + 21, + 21, + 254, + 36, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 306, + 306, + 344, + 72, + 260, + 13, + 62, + 56, + 56, + 170, + 26, + 26, + 26, + 86, + 172, + 172, + 172, + 172, + 289, + 362, + 362, + 2, + 151, + 151, + 202, + 202, + 66, + 66, + 154, + 162, + 21, + 148, + 148, + 22, + 22, + 134, + 250, + 389, + 389, + 34, + 146, + 200, + 346, + 346, + 390, + 390, + 390, + 200, + 200, + 390, + 110, + 136, + 136, + 282, + 252, + 252, + 252, + 252, + 252, + 158, + 46, + 158, + 158, + 252, + 252, + 240, + 320, + 210, + 210, + 210, + 210, + 253, + 220, + 268, + 27, + 27, + 27, + 27, + 114, + 165, + 165, + 300, + 300, + 39, + 39, + 140, + 236, + 236, + 236, + 236, + 252, + 252, + 252, + 252, + 252, + 74, + 74, + 393, + 393, + 393, + 74, + 74, + 100, + 100, + 100, + 100, + 307, + 61, + 61, + 61, + 90, + 279, + 161, + 279, + 279, + 279, + 279, + 354, + 354, + 354, + 354, + 354, + 24, + 24, + 99, + 99, + 262, + 262, + 321, + 321, + 66, + 82, + 82, + 180, + 283, + 1, + 1, + 86, + 314, + 314, + 16, + 16, + 16, + 116, + 116, + 116, + 116, + 116, + 286, + 76, + 151, + 309, + 309, + 309, + 309, + 309, + 13, + 129, + 330, + 41, + 41, + 41, + 41, + 113, + 113, + 188, + 188, + 188, + 354, + 354, + 62, + 62, + 62, + 62, + 152, + 189, + 394, + 107, + 361, + 361, + 361, + 148, + 145, + 112, + 370, + 229, + 279, + 370, + 370, + 59, + 112, + 112, + 112, + 112, + 283, + 283, + 391, + 391, + 41, + 41, + 41, + 106, + 275, + 275, + 275, + 400, + 400, + 400, + 400, + 114, + 194, + 300, + 300, + 300, + 300, + 300, + 334, + 334, + 90, + 90, + 206, + 252, + 252, + 379, + 89, + 181, + 181, + 253, + 337, + 17, + 84, + 84, + 84, + 254, + 111, + 111, + 306, + 306, + 306, + 306, + 306, + 139, + 200, + 270, + 148, + 148, + 148, + 148, + 72, + 148, + 162, + 264, + 396, + 396, + 67, + 140, + 140, + 140, + 209, + 209, + 209, + 209, + 313, + 342, + 342, + 342, + 342, + 342, + 24, + 99, + 162, + 357, + 357, + 35, + 35, + 81, + 81, + 81, + 202, + 202, + 308, + 346, + 67, + 144, + 144, + 144, + 144, + 212, + 256, + 335, + 335, + 49, + 148, + 148, + 202, + 202, + 202, + 202, + 202, + 202, + 303, + 303, + 380, + 380, + 52, + 52, + 154, + 206, + 264, + 393, + 393, + 36, + 101, + 101, + 101, + 164, + 242, + 242, + 331, + 331, + 122, + 260, + 377, + 34, + 133, + 133, + 255, + 255, + 255, + 255, + 255, + 255, + 348, + 348, + 29, + 29, + 88, + 88, + 88, + 88, + 88, + 166, + 251, + 251, + 371, + 371, + 371, + 75, + 75, + 147, + 147, + 319, + 379, + 91, + 91, + 91, + 174, + 174, + 289, + 289, + 289, + 289, + 289, + 358, + 23, + 23, + 102, + 164, + 164, + 288, + 288, + 390, + 95, + 95, + 95, + 240, + 240, + 279, + 355, + 355, + 355, + 97, + 216, + 241, + 363, + 47, + 47, + 99, + 99, + 99, + 99, + 99, + 219, + 219, + 298, + 298, + 298, + 298, + 387, + 85, + 85, + 180, + 180, + 256, + 256, + 256, + 356, + 356, + 62, + 120, + 207, + 390, + 287, + 287, + 390, + 390, + 390, + 390, + 390, + 390, + 390, + 390, + 0, + 0, + 0, + 116, + 116, + 187, + 187, + 253, + 373, + 373, + 54, + 54, + 120, + 199, + 199, + 287, + 287, + 287, + 287, + 287, + 287, + 355, + 39, + 39, + 125, + 229, + 275, + 326, + 326, + 326, + 326, + 24, + 24, + 116, + 199, + 199, + 199, + 199, + 305, + 331, + 331, + 47, + 115, + 115, + 189, + 189, + 291, + 291, + 291, + 323, + 37, + 37, + 37, + 104, + 104, + 184, + 384, + 3, + 142, + 142, + 142, + 186, + 367, + 57, + 149, + 211, + 211, + 382, + 269, + 382, + 382, + 95, + 95, + 162, + 162, + 162, + 162, + 257, + 335, + 98, + 98, + 163, + 301, + 372, + 372, + 372, + 29, + 135, + 179, + 260, + 260, + 260, + 260, + 394, + 21, + 21, + 85, + 85, + 85, + 234, + 280, + 280, + 280, + 280, + 16, + 96, + 213, + 320, + 320, + 397, + 397, + 81, + 81, + 216, + 263, + 336, + 102, + 102, + 229, + 302, + 302, + 362, + 130, + 130, + 173, + 173, + 263, + 336, + 336, + 336, + 15, + 82, + 211, + 278, + 278, + 278, + 278, + 278, + 278, + 142, + 142, + 189, + 189, + 245, + 136, + 136, + 136, + 136, + 188, + 188, + 243, + 130, + 379, + 379, + 379, + 130, + 130, + 209, + 209, + 209, + 314, + 314, + 109, + 198, + 198, + 198, + 198, + 319, + 319, + 319, + 319, + 319, + 319, + 319, + 319, + 369, + 63, + 86, + 170, + 253, + 383, + 140, + 195, + 326, + 326, + 326, + 326, + 106, + 238, + 334, + 334, + 267, + 267, + 334, + 19, + 19, + 120, + 207, + 327, + 29, + 29, + 29, + 29, + 29, + 82, + 82, + 82, + 82, + 255, + 255, + 255, + 330, + 330, + 330, + 330, + 10, + 149, + 199, + 50, + 276, + 276, + 50, + 151, + 151, + 151, + 239, + 58, + 58, + 58, + 58, + 142, + 142, + 142, + 142, + 161, + 161, + 364, + 78, + 109, + 109, + 109, + 109, + 109, + 213, + 392, + 392, + 12, + 12, + 92, + 180, + 180, + 180, + 381, + 39, + 106, + 198, + 198, + 198, + 335, + 56, + 140, + 140, + 164, + 164, + 367, + 86, + 86, + 230, + 358, + 87, + 191, + 191, + 253, + 253, + 195, + 195, + 252, + 252, + 174, + 174, + 328, + 174, + 279, + 279, + 4, + 4, + 4, + 209, + 241, + 241, + 241, + 96, + 96, + 194, + 194, + 271, + 271, + 271, + 70, + 70, + 70, + 139, + 139, + 240, + 240, + 240, + 257, + 378, + 20, + 130, + 176, + 321, + 73, + 73, + 73, + 150, + 239, + 260, + 260, + 323, + 323, + 57, + 57, + 57, + 57, + 57, + 123, + 182, + 292, + 370, + 370, + 370, + 370, + 370, + 17, + 217, + 302, + 302, + 390, + 29, + 236, + 288, + 374, + 374, + 374, + 57, + 92, + 92, + 228, + 266, + 266, + 384, + 24, + 153, + 172, + 304, + 304, + 2, + 2, + 156, + 156, + 156, + 156, + 156, + 156, + 167, + 254, + 254, + 254, + 45, + 151, + 151, + 207, + 207, + 207, + 207, + 301, + 394, + 394, + 394, + 394, + 1, + 1, + 149, + 199, + 268, + 268, + 332, + 9, + 9, + 155, + 155, + 155, + 155, + 155, + 155, + 155, + 155, + 187, + 302, + 302, + 302, + 302, + 302, + 354, + 354, + 26, + 26, + 26, + 186, + 186, + 186, + 186, + 269, + 269, + 330, + 17, + 17, + 114, + 114, + 114, + 232, + 232, + 316, + 316, + 330, + 330, + 28, + 144, + 144, + 144, + 199, + 270, + 339, + 50, + 147, + 147, + 238, + 323, + 323, + 21, + 183, + 331, + 331, + 64, + 127, + 217, + 379, + 379, + 0, + 0, + 0, + 140, + 210, + 210, + 210, + 315, + 371, + 371, + 48, + 85, + 85, + 165, + 293, + 397, + 397, + 5, + 5, + 5, + 142, + 227, + 227, + 227, + 227, + 285, + 285, + 342, + 342, + 342, + 12, + 12, + 12, + 101, + 101, + 175, + 377, + 377, + 377, + 92, + 194, + 255, + 255, + 330, + 330, + 34, + 34, + 239, + 265, + 398, + 398, + 31, + 31, + 31, + 31, + 192, + 297, + 339, + 66, + 66, + 66, + 66, + 66, + 84, + 84, + 84, + 84, + 182, + 281, + 342, + 342, + 342, + 342, + 51, + 51, + 119, + 119, + 282, + 282, + 388, + 132, + 68, + 68, + 68, + 132, + 132, + 200, + 255, + 255, + 255, + 395, + 43, + 126, + 126, + 126, + 215, + 317, + 384, + 384, + 76, + 76, + 172, + 263, + 400, + 400, + 64, + 188, + 188, + 279, + 363, + 363, + 139, + 139, + 139, + 287, + 380, + 255, + 346, + 264, + 264, + 264, + 353, + 235, + 333, + 333, + 333, + 168, + 86, + 168, + 366, + 366, + 69, + 392, + 342, + 342, + 342, + 342, + 342, + 19, + 149, + 255, + 255, + 255, + 255, + 255, + 255, + 323, + 123, + 371, + 274, + 388, + 388, + 388, + 388, + 310, + 310, + 359, + 359, + 57, + 57, + 181, + 250, + 250, + 250, + 250, + 327, + 327, + 327, + 56, + 364, + 34, + 34, + 34, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 266, + 266, + 54, + 116, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 215, + 251, + 32, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 244, + 388, + 388, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 121, + 121, + 204, + 204, + 204, + 281, + 281, + 334, + 334, + 334, + 26, + 26, + 26, + 26, + 145, + 145, + 145, + 197, + 338, + 338, + 40, + 144, + 211, + 295, + 39, + 39, + 39, + 39, + 347, + 39, + 130, + 130, + 232, + 232, + 232, + 244, + 8, + 132, + 217, + 217, + 217, + 299, + 299, + 299, + 299, + 299, + 299, + 42, + 131, + 131, + 232, + 254, + 254, + 254, + 254, + 322, + 322, + 5, + 108, + 108, + 204, + 204, + 253, + 253, + 397, + 397, + 397, + 76, + 97, + 183, + 183, + 315, + 395, + 395, + 395, + 395, + 395, + 65, + 65, + 65, + 65, + 108, + 168, + 168, + 286, + 330, + 71, + 249, + 68, + 398, + 398, + 398, + 398, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 166, + 166, + 166, + 295, + 295, + 295, + 295, + 295, + 355, + 31, + 182, + 349, + 349, + 75, + 75, + 150, + 150, + 150, + 217, + 217, + 217, + 217, + 274, + 341, + 12, + 12, + 125, + 125, + 175, + 175, + 175, + 273, + 273, + 386, + 23, + 23, + 23, + 146, + 146, + 146, + 212, + 212, + 212, + 336, + 336, + 33, + 140, + 140, + 140, + 206, + 206, + 339, + 339, + 37, + 37, + 37, + 37, + 100, + 100, + 201, + 246, + 325, + 40, + 40, + 131, + 131, + 166, + 242, + 367, + 367, + 367, + 367, + 49, + 49, + 131, + 131, + 194, + 334, + 24, + 24, + 111, + 111, + 111, + 209, + 314, + 314, + 330, + 330, + 330, + 72, + 194, + 398, + 67, + 67, + 67, + 140, + 192, + 248, + 340, + 340, + 73, + 73, + 186, + 315, + 372, + 372, + 0, + 224, + 269, + 269, + 366, + 6, + 145, + 240, + 273, + 273, + 388, + 388, + 24, + 24, + 138, + 138, + 138, + 167, + 167, + 249, + 249, + 365, + 78, + 78, + 78, + 78, + 157, + 174, + 174, + 174, + 268, + 354, + 87, + 87, + 179, + 179, + 179, + 179, + 179, + 319, + 346, + 16, + 16, + 91, + 91, + 91, + 91, + 177, + 316, + 324, + 91, + 91, + 247, + 247, + 247, + 345, + 152, + 16, + 16, + 152, + 152, + 210, + 249, + 249, + 249, + 249, + 394, + 30, + 30, + 30, + 148, + 148, + 202, + 283, + 283, + 340, + 60, + 132, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 263, + 363, + 25, + 25, + 25, + 25, + 146, + 187, + 187, + 187, + 187, + 274, + 274, + 274, + 274, + 274, + 361, + 38, + 144, + 212, + 212, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 371, + 371, + 34, + 34, + 34, + 34, + 131, + 237, + 295, + 295, + 375, + 0, + 0, + 0, + 0, + 96, + 188, + 188, + 188, + 309, + 309, + 309, + 309, + 309, + 385, + 385, + 385, + 76, + 76, + 76, + 142, + 142, + 142, + 142, + 142, + 142, + 231, + 257, + 257, + 382, + 382, + 59, + 59, + 113, + 113, + 113, + 113, + 224, + 308, + 308, + 343, + 77, + 77, + 77, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 149, + 199, + 294, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 66, + 66, + 143, + 143, + 143, + 143, + 166, + 166, + 166, + 166, + 245, + 245, + 245, + 245, + 245, + 385, + 55, + 119, + 119, + 213, + 251, + 251, + 329, + 25, + 124, + 124, + 167, + 167, + 167, + 167, + 167, + 167, + 167, + 288, + 355, + 355, + 355, + 48, + 139, + 139, + 139, + 139, + 139, + 216, + 216, + 311, + 311, + 323, + 60, + 169, + 169, + 265, + 265, + 265, + 265, + 265, + 392, + 392, + 392, + 14, + 225, + 314, + 314, + 314, + 385, + 385, + 5, + 5, + 5, + 224, + 310, + 364, + 364, + 364, + 24, + 24, + 199, + 312, + 400, + 26, + 216, + 216, + 242, + 380, + 380, + 193, + 193, + 319, + 319, + 356, + 221, + 221, + 79, + 113, + 221, + 221, + 221, + 307, + 358, + 358, + 358, + 358, + 358, + 72, + 72, + 99, + 99, + 229, + 229, + 229, + 229, + 278, + 278, + 367, + 367, + 58, + 144, + 144, + 144, + 144, + 144, + 144, + 216, + 216, + 261, + 261, + 261, + 346, + 45, + 45, + 45, + 155, + 166, + 263, + 263, + 329, + 56, + 56, + 178, + 178, + 317, + 317, + 331, + 331, + 36, + 36, + 232, + 254, + 254, + 364, + 60, + 60, + 60, + 60, + 92, + 227, + 280, + 360, + 360, + 360, + 18, + 92, + 92, + 92, + 214, + 214, + 256, + 333, + 51, + 51, + 51, + 148, + 202, + 260, + 336, + 336, + 336, + 336, + 22, + 22, + 120, + 120, + 120, + 277, + 393, + 23, + 23, + 23, + 23, + 23, + 125, + 316, + 316, + 385, + 76, + 76, + 83, + 243, + 243, + 389, + 44, + 44, + 44, + 160, + 194, + 319, + 384, + 384, + 384, + 384, + 15, + 150, + 182, + 182, + 182, + 182, + 182, + 182, + 182, + 266, + 266, + 266, + 384, + 72, + 72, + 116, + 202, + 202, + 202, + 202, + 307, + 307, + 307, + 307, + 307, + 352, + 111, + 201, + 259, + 259, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 193, + 193, + 266, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 17, + 17, + 304, + 304, + 304, + 304, + 333, + 333, + 333, + 33, + 33, + 33, + 178, + 254, + 400, + 400, + 400, + 169, + 316, + 316, + 316, + 376, + 376, + 254, + 136, + 136, + 136, + 254, + 341, + 341, + 341, + 341, + 341, + 21, + 198, + 198, + 198, + 247, + 373, + 114, + 222, + 222, + 222, + 222, + 302, + 372, + 372, + 100, + 100, + 100, + 216, + 286, + 286, + 286, + 372, + 141, + 200, + 296, + 296, + 369, + 369, + 73, + 139, + 267, + 267, + 383, + 383, + 383, + 114, + 114, + 114, + 114, + 193, + 262, + 82, + 82, + 169, + 169, + 291, + 29, + 200, + 284, + 370, + 46, + 193, + 193, + 193, + 193, + 193, + 266, + 266, + 377, + 377, + 15, + 15, + 245, + 22, + 309, + 246, + 397, + 397, + 246, + 392, + 392, + 282, + 282, + 282, + 344, + 344, + 62, + 268, + 268, + 268, + 283, + 396, + 396, + 283, + 312, + 104, + 201, + 246, + 246, + 246, + 22, + 22, + 162, + 259, + 259, + 323, + 323, + 323, + 15, + 89, + 89, + 89, + 89, + 171, + 275, + 374, + 374, + 374, + 374, + 19, + 99, + 161, + 319, + 319, + 319, + 319, + 319, + 319, + 319, + 339, + 339, + 339, + 49, + 49, + 49, + 131, + 131, + 212, + 251, + 251, + 372, + 372, + 42, + 42, + 153, + 222, + 222, + 222, + 222, + 254, + 254, + 340, + 340, + 13, + 13, + 13, + 13, + 98, + 98, + 190, + 301, + 38, + 354, + 354, + 38, + 131, + 169, + 283, + 391, + 13, + 158, + 158, + 237, + 276, + 276, + 276, + 276, + 344, + 344, + 344, + 344, + 28, + 137, + 137, + 137, + 137, + 181, + 181, + 279, + 279, + 279, + 359, + 359, + 359, + 17, + 17, + 157, + 228, + 228, + 281, + 326, + 23, + 23, + 159, + 159, + 159, + 225, + 298, + 325, + 325, + 325, + 325, + 325, + 53, + 53, + 53, + 53, + 83, + 234, + 234, + 234, + 249, + 249, + 345, + 19, + 100, + 100, + 181, + 289, + 289, + 396, + 0, + 0, + 142, + 239, + 239, + 319, + 141, + 215, + 215, + 227, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 117, + 81, + 81, + 81, + 17, + 81, + 81, + 6, + 117, + 117, + 285, + 285, + 329, + 40, + 319, + 367, + 367, + 56, + 56, + 56, + 252, + 252, + 4, + 250, + 128, + 194, + 250, + 250, + 250, + 250, + 9, + 101, + 234, + 234, + 234, + 278, + 278, + 361, + 361, + 55, + 220, + 260, + 24, + 24, + 220, + 220, + 220, + 220, + 220, + 354, + 71, + 71, + 71, + 71, + 204, + 267, + 267, + 30, + 30, + 217, + 217, + 29, + 294, + 294, + 294, + 29, + 29, + 93, + 93, + 93, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 278, + 278, + 278, + 278, + 278, + 278, + 278, + 357, + 357, + 15, + 15, + 15, + 107, + 203, + 318, + 318, + 9, + 133, + 133, + 230, + 230, + 230, + 270, + 352, + 5, + 154, + 154, + 154, + 169, + 169, + 282, + 57, + 57, + 85, + 85, + 85, + 194, + 194, + 194, + 194, + 253, + 38, + 92, + 92, + 163, + 334, + 334, + 22, + 127, + 127, + 127, + 188, + 188, + 73, + 73, + 94, + 217, + 55, + 55, + 125, + 125, + 206, + 206, + 331, + 78, + 78, + 111, + 111, + 163, + 163, + 339, + 339, + 339, + 339, + 145, + 189, + 254, + 324, + 324, + 111, + 111, + 111, + 237, + 235, + 239, + 315, + 315, + 315, + 365, + 46, + 46, + 46, + 239, + 90, + 90, + 161, + 274, + 274, + 2, + 154, + 154, + 154, + 154, + 186, + 186, + 186, + 291, + 119, + 238, + 336, + 336, + 31, + 102, + 340, + 340, + 340, + 340, + 116, + 116, + 116, + 350, + 350, + 350, + 49, + 49, + 88, + 376, + 308, + 376, + 159, + 262, + 323, + 323, + 70, + 147, + 260, + 112, + 286, + 221, + 286, + 286, + 94, + 241, + 241, + 241, + 352, + 352, + 8, + 138, + 213, + 320, + 320, + 320, + 367, + 95, + 297, + 297, + 297, + 297, + 297, + 297, + 127, + 127, + 224, + 224, + 319, + 319, + 332, + 332, + 332, + 151, + 163, + 163, + 163, + 163, + 163, + 163, + 284, + 284, + 284, + 372, + 171, + 171, + 23, + 23, + 171, + 247, + 34, + 395, + 395, + 395, + 395, + 395, + 34, + 34, + 110, + 188, + 304, + 24, + 246, + 49, + 49, + 296, + 23, + 181, + 181, + 181, + 181, + 257, + 257, + 257, + 318, + 125, + 270, + 385, + 333, + 165, + 165, + 333, + 333, + 333, + 145, + 112, + 174, + 174, + 174, + 174, + 249, + 148, + 148, + 38, + 148, + 148, + 148, + 148, + 110, + 111, + 86, + 90, + 258, + 373, + 134, + 134, + 171, + 243, + 243, + 243, + 243, + 243, + 326, + 3, + 179, + 179, + 179, + 296, + 296, + 296, + 324, + 1, + 1, + 81, + 177, + 177, + 262, + 262, + 262, + 262, + 262, + 378, + 77, + 77, + 95, + 187, + 297, + 297, + 376, + 37, + 37, + 37, + 37, + 37, + 37, + 37, + 37, + 100, + 100, + 100, + 376, + 376, + 376, + 80, + 149, + 149, + 149, + 149, + 149, + 172, + 341, + 61, + 150, + 150, + 190, + 190, + 190, + 253, + 342, + 342, + 342, + 342, + 137, + 219, + 322, + 7, + 7, + 121, + 121, + 121, + 121, + 121, + 215, + 215, + 325, + 68, + 68, + 68, + 101, + 212, + 360, + 360, + 257, + 360, + 33, + 33, + 127, + 127, + 127, + 127, + 127, + 221, + 221, + 221, + 221, + 221, + 221, + 288, + 383, + 60, + 128, + 193, + 326, + 326, + 326, + 326, + 54, + 137, + 236, + 356, + 356, + 356, + 70, + 130, + 130, + 130, + 198, + 276, + 276, + 276, + 370, + 370, + 33, + 111, + 111, + 213, + 270, + 389, + 389, + 389, + 56, + 56, + 56, + 56, + 56, + 108, + 108, + 108, + 208, + 314, + 314, + 389, + 25, + 25, + 107, + 239, + 370, + 14, + 14, + 119, + 119, + 119, + 208, + 374, + 374, + 374, + 51, + 51, + 51, + 105, + 105, + 105, + 105, + 105, + 189, + 189, + 318, + 374, + 374, + 374, + 374, + 58, + 58, + 58, + 58, + 58, + 90, + 191, + 191, + 191, + 191, + 241, + 387, + 387, + 387, + 387, + 38, + 94, + 94, + 229, + 250, + 373, + 373, + 30, + 30, + 30, + 97, + 161, + 242, + 242, + 323, + 72, + 72, + 133, + 133, + 271, + 385, + 385, + 47, + 47, + 47, + 143, + 143, + 143, + 143, + 143, + 211, + 296, + 296, + 296, + 335, + 335, + 335, + 335, + 2, + 153, + 209, + 258, + 361, + 361, + 361, + 361, + 67, + 67, + 163, + 154, + 163, + 396, + 164, + 313, + 227, + 227, + 169, + 169, + 271, + 271, + 271, + 271, + 330, + 79, + 107, + 169, + 169, + 169, + 319, + 347, + 347, + 347, + 347, + 130, + 164, + 285, + 107, + 107, + 107, + 107, + 163, + 163, + 300, + 300, + 300, + 300, + 300, + 300, + 397, + 397, + 397, + 397, + 35, + 108, + 222, + 299, + 204, + 288, + 327, + 336, + 129, + 129, + 129, + 129, + 192, + 262, + 323, + 154, + 224, + 224, + 244, + 371, + 371, + 144, + 144, + 144, + 283, + 334, + 115, + 257, + 213, + 213, + 257, + 175, + 175, + 301, + 84, + 84, + 51, + 84, + 84, + 171, + 171, + 276, + 117, + 117, + 117, + 181, + 290, + 363, + 233, + 233, + 34, + 34, + 149, + 149, + 233, + 295, + 380, + 35, + 35, + 121, + 195, + 336, + 48, + 133, + 190, + 88, + 88, + 88, + 88, + 186, + 367, + 367, + 124, + 124, + 363, + 363, + 100, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 384, + 195, + 195, + 195, + 195, + 298, + 83, + 83, + 222, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 128, + 203, + 203, + 243, + 379, + 39, + 219, + 269, + 23, + 23, + 46, + 15, + 278, + 144, + 144, + 218, + 218, + 304, + 375, + 375, + 57, + 271, + 271, + 16, + 42, + 397, + 327, + 25, + 25, + 129, + 196, + 318, + 318, + 318, + 318, + 318, + 377, + 377, + 377, + 34, + 130, + 244, + 244, + 68, + 68, + 68, + 68, + 364, + 364, + 364, + 68, + 201, + 201, + 283, + 30, + 234, + 264, + 264, + 26, + 123, + 123, + 123, + 207, + 207, + 338, + 19, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 19, + 284, + 376, + 19, + 245, + 245, + 15, + 199, + 266, + 68, + 68, + 68, + 68, + 304, + 304, + 304, + 78, + 78, + 353, + 78, + 203, + 203, + 303, + 303, + 153, + 238, + 238, + 301, + 301, + 301, + 301, + 301, + 102, + 102, + 207, + 318, + 318, + 318, + 373, + 373, + 32, + 119, + 119, + 119, + 119, + 180, + 307, + 61, + 121, + 240, + 287, + 287, + 287, + 369, + 369, + 369, + 1, + 153, + 191, + 298, + 32, + 32, + 183, + 183, + 183, + 103, + 103, + 103, + 103, + 103, + 183, + 285, + 73, + 182, + 316, + 316, + 80, + 80, + 197, + 197, + 197, + 197, + 110, + 110, + 197, + 197, + 276, + 276, + 344, + 65, + 156, + 156, + 156, + 156, + 156, + 177, + 177, + 260, + 351, + 107, + 228, + 228, + 228, + 252, + 189, + 183, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 291, + 291, + 116, + 291, + 291, + 54, + 54, + 284, + 194, + 284, + 284, + 34, + 194, + 300, + 392, + 392, + 392, + 96, + 96, + 96, + 161, + 307, + 79, + 92, + 155, + 171, + 171, + 290, + 290, + 326, + 63, + 306, + 97, + 97, + 97, + 230, + 230, + 230, + 306, + 306, + 25, + 159, + 262, + 262, + 32, + 269, + 269, + 358, + 358, + 80, + 266, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 312, + 338, + 102, + 102, + 102, + 102, + 102, + 368, + 368, + 368, + 124, + 73, + 124, + 278, + 278, + 278, + 278, + 278, + 367, + 367, + 367, + 367, + 367, + 367, + 367, + 77, + 123, + 177, + 177, + 177, + 177, + 391, + 391, + 47, + 47, + 123, + 123, + 225, + 225, + 387, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 102, + 207, + 344, + 344, + 7, + 201, + 22, + 210, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 243, + 243, + 243, + 243, + 234, + 234, + 234, + 243, + 77, + 84, + 233, + 387, + 387, + 387, + 38, + 38, + 143, + 363, + 363, + 79, + 128, + 188, + 188, + 188, + 14, + 14, + 14, + 14, + 118, + 196, + 310, + 22, + 203, + 203, + 361, + 361, + 361, + 361, + 314, + 314, + 314, + 314, + 361, + 49, + 49, + 49, + 49, + 49, + 49, + 84, + 222, + 222, + 391, + 391, + 54, + 54, + 127, + 127, + 164, + 164, + 164, + 385, + 47, + 82, + 82, + 82, + 179, + 179, + 179, + 179, + 179, + 179, + 281, + 281, + 346, + 59, + 59, + 97, + 97, + 97, + 165, + 165, + 292, + 363, + 363, + 38, + 38, + 99, + 172, + 172, + 289, + 399, + 75, + 98, + 98, + 236, + 314, + 314, + 314, + 314, + 321, + 321, + 321, + 26, + 26, + 26, + 98, + 221, + 308, + 373, + 7, + 123, + 224, + 224, + 298, + 298, + 324, + 324, + 15, + 15, + 15, + 15, + 15, + 93, + 168, + 168, + 168, + 293, + 382, + 24, + 192, + 192, + 192, + 261, + 356, + 356, + 356, + 0, + 169, + 309, + 309, + 389, + 236, + 236, + 285, + 357, + 314, + 282, + 282, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 207, + 300, + 393, + 62, + 319, + 384, + 384, + 384, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 353, + 53, + 296, + 395, + 8, + 8, + 8, + 130, + 130, + 206, + 206, + 206, + 316, + 343, + 37, + 109, + 109, + 109, + 109, + 109, + 224, + 224, + 270, + 270, + 334, + 334, + 43, + 96, + 96, + 238, + 238, + 257, + 257, + 348, + 32, + 169, + 169, + 169, + 56, + 56, + 195, + 126, + 126, + 126, + 126, + 126, + 195, + 258, + 258, + 258, + 258, + 354, + 354, + 354, + 354, + 61, + 155, + 155, + 155, + 223, + 306, + 306, + 397, + 397, + 14, + 130, + 240, + 397, + 397, + 397, + 62, + 230, + 230, + 391, + 186, + 186, + 257, + 367, + 367, + 367, + 104, + 104, + 207, + 303, + 370, + 232, + 232, + 232, + 209, + 209, + 250, + 250, + 209, + 50, + 291, + 50, + 203, + 203, + 203, + 161, + 161, + 161, + 386, + 161, + 161, + 161, + 161, + 161, + 161, + 161, + 161, + 355, + 355, + 66, + 189, + 375, + 375, + 375, + 375, + 375, + 375, + 231, + 231, + 231, + 231, + 392, + 392, + 392, + 152, + 178, + 254, + 254, + 391, + 391, + 211, + 211, + 211, + 265, + 55, + 55, + 55, + 214, + 95, + 95, + 95, + 214, + 214, + 69, + 292, + 292, + 69, + 121, + 194, + 194, + 194, + 194, + 38, + 38, + 38, + 230, + 230, + 230, + 7, + 7, + 7, + 7, + 7, + 157, + 229, + 229, + 197, + 346, + 63, + 63, + 197, + 116, + 116, + 116, + 116, + 394, + 116, + 116, + 187, + 187, + 316, + 316, + 199, + 180, + 36, + 194, + 194, + 65, + 348, + 348, + 348, + 27, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 211, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 369, + 6, + 76, + 367, + 21, + 21, + 102, + 227, + 227, + 227, + 256, + 256, + 393, + 393, + 163, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 156, + 156, + 156, + 183, + 93, + 192, + 192, + 261, + 261, + 261, + 391, + 114, + 294, + 347, + 130, + 130, + 130, + 130, + 256, + 286, + 298, + 35, + 35, + 35, + 87, + 165, + 165, + 165, + 267, + 267, + 267, + 267, + 267, + 353, + 353, + 353, + 353, + 353, + 2, + 2, + 157, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 295, + 295, + 295, + 348, + 348, + 50, + 84, + 84, + 84, + 198, + 273, + 32, + 144, + 144, + 245, + 245, + 245, + 192, + 245, + 384, + 48, + 48, + 48, + 48, + 84, + 175, + 277, + 277, + 277, + 328, + 71, + 81, + 81, + 81, + 81, + 213, + 284, + 336, + 336, + 0, + 0, + 0, + 0, + 150, + 252, + 252, + 252, + 324, + 324, + 324, + 7, + 7, + 109, + 223, + 257, + 397, + 14, + 14, + 14, + 14, + 14, + 127, + 127, + 208, + 286, + 286, + 336, + 51, + 131, + 131, + 131, + 131, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 351, + 351, + 351, + 351, + 351, + 351, + 351, + 57, + 57, + 138, + 175, + 175, + 273, + 273, + 374, + 374, + 9, + 82, + 201, + 201, + 350, + 350, + 23, + 23, + 152, + 152, + 152, + 152, + 204, + 43, + 97, + 218, + 218, + 393, + 393, + 393, + 393, + 64, + 223, + 47, + 160, + 8, + 133, + 178, + 300, + 300, + 361, + 227, + 244, + 344, + 344, + 344, + 344, + 231, + 304, + 360, + 0, + 305, + 305, + 368, + 368, + 74, + 74, + 296, + 211, + 246, + 310, + 310, + 246, + 254, + 310, + 310, + 289, + 2, + 2, + 105, + 105, + 105, + 105, + 105, + 105, + 173, + 258, + 258, + 356, + 58, + 58, + 153, + 228, + 228, + 228, + 228, + 228, + 246, + 246, + 362, + 362, + 362, + 81, + 81, + 81, + 81, + 81, + 204, + 204, + 256, + 359, + 359, + 248, + 242, + 223, + 386, + 62, + 62, + 62, + 126, + 126, + 126, + 126, + 126, + 126, + 187, + 187, + 187, + 187, + 288, + 322, + 322, + 322, + 322, + 346, + 128, + 182, + 182, + 182, + 182, + 243, + 9, + 161, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 277, + 384, + 384, + 384, + 384, + 384, + 11, + 130, + 170, + 170, + 170, + 170, + 170, + 303, + 58, + 58, + 109, + 166, + 166, + 294, + 0, + 0, + 386, + 0, + 147, + 147, + 287, + 287, + 16, + 86, + 86, + 86, + 86, + 185, + 302, + 20, + 20, + 137, + 137, + 137, + 137, + 208, + 395, + 22, + 141, + 141, + 238, + 238, + 238, + 263, + 263, + 375, + 41, + 106, + 180, + 180, + 180, + 180, + 180, + 180, + 376, + 57, + 57, + 132, + 175, + 175, + 373, + 373, + 373, + 44, + 44, + 125, + 125, + 125, + 125, + 125, + 216, + 216, + 216, + 216, + 216, + 274, + 274, + 274, + 274, + 341, + 341, + 47, + 125, + 193, + 245, + 333, + 333, + 14, + 156, + 156, + 163, + 163, + 279, + 279, + 341, + 341, + 0, + 103, + 348, + 252, + 348, + 348, + 348, + 72, + 72, + 141, + 253, + 325, + 27, + 27, + 149, + 192, + 246, + 384, + 384, + 384, + 76, + 76, + 76, + 76, + 149, + 149, + 149, + 149, + 206, + 252, + 373, + 373, + 373, + 373, + 373, + 373, + 14, + 138, + 138, + 138, + 138, + 227, + 227, + 227, + 227, + 260, + 260, + 260, + 370, + 28, + 157, + 292, + 368, + 76, + 76, + 159, + 159, + 159, + 159, + 216, + 216, + 266, + 266, + 330, + 330, + 330, + 59, + 59, + 59, + 59, + 156, + 156, + 201, + 201, + 297, + 297, + 297, + 375, + 10, + 10, + 140, + 140, + 260, + 358, + 8, + 81, + 215, + 215, + 400, + 7, + 7, + 352, + 0, + 0, + 108, + 108, + 353, + 9, + 161, + 161, + 36, + 136, + 136, + 200, + 308, + 308, + 308, + 390, + 12, + 12, + 155, + 155, + 155, + 224, + 389, + 131, + 226, + 261, + 335, + 207, + 215, + 6, + 154, + 352, + 38, + 38, + 359, + 359, + 98, + 98, + 98, + 359, + 359, + 359, + 188, + 289, + 139, + 139, + 382, + 382, + 16, + 16, + 139, + 139, + 199, + 199, + 289, + 289, + 289, + 381, + 52, + 52, + 82, + 82, + 174, + 174, + 247, + 247, + 247, + 397, + 397, + 397, + 75, + 130, + 130, + 130, + 130, + 213, + 253, + 352, + 352, + 352, + 77, + 77, + 156, + 228, + 228, + 228, + 244, + 33, + 33, + 124, + 124, + 273, + 338, + 338, + 14, + 145, + 49, + 135, + 135, + 395, + 141, + 380, + 125, + 125, + 125, + 131, + 131, + 131, + 180, + 131, + 123, + 123, + 145, + 145, + 125, + 83, + 83, + 83, + 142, + 142, + 109, + 109, + 134, + 86, + 82, + 82, + 82, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 381, + 42, + 271, + 271, + 49, + 49, + 163, + 279, + 135, + 380, + 22, + 135, + 135, + 135, + 135, + 168, + 168, + 343, + 233, + 233, + 246, + 234, + 234, + 250, + 15, + 232, + 232, + 51, + 165, + 32, + 32, + 32, + 32, + 115, + 115, + 203, + 203, + 203, + 203, + 247, + 22, + 22, + 165, + 165, + 318, + 141, + 235, + 276, + 91, + 286, + 357, + 357, + 262, + 262, + 272, + 272, + 272, + 79, + 103, + 234, + 234, + 272, + 272, + 272, + 272, + 272, + 46, + 46, + 144, + 180, + 180, + 180, + 180, + 180, + 277, + 68, + 114, + 114, + 204, + 65, + 65, + 144, + 144, + 226, + 226, + 43, + 43, + 43, + 121, + 121, + 196, + 196, + 196, + 196, + 271, + 333, + 333, + 21, + 108, + 108, + 283, + 283, + 114, + 368, + 368, + 114, + 114, + 162, + 354, + 354, + 99, + 208, + 323, + 102, + 102, + 66, + 66, + 66, + 102, + 102, + 102, + 102, + 187, + 258, + 360, + 360, + 360, + 360, + 360, + 360, + 360, + 49, + 49, + 145, + 186, + 186, + 312, + 341, + 341, + 30, + 151, + 218, + 218, + 250, + 390, + 7, + 7, + 7, + 7, + 200, + 317, + 317, + 400, + 400, + 400, + 400, + 400, + 2, + 154, + 320, + 320, + 320, + 375, + 109, + 242, + 200, + 242, + 242, + 242, + 242, + 348, + 348, + 348, + 146, + 203, + 303, + 358, + 65, + 65, + 65, + 65, + 65, + 65, + 182, + 312, + 364, + 364, + 364, + 38, + 38, + 242, + 376, + 376, + 376, + 102, + 318, + 318, + 318, + 343, + 343, + 343, + 343, + 257, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 337, + 274, + 274, + 339, + 51, + 86, + 223, + 223, + 223, + 262, + 61, + 84, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 58, + 58, + 58, + 58, + 191, + 241, + 241, + 241, + 79, + 79, + 246, + 246, + 365, + 365, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 5, + 88, + 161, + 161, + 161, + 161, + 161, + 161, + 247, + 247, + 350, + 350, + 36, + 36, + 36, + 90, + 192, + 314, + 314, + 314, + 331, + 331, + 331, + 331, + 69, + 69, + 69, + 69, + 197, + 197, + 257, + 380, + 380, + 73, + 73, + 151, + 151, + 151, + 151, + 151, + 151, + 151, + 151, + 221, + 278, + 278, + 385, + 385, + 15, + 81, + 163, + 163, + 341, + 3, + 3, + 3, + 125, + 204, + 291, + 291, + 60, + 60, + 125, + 239, + 15, + 15, + 15, + 15, + 15, + 15, + 96, + 209, + 365, + 122, + 174, + 174, + 253, + 134, + 134, + 134, + 134, + 213, + 213, + 213, + 213, + 290, + 290, + 290, + 369, + 369, + 147, + 163, + 262, + 244, + 244, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 395, + 65, + 65, + 213, + 17, + 17, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 150, + 150, + 379, + 379, + 379, + 58, + 58, + 140, + 62, + 289, + 62, + 62, + 373, + 62, + 111, + 12, + 154, + 302, + 302, + 62, + 23, + 1, + 1, + 47, + 90, + 90, + 90, + 90, + 233, + 308, + 308, + 308, + 308, + 308, + 218, + 218, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 191, + 393, + 393, + 393, + 393, + 28, + 28, + 28, + 28, + 154, + 154, + 195, + 352, + 352, + 55, + 89, + 89, + 89, + 89, + 89, + 89, + 89, + 227, + 227, + 320, + 320, + 320, + 350, + 350, + 350, + 71, + 227, + 227, + 10, + 239, + 239, + 239, + 239, + 315, + 315, + 315, + 315, + 170, + 170, + 321, + 321, + 321, + 321, + 321, + 81, + 81, + 81, + 170, + 311, + 373, + 138, + 200, + 264, + 264, + 264, + 264, + 264, + 104, + 15, + 15, + 104, + 180, + 180, + 302, + 302, + 302, + 302, + 111, + 399, + 399, + 111, + 226, + 226, + 266, + 266, + 327, + 80, + 80, + 80, + 80, + 125, + 227, + 227, + 227, + 227, + 270, + 330, + 330, + 330, + 53, + 53, + 155, + 155, + 194, + 194, + 253, + 253, + 253, + 253, + 253, + 253, + 342, + 41, + 103, + 103, + 103, + 103, + 103, + 199, + 256, + 353, + 42, + 42, + 99, + 295, + 44, + 84, + 282, + 282, + 282, + 384, + 384, + 38, + 38, + 38, + 86, + 259, + 350, + 350, + 350, + 350, + 350, + 23, + 23, + 117, + 117, + 117, + 117, + 117, + 312, + 312, + 312, + 378, + 45, + 154, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py new file mode 100644 index 0000000000..9566796ab4 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py @@ -0,0 +1,6 @@ +from roundrobin import build + + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 5 flows.""" + build(5).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.data b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.expect b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.expect new file mode 100644 index 0000000000..730ddb4049 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 121, + 203, + 203, + 275, + 330, + 243, + 329, + 329, + 329, + 310, + 291, + 310, + 256, + 268, + 354, + 354, + 380, + 130, + 262, + 307, + 80, + 80, + 80, + 363, + 40, + 40, + 106, + 106, + 106, + 106, + 106, + 106, + 242, + 242, + 242, + 388, + 299, + 299, + 325, + 325, + 325, + 243, + 243, + 243, + 176, + 243, + 243, + 321, + 61, + 287, + 125, + 95, + 95, + 95, + 125, + 125, + 125, + 296, + 296, + 306, + 145, + 145, + 205, + 205, + 205, + 309, + 309, + 309, + 309, + 83, + 171, + 341, + 341, + 341, + 79, + 125, + 212, + 212, + 133, + 215, + 215, + 215, + 215, + 215, + 238, + 318, + 216, + 216, + 216, + 221, + 306, + 80, + 80, + 221, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 168, + 231, + 231, + 11, + 11, + 11, + 241, + 312, + 312, + 98, + 12, + 98, + 98, + 98, + 98, + 98, + 98, + 98, + 98, + 181, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 281, + 281, + 281, + 281, + 314, + 3, + 82, + 82, + 82, + 82, + 167, + 167, + 219, + 219, + 219, + 219, + 300, + 366, + 36, + 36, + 69, + 162, + 254, + 330, + 330, + 60, + 82, + 177, + 238, + 372, + 372, + 90, + 90, + 183, + 293, + 293, + 293, + 293, + 219, + 293, + 378, + 21, + 21, + 150, + 150, + 150, + 150, + 150, + 253, + 253, + 323, + 323, + 66, + 66, + 66, + 66, + 66, + 98, + 98, + 98, + 98, + 98, + 129, + 203, + 203, + 203, + 251, + 391, + 21, + 21, + 90, + 90, + 119, + 119, + 267, + 209, + 209, + 209, + 209, + 267, + 267, + 267, + 267, + 267, + 267, + 305, + 305, + 305, + 305, + 305, + 305, + 0, + 0, + 0, + 0, + 0, + 76, + 76, + 151, + 217, + 217, + 250, + 250, + 318, + 11, + 11, + 89, + 89, + 89, + 220, + 220, + 290, + 332, + 332, + 332, + 113, + 113, + 113, + 113, + 18, + 113, + 208, + 276, + 276, + 276, + 276, + 276, + 343, + 343, + 343, + 343, + 91, + 170, + 246, + 246, + 246, + 308, + 81, + 161, + 161, + 161, + 161, + 161, + 161, + 161, + 297, + 297, + 297, + 356, + 356, + 95, + 95, + 95, + 95, + 95, + 183, + 354, + 354, + 354, + 354, + 63, + 63, + 109, + 255, + 346, + 346, + 86, + 120, + 300, + 300, + 300, + 306, + 306, + 306, + 6, + 191, + 374, + 162, + 256, + 310, + 310, + 310, + 120, + 278, + 388, + 388, + 378, + 223, + 310, + 238, + 332, + 332, + 157, + 157, + 222, + 303, + 303, + 45, + 220, + 220, + 400, + 269, + 269, + 269, + 269, + 269, + 400, + 180, + 180, + 248, + 248, + 359, + 359, + 54, + 103, + 103, + 103, + 252, + 351, + 351, + 351, + 351, + 41, + 121, + 218, + 218, + 296, + 400, + 87, + 154, + 154, + 332, + 332, + 332, + 332, + 332, + 7, + 182, + 182, + 227, + 380, + 380, + 165, + 301, + 12, + 12, + 195, + 255, + 255, + 255, + 312, + 312, + 312, + 312, + 312, + 312, + 144, + 144, + 8, + 8, + 8, + 144, + 201, + 286, + 286, + 323, + 40, + 195, + 397, + 41, + 152, + 380, + 128, + 128, + 128, + 128, + 367, + 367, + 367, + 367, + 367, + 367, + 367, + 367, + 36, + 198, + 337, + 51, + 149, + 149, + 149, + 149, + 310, + 310, + 154, + 154, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 244, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 30, + 30, + 30, + 30, + 164, + 164, + 256, + 362, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 14, + 123, + 382, + 382, + 142, + 122, + 82, + 181, + 181, + 321, + 92, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 237, + 348, + 43, + 43, + 43, + 80, + 206, + 387, + 387, + 387, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 79, + 79, + 79, + 207, + 207, + 338, + 338, + 143, + 143, + 143, + 217, + 366, + 13, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 3, + 105, + 105, + 105, + 105, + 353, + 353, + 353, + 353, + 51, + 51, + 51, + 241, + 241, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 2, + 135, + 135, + 209, + 240, + 333, + 333, + 208, + 208, + 255, + 255, + 255, + 255, + 255, + 255, + 347, + 42, + 42, + 42, + 74, + 189, + 189, + 189, + 213, + 223, + 360, + 360, + 360, + 360, + 81, + 81, + 109, + 203, + 256, + 361, + 361, + 361, + 9, + 9, + 85, + 144, + 260, + 260, + 260, + 260, + 348, + 348, + 348, + 59, + 175, + 175, + 175, + 175, + 223, + 223, + 339, + 40, + 107, + 107, + 107, + 71, + 107, + 235, + 360, + 360, + 30, + 188, + 282, + 282, + 282, + 363, + 363, + 363, + 26, + 26, + 26, + 26, + 194, + 194, + 235, + 235, + 382, + 64, + 149, + 149, + 249, + 249, + 398, + 398, + 92, + 92, + 168, + 206, + 206, + 257, + 382, + 382, + 24, + 24, + 24, + 184, + 184, + 299, + 316, + 101, + 239, + 320, + 132, + 132, + 256, + 256, + 393, + 393, + 393, + 87, + 181, + 181, + 201, + 254, + 325, + 86, + 86, + 86, + 154, + 154, + 260, + 309, + 309, + 309, + 309, + 34, + 105, + 105, + 222, + 305, + 305, + 305, + 305, + 16, + 16, + 16, + 95, + 112, + 112, + 112, + 215, + 215, + 215, + 313, + 313, + 313, + 20, + 76, + 76, + 76, + 76, + 141, + 141, + 379, + 55, + 55, + 320, + 108, + 320, + 33, + 33, + 316, + 316, + 316, + 98, + 98, + 312, + 313, + 313, + 313, + 13, + 13, + 13, + 304, + 331, + 142, + 142, + 287, + 301, + 121, + 7, + 88, + 121, + 272, + 272, + 272, + 272, + 272, + 346, + 17, + 17, + 239, + 239, + 226, + 226, + 52, + 128, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 77, + 77, + 159, + 292, + 292, + 292, + 292, + 292, + 206, + 206, + 292, + 386, + 386, + 147, + 238, + 238, + 187, + 364, + 75, + 179, + 237, + 237, + 40, + 87, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 295, + 295, + 295, + 295, + 295, + 394, + 16, + 16, + 75, + 190, + 190, + 219, + 219, + 219, + 219, + 234, + 234, + 234, + 392, + 392, + 35, + 166, + 166, + 394, + 200, + 343, + 175, + 175, + 321, + 321, + 321, + 321, + 321, + 321, + 150, + 192, + 192, + 192, + 306, + 306, + 306, + 53, + 113, + 113, + 113, + 255, + 362, + 144, + 144, + 233, + 161, + 161, + 323, + 323, + 72, + 190, + 190, + 331, + 222, + 222, + 331, + 37, + 92, + 197, + 266, + 309, + 309, + 309, + 0, + 0, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 173, + 173, + 173, + 173, + 173, + 256, + 308, + 308, + 308, + 45, + 45, + 181, + 242, + 242, + 354, + 354, + 354, + 354, + 50, + 77, + 113, + 113, + 274, + 274, + 274, + 321, + 51, + 51, + 51, + 51, + 154, + 269, + 324, + 324, + 324, + 324, + 324, + 21, + 86, + 86, + 86, + 86, + 86, + 86, + 132, + 299, + 365, + 365, + 0, + 99, + 99, + 150, + 267, + 267, + 362, + 362, + 362, + 46, + 46, + 46, + 167, + 167, + 220, + 220, + 220, + 220, + 220, + 238, + 380, + 380, + 160, + 299, + 370, + 127, + 127, + 212, + 212, + 212, + 287, + 319, + 319, + 142, + 142, + 297, + 297, + 297, + 397, + 397, + 397, + 162, + 293, + 386, + 23, + 174, + 281, + 281, + 281, + 150, + 150, + 150, + 150, + 150, + 222, + 128, + 237, + 237, + 313, + 148, + 40, + 148, + 186, + 186, + 312, + 312, + 312, + 293, + 293, + 293, + 312, + 312, + 312, + 312, + 312, + 29, + 97, + 170, + 170, + 264, + 264, + 324, + 46, + 68, + 165, + 323, + 323, + 323, + 323, + 32, + 32, + 179, + 69, + 69, + 69, + 179, + 272, + 320, + 14, + 14, + 14, + 14, + 14, + 14, + 70, + 70, + 129, + 129, + 129, + 129, + 129, + 365, + 365, + 23, + 72, + 154, + 154, + 338, + 338, + 338, + 338, + 261, + 261, + 261, + 261, + 338, + 91, + 91, + 132, + 132, + 132, + 132, + 218, + 358, + 87, + 87, + 185, + 333, + 79, + 186, + 275, + 275, + 67, + 67, + 67, + 101, + 101, + 297, + 117, + 299, + 339, + 339, + 339, + 339, + 46, + 85, + 85, + 85, + 155, + 155, + 226, + 92, + 92, + 109, + 109, + 255, + 167, + 188, + 188, + 132, + 132, + 132, + 132, + 132, + 79, + 132, + 260, + 260, + 332, + 11, + 11, + 184, + 231, + 231, + 304, + 63, + 63, + 186, + 280, + 330, + 330, + 160, + 170, + 170, + 158, + 158, + 97, + 97, + 97, + 155, + 178, + 178, + 199, + 125, + 155, + 155, + 155, + 122, + 122, + 150, + 150, + 150, + 397, + 397, + 63, + 194, + 194, + 194, + 80, + 194, + 298, + 298, + 214, + 298, + 304, + 71, + 71, + 128, + 128, + 128, + 295, + 295, + 339, + 74, + 167, + 167, + 285, + 327, + 327, + 327, + 57, + 57, + 75, + 75, + 195, + 264, + 264, + 264, + 264, + 264, + 264, + 264, + 318, + 318, + 318, + 318, + 62, + 173, + 173, + 173, + 274, + 398, + 398, + 32, + 118, + 118, + 272, + 310, + 310, + 310, + 43, + 43, + 43, + 110, + 110, + 202, + 288, + 351, + 3, + 3, + 3, + 83, + 83, + 83, + 186, + 186, + 186, + 186, + 351, + 26, + 26, + 71, + 71, + 158, + 158, + 158, + 158, + 314, + 55, + 55, + 55, + 120, + 120, + 323, + 323, + 58, + 58, + 58, + 80, + 80, + 80, + 235, + 171, + 235, + 339, + 339, + 339, + 339, + 339, + 339, + 65, + 65, + 65, + 74, + 74, + 74, + 192, + 236, + 349, + 349, + 349, + 9, + 9, + 9, + 9, + 164, + 245, + 372, + 372, + 49, + 49, + 136, + 353, + 34, + 119, + 304, + 266, + 266, + 266, + 266, + 304, + 26, + 26, + 26, + 26, + 178, + 178, + 178, + 178, + 178, + 239, + 350, + 350, + 350, + 350, + 49, + 134, + 134, + 134, + 134, + 134, + 291, + 291, + 291, + 291, + 291, + 318, + 43, + 43, + 43, + 43, + 124, + 357, + 357, + 22, + 22, + 22, + 22, + 148, + 208, + 208, + 208, + 300, + 300, + 300, + 8, + 131, + 57, + 57, + 129, + 129, + 325, + 28, + 28, + 145, + 145, + 145, + 145, + 22, + 148, + 160, + 142, + 142, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 48, + 48, + 246, + 246, + 246, + 393, + 393, + 15, + 15, + 237, + 334, + 91, + 245, + 245, + 99, + 295, + 295, + 295, + 295, + 295, + 295, + 384, + 384, + 384, + 275, + 324, + 187, + 390, + 122, + 122, + 299, + 333, + 198, + 254, + 254, + 66, + 103, + 298, + 298, + 10, + 10, + 398, + 398, + 10, + 102, + 102, + 237, + 237, + 237, + 317, + 317, + 164, + 213, + 245, + 245, + 245, + 245, + 245, + 245, + 320, + 20, + 20, + 74, + 150, + 267, + 267, + 325, + 325, + 14, + 92, + 92, + 190, + 190, + 190, + 190, + 287, + 287, + 287, + 344, + 51, + 180, + 241, + 241, + 241, + 241, + 241, + 367, + 367, + 367, + 367, + 23, + 23, + 23, + 114, + 114, + 271, + 382, + 382, + 382, + 5, + 5, + 5, + 143, + 74, + 143, + 231, + 231, + 395, + 395, + 395, + 395, + 153, + 153, + 153, + 153, + 83, + 153, + 277, + 277, + 378, + 155, + 246, + 337, + 337, + 337, + 15, + 88, + 200, + 200, + 203, + 278, + 394, + 124, + 124, + 124, + 291, + 309, + 155, + 155, + 23, + 23, + 155, + 311, + 311, + 311, + 311, + 63, + 63, + 149, + 149, + 279, + 397, + 63, + 63, + 63, + 63, + 194, + 374, + 374, + 52, + 52, + 52, + 246, + 246, + 246, + 246, + 330, + 330, + 330, + 4, + 4, + 367, + 37, + 350, + 350, + 350, + 60, + 60, + 378, + 378, + 102, + 102, + 102, + 233, + 233, + 314, + 156, + 286, + 336, + 336, + 336, + 107, + 347, + 347, + 347, + 318, + 334, + 24, + 24, + 24, + 334, + 185, + 185, + 211, + 361, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 160, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 15, + 219, + 276, + 276, + 276, + 313, + 15, + 82, + 166, + 333, + 333, + 333, + 23, + 23, + 23, + 98, + 98, + 98, + 98, + 174, + 15, + 15, + 15, + 15, + 132, + 132, + 391, + 391, + 391, + 1, + 1, + 100, + 191, + 6, + 151, + 151, + 226, + 62, + 62, + 284, + 53, + 53, + 233, + 278, + 181, + 278, + 278, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 3, + 3, + 3, + 3, + 150, + 317, + 317, + 317, + 317, + 317, + 317, + 317, + 4, + 123, + 346, + 346, + 23, + 178, + 19, + 294, + 207, + 294, + 294, + 375, + 375, + 19, + 19, + 138, + 370, + 370, + 370, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 203, + 203, + 325, + 325, + 325, + 325, + 135, + 385, + 130, + 130, + 365, + 37, + 37, + 37, + 67, + 290, + 290, + 290, + 375, + 56, + 89, + 89, + 89, + 115, + 115, + 216, + 325, + 325, + 325, + 325, + 325, + 325, + 325, + 325, + 325, + 63, + 63, + 63, + 63, + 93, + 93, + 111, + 217, + 397, + 14, + 14, + 86, + 86, + 123, + 123, + 123, + 380, + 380, + 380, + 228, + 228, + 380, + 5, + 69, + 69, + 101, + 222, + 222, + 222, + 376, + 52, + 105, + 105, + 319, + 30, + 30, + 131, + 382, + 382, + 27, + 27, + 71, + 141, + 233, + 345, + 345, + 345, + 345, + 81, + 165, + 231, + 231, + 231, + 231, + 350, + 9, + 9, + 9, + 86, + 174, + 174, + 208, + 208, + 293, + 293, + 293, + 293, + 293, + 293, + 365, + 365, + 365, + 365, + 365, + 26, + 94, + 224, + 330, + 330, + 97, + 97, + 97, + 97, + 260, + 260, + 260, + 260, + 360, + 292, + 302, + 208, + 296, + 368, + 398, + 360, + 360, + 360, + 360, + 360, + 36, + 36, + 309, + 367, + 98, + 98, + 98, + 253, + 253, + 253, + 352, + 352, + 0, + 341, + 335, + 341, + 276, + 341, + 301, + 65, + 65, + 65, + 65, + 65, + 65, + 304, + 99, + 304, + 304, + 30, + 141, + 336, + 47, + 47, + 236, + 394, + 394, + 394, + 367, + 367, + 371, + 391, + 391, + 391, + 360, + 311, + 362, + 338, + 338, + 338, + 338, + 375, + 277, + 112, + 277, + 375, + 230, + 230, + 230, + 49, + 49, + 49, + 233, + 34, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 61, + 61, + 73, + 73, + 263, + 263, + 400, + 17, + 17, + 17, + 111, + 198, + 198, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 155, + 155, + 325, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 322, + 322, + 322, + 322, + 322, + 18, + 18, + 18, + 106, + 106, + 106, + 231, + 382, + 382, + 382, + 382, + 382, + 382, + 28, + 152, + 152, + 297, + 297, + 367, + 36, + 196, + 106, + 117, + 117, + 106, + 31, + 290, + 290, + 290, + 308, + 308, + 308, + 308, + 308, + 308, + 31, + 80, + 119, + 235, + 235, + 350, + 137, + 137, + 137, + 117, + 117, + 117, + 117, + 117, + 124, + 389, + 389, + 41, + 41, + 124, + 124, + 263, + 263, + 394, + 394, + 197, + 252, + 252, + 376, + 26, + 26, + 26, + 108, + 108, + 108, + 260, + 302, + 302, + 12, + 12, + 155, + 155, + 309, + 309, + 309, + 309, + 12, + 12, + 149, + 202, + 290, + 384, + 118, + 118, + 118, + 118, + 118, + 236, + 381, + 381, + 123, + 207, + 276, + 276, + 358, + 186, + 186, + 246, + 246, + 387, + 93, + 93, + 93, + 182, + 296, + 296, + 296, + 388, + 69, + 125, + 125, + 218, + 218, + 218, + 218, + 231, + 386, + 386, + 76, + 177, + 226, + 343, + 23, + 23, + 23, + 23, + 80, + 119, + 119, + 119, + 119, + 397, + 397, + 397, + 397, + 397, + 17, + 17, + 187, + 336, + 101, + 101, + 92, + 101, + 101, + 101, + 211, + 211, + 299, + 299, + 355, + 355, + 355, + 355, + 10, + 96, + 96, + 96, + 105, + 360, + 360, + 10, + 10, + 10, + 10, + 118, + 118, + 118, + 118, + 118, + 118, + 210, + 271, + 271, + 366, + 366, + 366, + 61, + 125, + 125, + 125, + 379, + 53, + 53, + 53, + 148, + 148, + 148, + 342, + 138, + 138, + 138, + 230, + 394, + 394, + 25, + 68, + 68, + 68, + 167, + 222, + 222, + 222, + 353, + 353, + 41, + 146, + 146, + 146, + 319, + 319, + 319, + 57, + 130, + 130, + 130, + 130, + 331, + 115, + 365, + 86, + 112, + 335, + 159, + 159, + 159, + 29, + 29, + 29, + 29, + 29, + 159, + 159, + 208, + 272, + 379, + 379, + 379, + 104, + 220, + 372, + 123, + 355, + 355, + 158, + 158, + 97, + 97, + 158, + 158, + 391, + 105, + 105, + 382, + 382, + 262, + 218, + 366, + 218, + 16, + 16, + 383, + 16, + 67, + 113, + 295, + 295, + 340, + 340, + 340, + 16, + 81, + 159, + 159, + 159, + 159, + 246, + 246, + 246, + 246, + 246, + 373, + 51, + 88, + 124, + 260, + 193, + 193, + 193, + 250, + 152, + 253, + 189, + 189, + 198, + 198, + 198, + 131, + 25, + 25, + 25, + 198, + 198, + 250, + 32, + 32, + 32, + 73, + 73, + 117, + 386, + 69, + 187, + 270, + 270, + 344, + 344, + 344, + 344, + 186, + 249, + 249, + 249, + 332, + 332, + 332, + 332, + 332, + 38, + 187, + 187, + 187, + 187, + 219, + 233, + 386, + 386, + 386, + 386, + 64, + 103, + 214, + 214, + 300, + 66, + 190, + 190, + 253, + 280, + 278, + 106, + 71, + 71, + 150, + 296, + 398, + 398, + 398, + 172, + 172, + 23, + 23, + 23, + 172, + 205, + 205, + 389, + 389, + 27, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 125, + 125, + 218, + 218, + 241, + 241, + 11, + 11, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 11, + 11, + 11, + 11, + 96, + 139, + 225, + 225, + 225, + 225, + 381, + 381, + 38, + 72, + 160, + 295, + 295, + 391, + 391, + 391, + 16, + 16, + 16, + 166, + 298, + 298, + 354, + 55, + 55, + 55, + 55, + 168, + 168, + 243, + 325, + 325, + 23, + 23, + 23, + 135, + 250, + 250, + 304, + 59, + 59, + 147, + 147, + 266, + 266, + 383, + 28, + 261, + 377, + 53, + 53, + 234, + 234, + 234, + 353, + 353, + 10, + 82, + 82, + 341, + 26, + 81, + 81, + 81, + 338, + 338, + 194, + 338, + 33, + 33, + 91, + 91, + 91, + 139, + 330, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 330, + 24, + 76, + 76, + 172, + 207, + 242, + 380, + 26, + 26, + 179, + 179, + 313, + 264, + 264, + 313, + 313, + 313, + 313, + 313, + 313, + 51, + 161, + 161, + 161, + 161, + 161, + 386, + 23, + 23, + 165, + 165, + 251, + 251, + 251, + 251, + 251, + 342, + 342, + 62, + 62, + 114, + 114, + 239, + 372, + 372, + 372, + 32, + 32, + 32, + 124, + 246, + 367, + 367, + 367, + 367, + 367, + 259, + 304, + 263, + 263, + 91, + 263, + 358, + 358, + 204, + 251, + 251, + 251, + 344, + 258, + 258, + 344, + 339, + 359, + 359, + 308, + 340, + 365, + 213, + 213, + 213, + 73, + 16, + 73, + 49, + 68, + 138, + 62, + 85, + 85, + 85, + 324, + 324, + 392, + 316, + 205, + 153, + 153, + 205, + 288, + 316, + 22, + 118, + 118, + 315, + 145, + 145, + 212, + 254, + 37, + 37, + 195, + 195, + 181, + 394, + 39, + 39, + 219, + 377, + 265, + 377, + 377, + 5, + 100, + 217, + 217, + 223, + 223, + 223, + 223, + 223, + 223, + 321, + 321, + 52, + 52, + 67, + 176, + 176, + 286, + 319, + 319, + 0, + 73, + 73, + 73, + 73, + 204, + 204, + 287, + 287, + 287, + 343, + 28, + 28, + 78, + 78, + 207, + 229, + 229, + 229, + 229, + 229, + 229, + 335, + 335, + 16, + 67, + 368, + 9, + 400, + 400, + 400, + 38, + 38, + 348, + 249, + 348, + 34, + 231, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 129, + 129, + 218, + 218, + 241, + 350, + 25, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 200, + 200, + 290, + 338, + 338, + 3, + 3, + 3, + 90, + 189, + 391, + 391, + 54, + 54, + 73, + 73, + 73, + 118, + 261, + 397, + 397, + 397, + 397, + 185, + 225, + 225, + 302, + 302, + 85, + 365, + 102, + 231, + 231, + 231, + 231, + 316, + 186, + 186, + 186, + 283, + 377, + 377, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 189, + 189, + 189, + 249, + 249, + 393, + 121, + 121, + 218, + 218, + 234, + 343, + 115, + 115, + 94, + 115, + 115, + 211, + 234, + 308, + 308, + 56, + 56, + 56, + 56, + 145, + 145, + 234, + 400, + 400, + 103, + 64, + 103, + 229, + 229, + 394, + 394, + 394, + 27, + 115, + 296, + 336, + 336, + 188, + 209, + 260, + 306, + 306, + 90, + 90, + 129, + 241, + 301, + 112, + 228, + 228, + 228, + 327, + 12, + 119, + 119, + 119, + 212, + 212, + 212, + 212, + 274, + 385, + 385, + 18, + 114, + 114, + 393, + 393, + 12, + 140, + 140, + 216, + 314, + 314, + 314, + 58, + 58, + 179, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 380, + 9, + 9, + 183, + 183, + 183, + 277, + 277, + 277, + 386, + 386, + 386, + 386, + 6, + 6, + 119, + 259, + 259, + 259, + 259, + 259, + 259, + 340, + 124, + 124, + 124, + 124, + 248, + 388, + 145, + 145, + 145, + 226, + 353, + 353, + 353, + 167, + 20, + 167, + 167, + 231, + 231, + 367, + 367, + 12, + 12, + 185, + 330, + 137, + 137, + 309, + 146, + 146, + 288, + 203, + 203, + 203, + 288, + 324, + 77, + 133, + 207, + 207, + 299, + 299, + 299, + 325, + 325, + 153, + 203, + 203, + 244, + 324, + 324, + 16, + 16, + 100, + 141, + 166, + 31, + 166, + 166, + 245, + 245, + 245, + 375, + 375, + 17, + 17, + 17, + 104, + 273, + 273, + 333, + 193, + 193, + 193, + 241, + 241, + 333, + 67, + 196, + 196, + 196, + 196, + 267, + 267, + 348, + 348, + 92, + 115, + 240, + 349, + 349, + 143, + 143, + 143, + 215, + 215, + 347, + 180, + 176, + 94, + 176, + 176, + 30, + 137, + 124, + 162, + 162, + 279, + 279, + 279, + 19, + 141, + 141, + 141, + 216, + 216, + 216, + 216, + 216, + 223, + 223, + 333, + 333, + 38, + 38, + 99, + 150, + 214, + 214, + 214, + 224, + 224, + 224, + 349, + 349, + 349, + 349, + 349, + 27, + 80, + 80, + 195, + 203, + 203, + 391, + 146, + 146, + 146, + 146, + 349, + 349, + 149, + 162, + 162, + 162, + 162, + 52, + 216, + 216, + 257, + 257, + 332, + 332, + 332, + 332, + 52, + 97, + 97, + 198, + 258, + 65, + 65, + 112, + 89, + 89, + 112, + 112, + 112, + 262, + 262, + 262, + 332, + 332, + 61, + 147, + 147, + 147, + 299, + 361, + 44, + 44, + 165, + 268, + 357, + 357, + 357, + 357, + 27, + 27, + 151, + 297, + 399, + 399, + 399, + 24, + 127, + 127, + 271, + 321, + 321, + 123, + 268, + 324, + 135, + 244, + 154, + 70, + 70, + 154, + 154, + 154, + 270, + 270, + 270, + 153, + 269, + 179, + 179, + 179, + 286, + 286, + 374, + 374, + 374, + 374, + 374, + 70, + 134, + 134, + 134, + 288, + 388, + 189, + 189, + 249, + 313, + 110, + 286, + 192, + 233, + 113, + 113, + 247, + 385, + 385, + 192, + 231, + 231, + 231, + 97, + 107, + 224, + 126, + 396, + 396, + 161, + 161, + 161, + 206, + 206, + 206, + 206, + 206, + 231, + 352, + 0, + 83, + 122, + 355, + 171, + 266, + 266, + 340, + 54, + 54, + 267, + 267, + 267, + 267, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 128, + 128, + 128, + 273, + 395, + 198, + 198, + 49, + 49, + 198, + 247, + 361, + 13, + 13, + 192, + 253, + 378, + 38, + 164, + 164, + 219, + 264, + 369, + 169, + 252, + 361, + 144, + 278, + 278, + 278, + 278, + 400, + 121, + 121, + 238, + 302, + 302, + 175, + 326, + 326, + 326, + 136, + 338, + 129, + 230, + 342, + 183, + 183, + 183, + 28, + 28, + 28, + 93, + 93, + 183, + 183, + 183, + 298, + 325, + 325, + 29, + 29, + 75, + 145, + 145, + 247, + 247, + 247, + 307, + 37, + 78, + 133, + 133, + 245, + 245, + 245, + 394, + 100, + 130, + 331, + 85, + 193, + 272, + 386, + 386, + 386, + 386, + 39, + 39, + 170, + 247, + 247, + 388, + 388, + 185, + 185, + 269, + 305, + 156, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 110, + 110, + 110, + 217, + 289, + 289, + 379, + 182, + 224, + 355, + 134, + 338, + 338, + 69, + 143, + 143, + 202, + 164, + 299, + 299, + 299, + 377, + 377, + 4, + 4, + 91, + 91, + 143, + 143, + 143, + 236, + 316, + 316, + 316, + 17, + 17, + 17, + 17, + 17, + 91, + 185, + 185, + 185, + 236, + 304, + 8, + 8, + 8, + 8, + 83, + 83, + 83, + 116, + 116, + 116, + 274, + 274, + 274, + 274, + 392, + 392, + 45, + 45, + 76, + 149, + 149, + 225, + 384, + 384, + 80, + 161, + 161, + 260, + 384, + 125, + 252, + 252, + 252, + 397, + 397, + 5, + 100, + 159, + 238, + 88, + 26, + 388, + 388, + 388, + 388, + 388, + 26, + 88, + 155, + 255, + 197, + 245, + 180, + 180, + 249, + 112, + 112, + 175, + 62, + 175, + 115, + 115, + 344, + 77, + 77, + 355, + 355, + 297, + 297, + 297, + 355, + 355, + 78, + 184, + 279, + 395, + 395, + 395, + 395, + 49, + 89, + 89, + 89, + 180, + 180, + 274, + 358, + 53, + 160, + 160, + 205, + 287, + 398, + 121, + 121, + 121, + 394, + 188, + 217, + 123, + 177, + 177, + 342, + 177, + 93, + 43, + 43, + 115, + 115, + 115, + 224, + 378, + 378, + 378, + 378, + 378, + 378, + 378, + 378, + 43, + 43, + 43, + 92, + 92, + 166, + 166, + 166, + 279, + 387, + 387, + 4, + 4, + 4, + 4, + 92, + 136, + 136, + 207, + 207, + 207, + 207, + 267, + 334, + 334, + 57, + 57, + 57, + 57, + 57, + 93, + 200, + 200, + 201, + 258, + 258, + 320, + 59, + 128, + 214, + 214, + 214, + 300, + 369, + 36, + 173, + 173, + 296, + 296, + 296, + 302, + 302, + 15, + 15, + 15, + 15, + 153, + 218, + 218, + 218, + 218, + 218, + 285, + 341, + 341, + 341, + 341, + 341, + 341, + 23, + 73, + 73, + 73, + 73, + 128, + 128, + 128, + 128, + 232, + 334, + 334, + 334, + 58, + 67, + 165, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 334, + 53, + 53, + 53, + 135, + 297, + 342, + 131, + 131, + 150, + 150, + 296, + 150, + 179, + 179, + 339, + 179, + 321, + 146, + 146, + 146, + 31, + 31, + 83, + 83, + 83, + 83, + 146, + 286, + 286, + 335, + 10, + 10, + 74, + 74, + 193, + 270, + 303, + 29, + 99, + 99, + 130, + 130, + 130, + 236, + 236, + 236, + 345, + 50, + 100, + 100, + 103, + 204, + 204, + 267, + 267, + 316, + 316, + 16, + 195, + 209, + 209, + 209, + 259, + 259, + 259, + 259, + 377, + 377, + 377, + 377, + 23, + 103, + 103, + 103, + 204, + 204, + 221, + 348, + 348, + 58, + 124, + 124, + 219, + 250, + 250, + 250, + 250, + 250, + 250, + 397, + 63, + 97, + 182, + 182, + 182, + 246, + 246, + 246, + 349, + 120, + 120, + 48, + 120, + 257, + 257, + 344, + 128, + 128, + 74, + 74, + 128, + 240, + 352, + 186, + 211, + 211, + 211, + 379, + 379, + 159, + 319, + 270, + 270, + 319, + 319, + 319, + 319, + 319, + 130, + 279, + 368, + 368, + 368, + 35, + 35, + 168, + 322, + 178, + 178, + 178, + 178, + 178, + 178, + 55, + 55, + 55, + 55, + 76, + 178, + 178, + 178, + 266, + 390, + 390, + 161, + 329, + 112, + 217, + 385, + 385, + 104, + 104, + 104, + 219, + 248, + 347, + 347, + 347, + 347, + 129, + 129, + 366, + 194, + 194, + 194, + 194, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 345, + 345, + 345, + 66, + 130, + 130, + 295, + 364, + 112, + 382, + 382, + 42, + 42, + 42, + 175, + 258, + 258, + 380, + 144, + 144, + 226, + 357, + 153, + 265, + 265, + 265, + 390, + 390, + 390, + 180, + 180, + 180, + 180, + 282, + 282, + 282, + 377, + 377, + 5, + 5, + 5, + 165, + 165, + 233, + 376, + 376, + 376, + 376, + 55, + 55, + 55, + 55, + 137, + 276, + 318, + 318, + 144, + 251, + 251, + 251, + 251, + 399, + 170, + 170, + 275, + 319, + 319, + 319, + 77, + 105, + 105, + 105, + 217, + 217, + 217, + 217, + 217, + 217, + 383, + 383, + 241, + 383, + 42, + 185, + 345, + 55, + 55, + 200, + 200, + 350, + 188, + 188, + 26, + 26, + 26, + 26, + 188, + 188, + 217, + 248, + 382, + 382, + 382, + 382, + 156, + 156, + 156, + 212, + 289, + 289, + 289, + 289, + 289, + 387, + 88, + 88, + 88, + 127, + 349, + 127, + 321, + 161, + 340, + 10, + 157, + 263, + 376, + 60, + 150, + 150, + 355, + 355, + 355, + 355, + 340, + 340, + 318, + 325, + 325, + 326, + 354, + 345, + 231, + 345, + 345, + 345, + 41, + 76, + 76, + 190, + 190, + 354, + 354, + 208, + 208, + 208, + 208, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 354, + 30, + 179, + 296, + 340, + 59, + 59, + 175, + 299, + 329, + 329, + 329, + 185, + 204, + 329, + 85, + 309, + 309, + 334, + 313, + 183, + 219, + 282, + 282, + 370, + 127, + 163, + 163, + 85, + 138, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 174, + 18, + 133, + 133, + 368, + 45, + 183, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 318, + 318, + 318, + 157, + 211, + 259, + 259, + 156, + 156, + 218, + 218, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 34, + 34, + 73, + 73, + 169, + 251, + 339, + 6, + 169, + 169, + 396, + 396, + 224, + 224, + 396, + 396, + 4, + 181, + 349, + 176, + 176, + 154, + 154, + 213, + 269, + 154, + 260, + 260, + 260, + 260, + 393, + 393, + 32, + 163, + 163, + 215, + 215, + 215, + 215, + 258, + 343, + 343, + 343, + 213, + 213, + 393, + 15, + 15, + 334, + 334, + 40, + 375, + 375, + 252, + 252, + 252, + 252, + 153, + 252, + 252, + 375, + 40, + 120, + 245, + 387, + 387, + 387, + 387, + 387, + 387, + 387, + 387, + 55, + 55, + 159, + 159, + 159, + 159, + 272, + 302, + 302, + 35, + 35, + 173, + 229, + 229, + 229, + 229, + 229, + 317, + 149, + 149, + 149, + 54, + 149, + 233, + 391, + 391, + 391, + 391, + 169, + 259, + 259, + 259, + 259, + 205, + 259, + 259, + 333, + 179, + 288, + 323, + 323, + 323, + 125, + 125, + 125, + 285, + 365, + 158, + 247, + 343, + 343, + 90, + 90, + 90, + 182, + 182, + 182, + 256, + 213, + 256, + 256, + 256, + 344, + 154, + 154, + 154, + 154, + 154, + 268, + 356, + 356, + 46, + 84, + 84, + 84, + 84, + 130, + 130, + 228, + 228, + 228, + 325, + 52, + 52, + 52, + 144, + 269, + 383, + 17, + 187, + 269, + 368, + 15, + 15, + 72, + 144, + 295, + 295, + 335, + 335, + 335, + 53, + 75, + 111, + 111, + 297, + 297, + 297, + 297, + 297, + 297, + 326, + 326, + 62, + 62, + 91, + 91, + 191, + 191, + 280, + 280, + 398, + 398, + 398, + 398, + 398, + 398, + 3, + 181, + 181, + 294, + 294, + 294, + 294, + 294, + 294, + 294, + 385, + 385, + 385, + 385, + 385, + 66, + 119, + 264, + 340, + 340, + 126, + 126, + 61, + 126, + 250, + 250, + 334, + 334, + 334, + 334, + 334, + 22, + 22, + 22, + 69, + 103, + 213, + 252, + 352, + 104, + 54, + 104, + 266, + 339, + 339, + 64, + 64, + 64, + 64, + 155, + 155, + 155, + 155, + 274, + 274, + 327, + 51, + 67, + 193, + 193, + 193, + 230, + 230, + 336, + 336, + 26, + 68, + 68, + 169, + 279, + 279, + 345, + 345, + 345, + 63, + 63, + 63, + 63, + 63, + 70, + 164, + 241, + 241, + 241, + 351, + 351, + 45, + 45, + 45, + 147, + 289, + 289, + 289, + 289, + 289, + 289, + 350, + 350, + 5, + 92, + 140, + 232, + 232, + 232, + 310, + 310, + 310, + 310, + 7, + 131, + 244, + 244, + 363, + 363, + 363, + 363, + 19, + 110, + 262, + 327, + 327, + 200, + 200, + 200, + 211, + 211, + 267, + 267, + 377, + 34, + 109, + 246, + 378, + 146, + 146, + 339, + 339, + 126, + 126, + 231, + 386, + 386, + 386, + 386, + 386, + 386, + 47, + 47, + 47, + 95, + 95, + 95, + 164, + 164, + 209, + 209, + 209, + 355, + 355, + 26, + 197, + 197, + 197, + 395, + 235, + 395, + 395, + 395, + 63, + 63, + 94, + 161, + 161, + 224, + 224, + 224, + 224, + 224, + 25, + 142, + 183, + 183, + 183, + 175, + 179, + 179, + 146, + 270, + 146, + 87, + 87, + 146, + 146, + 146, + 146, + 229, + 199, + 281, + 281, + 281, + 281, + 33, + 156, + 273, + 273, + 22, + 22, + 101, + 207, + 207, + 207, + 207, + 100, + 119, + 154, + 99, + 156, + 393, + 393, + 203, + 203, + 203, + 393, + 393, + 393, + 226, + 226, + 393, + 23, + 179, + 37, + 108, + 115, + 281, + 281, + 281, + 346, + 346, + 346, + 346, + 346, + 346, + 346, + 25, + 82, + 82, + 82, + 115, + 240, + 383, + 113, + 113, + 113, + 15, + 86, + 86, + 113, + 316, + 316, + 115, + 115, + 61, + 61, + 115, + 340, + 121, + 375, + 375, + 375, + 375, + 135, + 135, + 230, + 376, + 376, + 294, + 294, + 85, + 10, + 83, + 151, + 151, + 151, + 151, + 354, + 354, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 47, + 206, + 206, + 318, + 240, + 364, + 364, + 96, + 14, + 96, + 96, + 160, + 160, + 364, + 155, + 155, + 155, + 155, + 364, + 341, + 190, + 190, + 190, + 190, + 283, + 329, + 329, + 69, + 164, + 164, + 59, + 172, + 172, + 390, + 41, + 41, + 41, + 164, + 164, + 216, + 216, + 216, + 216, + 275, + 275, + 275, + 275, + 275, + 326, + 93, + 186, + 186, + 186, + 288, + 306, + 37, + 37, + 37, + 37, + 37, + 37, + 180, + 230, + 312, + 8, + 8, + 8, + 8, + 197, + 224, + 331, + 331, + 218, + 218, + 239, + 239, + 239, + 239, + 352, + 352, + 177, + 177, + 177, + 343, + 54, + 54, + 94, + 137, + 336, + 1, + 179, + 212, + 376, + 39, + 39, + 152, + 224, + 224, + 385, + 385, + 55, + 182, + 182, + 182, + 182, + 208, + 309, + 309, + 4, + 137, + 275, + 275, + 322, + 322, + 39, + 181, + 351, + 5, + 5, + 184, + 184, + 325, + 325, + 325, + 63, + 63, + 63, + 63, + 63, + 187, + 187, + 187, + 187, + 187, + 247, + 247, + 247, + 335, + 335, + 141, + 141, + 141, + 206, + 206, + 206, + 206, + 206, + 206, + 238, + 388, + 63, + 101, + 204, + 204, + 242, + 242, + 389, + 42, + 191, + 322, + 32, + 114, + 114, + 345, + 0, + 185, + 185, + 374, + 282, + 282, + 282, + 374, + 374, + 28, + 94, + 164, + 228, + 372, + 56, + 142, + 142, + 254, + 345, + 109, + 109, + 205, + 292, + 292, + 336, + 336, + 123, + 228, + 228, + 228, + 307, + 89, + 150, + 220, + 297, + 310, + 310, + 310, + 310, + 310, + 283, + 283, + 343, + 164, + 241, + 241, + 198, + 277, + 277, + 277, + 277, + 352, + 261, + 273, + 273, + 273, + 273, + 273, + 273, + 273, + 180, + 255, + 255, + 361, + 270, + 244, + 182, + 182, + 182, + 81, + 81, + 182, + 238, + 238, + 238, + 238, + 357, + 357, + 357, + 21, + 21, + 21, + 79, + 352, + 33, + 95, + 298, + 389, + 389, + 282, + 339, + 383, + 383, + 342, + 297, + 56, + 56, + 297, + 154, + 297, + 297, + 297, + 297, + 297, + 342, + 342, + 7, + 7, + 7, + 75, + 75, + 196, + 238, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 77, + 222, + 222, + 222, + 341, + 136, + 241, + 241, + 241, + 241, + 241, + 241, + 319, + 55, + 89, + 197, + 298, + 339, + 10, + 310, + 310, + 310, + 310, + 310, + 310, + 54, + 234, + 360, + 360, + 360, + 5, + 5, + 217, + 217, + 111, + 111, + 111, + 111, + 217, + 217, + 217, + 255, + 255, + 340, + 340, + 2, + 2, + 74, + 74, + 120, + 120, + 120, + 220, + 220, + 267, + 361, + 361, + 43, + 43, + 212, + 261, + 261, + 261, + 334, + 24, + 24, + 202, + 202, + 107, + 107, + 107, + 202, + 231, + 307, + 307, + 307, + 24, + 96, + 186, + 186, + 186, + 207, + 223, + 223, + 223, + 342, + 7, + 269, + 269, + 269, + 313, + 164, + 221, + 221, + 376, + 90, + 90, + 210, + 210, + 210, + 298, + 360, + 360, + 32, + 32, + 148, + 262, + 399, + 65, + 65, + 288, + 307, + 6, + 6, + 6, + 6, + 299, + 327, + 266, + 342, + 252, + 380, + 380, + 24, + 24, + 82, + 194, + 194, + 256, + 256, + 328, + 104, + 230, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 50, + 79, + 158, + 158, + 158, + 158, + 390, + 91, + 176, + 308, + 203, + 203, + 203, + 229, + 229, + 229, + 229, + 54, + 165, + 165, + 297, + 133, + 85, + 189, + 271, + 271, + 271, + 40, + 135, + 135, + 170, + 170, + 170, + 170, + 122, + 215, + 122, + 142, + 142, + 142, + 288, + 288, + 288, + 142, + 198, + 106, + 86, + 363, + 363, + 86, + 122, + 122, + 122, + 122, + 242, + 242, + 242, + 16, + 16, + 16, + 105, + 281, + 281, + 372, + 372, + 372, + 188, + 188, + 188, + 188, + 272, + 386, + 189, + 214, + 284, + 389, + 389, + 43, + 43, + 103, + 103, + 213, + 213, + 277, + 277, + 277, + 277, + 315, + 195, + 293, + 293, + 373, + 373, + 373, + 78, + 120, + 235, + 235, + 343, + 343, + 194, + 258, + 301, + 187, + 245, + 347, + 347, + 73, + 73, + 147, + 147, + 147, + 147, + 147, + 209, + 209, + 229, + 229, + 229, + 229, + 229, + 229, + 310, + 18, + 18, + 83, + 109, + 256, + 376, + 376, + 376, + 185, + 236, + 236, + 328, + 328, + 14, + 189, + 286, + 286, + 286, + 396, + 32, + 32, + 32, + 32, + 32, + 32, + 119, + 204, + 204, + 286, + 286, + 379, + 49, + 49, + 49, + 173, + 217, + 217, + 345, + 345, + 345, + 345, + 345, + 162, + 162, + 162, + 31, + 96, + 162, + 222, + 222, + 390, + 161, + 161, + 161, + 161, + 352, + 194, + 296, + 359, + 359, + 359, + 148, + 148, + 148, + 148, + 254, + 254, + 320, + 200, + 200, + 330, + 81, + 123, + 123, + 123, + 123, + 346, + 10, + 10, + 10, + 10, + 10, + 194, + 245, + 245, + 245, + 245, + 330, + 37, + 37, + 189, + 253, + 339, + 188, + 188, + 188, + 57, + 81, + 188, + 258, + 258, + 319, + 319, + 18, + 18, + 129, + 368, + 368, + 368, + 19, + 19, + 19, + 19, + 19, + 157, + 201, + 348, + 54, + 54, + 54, + 149, + 287, + 359, + 359, + 17, + 17, + 122, + 243, + 338, + 338, + 338, + 167, + 47, + 47, + 47, + 47, + 47, + 47, + 76, + 76, + 76, + 76, + 76, + 76, + 167, + 363, + 85, + 167, + 340, + 146, + 146, + 146, + 369, + 369, + 369, + 369, + 369, + 300, + 369, + 16, + 16, + 16, + 16, + 131, + 131, + 131, + 381, + 128, + 128, + 128, + 128, + 128, + 128, + 315, + 315, + 142, + 259, + 259, + 351, + 130, + 130, + 130, + 372, + 229, + 229, + 229, + 229, + 229, + 372, + 182, + 182, + 182, + 256, + 256, + 303, + 153, + 234, + 332, + 332, + 332, + 332, + 115, + 296, + 309, + 173, + 363, + 167, + 167, + 167, + 307, + 49, + 110, + 110, + 110, + 334, + 195, + 385, + 129, + 362, + 362, + 173, + 352, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 46, + 195, + 195, + 195, + 195, + 195, + 217, + 371, + 12, + 12, + 91, + 91, + 91, + 126, + 372, + 9, + 156, + 346, + 346, + 346, + 48, + 104, + 219, + 219, + 219, + 219, + 219, + 219, + 286, + 399, + 399, + 399, + 399, + 36, + 36, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 171, + 256, + 366, + 366, + 366, + 12, + 12, + 12, + 133, + 133, + 242, + 355, + 54, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 185, + 213, + 265, + 265, + 265, + 265, + 329, + 329, + 0, + 0, + 177, + 177, + 177, + 203, + 238, + 238, + 238, + 238, + 303, + 303, + 106, + 270, + 396, + 169, + 258, + 258, + 258, + 258, + 258, + 382, + 161, + 246, + 342, + 57, + 182, + 182, + 182, + 182, + 370, + 275, + 275, + 370, + 370, + 79, + 162, + 243, + 243, + 389, + 28, + 199, + 296, + 296, + 296, + 296, + 304, + 304, + 161, + 11, + 11, + 11, + 11, + 68, + 161, + 283, + 283, + 351, + 174, + 209, + 397, + 19, + 182, + 182, + 182, + 182, + 252, + 301, + 301, + 55, + 81, + 81, + 189, + 189, + 374, + 54, + 54, + 54, + 175, + 175, + 175, + 219, + 219, + 65, + 101, + 286, + 286, + 330, + 34, + 34, + 85, + 169, + 169, + 169, + 169, + 169, + 260, + 395, + 13, + 13, + 13, + 98, + 122, + 122, + 253, + 377, + 0, + 0, + 170, + 334, + 334, + 334, + 334, + 334, + 334, + 47, + 75, + 75, + 75, + 115, + 220, + 266, + 363, + 363, + 130, + 84, + 130, + 347, + 131, + 131, + 354, + 354, + 354, + 53, + 67, + 171, + 326, + 326, + 165, + 380, + 380, + 76, + 76, + 76, + 76, + 194, + 21, + 134, + 134, + 201, + 201, + 260, + 397, + 59, + 187, + 269, + 379, + 42, + 180, + 180, + 209, + 353, + 353, + 353, + 193, + 336, + 251, + 251, + 251, + 336, + 336, + 336, + 75, + 191, + 243, + 243, + 328, + 328, + 328, + 328, + 328, + 328, + 136, + 136, + 264, + 264, + 386, + 386, + 123, + 273, + 273, + 389, + 19, + 165, + 165, + 352, + 352, + 36, + 36, + 36, + 36, + 36, + 36, + 190, + 331, + 331, + 142, + 142, + 397, + 397, + 158, + 108, + 389, + 142, + 142, + 142, + 171, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 365, + 171, + 262, + 262, + 160, + 160, + 160, + 284, + 284, + 324, + 324, + 324, + 324, + 324, + 324, + 130, + 246, + 246, + 246, + 324, + 170, + 9, + 9, + 170, + 170, + 265, + 265, + 338, + 29, + 83, + 102, + 264, + 264, + 98, + 98, + 150, + 150, + 150, + 293, + 293, + 397, + 26, + 26, + 90, + 148, + 229, + 356, + 356, + 356, + 3, + 3, + 3, + 3, + 80, + 109, + 247, + 247, + 247, + 322, + 7, + 7, + 150, + 234, + 366, + 366, + 7, + 7, + 7, + 92, + 92, + 152, + 212, + 212, + 322, + 322, + 65, + 74, + 153, + 153, + 36, + 321, + 36, + 91, + 146, + 146, + 320, + 4, + 116, + 263, + 263, + 23, + 161, + 161, + 365, + 365, + 92, + 102, + 224, + 224, + 224, + 310, + 131, + 350, + 350, + 350, + 105, + 105, + 105, + 105, + 295, + 295, + 295, + 295, + 295, + 397, + 150, + 317, + 159, + 356, + 356, + 356, + 108, + 108, + 108, + 108, + 295, + 324, + 138, + 138, + 138, + 178, + 118, + 344, + 236, + 236, + 344, + 118, + 211, + 211, + 211, + 211, + 266, + 266, + 266, + 363, + 363, + 35, + 151, + 151, + 385, + 3, + 151, + 318, + 40, + 40, + 40, + 123, + 113, + 349, + 349, + 16, + 221, + 221, + 355, + 355, + 149, + 208, + 208, + 208, + 208, + 292, + 347, + 347, + 347, + 92, + 92, + 92, + 92, + 138, + 138, + 138, + 239, + 239, + 303, + 303, + 111, + 111, + 225, + 225, + 321, + 38, + 38, + 38, + 152, + 152, + 253, + 353, + 353, + 72, + 129, + 235, + 142, + 142, + 142, + 142, + 294, + 104, + 226, + 226, + 387, + 171, + 130, + 176, + 95, + 95, + 95, + 176, + 237, + 237, + 237, + 237, + 237, + 350, + 350, + 350, + 350, + 11, + 102, + 102, + 102, + 320, + 320, + 320, + 29, + 29, + 155, + 155, + 385, + 385, + 2, + 126, + 126, + 126, + 4, + 4, + 176, + 176, + 176, + 176, + 22, + 80, + 152, + 152, + 203, + 387, + 31, + 31, + 31, + 86, + 86, + 86, + 170, + 170, + 230, + 11, + 11, + 92, + 92, + 92, + 92, + 122, + 122, + 327, + 327, + 327, + 90, + 0, + 0, + 0, + 0, + 90, + 101, + 87, + 298, + 353, + 87, + 87, + 182, + 182, + 182, + 182, + 182, + 182, + 182, + 335, + 335, + 335, + 335, + 335, + 72, + 128, + 128, + 128, + 128, + 236, + 382, + 382, + 93, + 278, + 278, + 337, + 337, + 337, + 40, + 99, + 210, + 210, + 210, + 297, + 377, + 41, + 41, + 41, + 77, + 77, + 77, + 77, + 126, + 126, + 126, + 126, + 235, + 321, + 1, + 176, + 176, + 267, + 267, + 267, + 337, + 337, + 66, + 66, + 66, + 152, + 223, + 327, + 327, + 327, + 21, + 21, + 21, + 21, + 99, + 135, + 216, + 216, + 216, + 216, + 216, + 216, + 243, + 340, + 340, + 340, + 340, + 50, + 77, + 77, + 192, + 284, + 373, + 28, + 28, + 69, + 69, + 185, + 185, + 279, + 279, + 279, + 322, + 48, + 86, + 196, + 196, + 196, + 196, + 207, + 207, + 239, + 353, + 25, + 74, + 74, + 74, + 74, + 74, + 177, + 216, + 283, + 375, + 375, + 37, + 37, + 79, + 79, + 194, + 194, + 265, + 208, + 208, + 208, + 265, + 336, + 64, + 166, + 166, + 166, + 166, + 166, + 166, + 219, + 219, + 254, + 254, + 348, + 348, + 348, + 348, + 55, + 55, + 71, + 71, + 163, + 163, + 163, + 213, + 213, + 244, + 244, + 244, + 342, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 188, + 188, + 241, + 241, + 334, + 334, + 61, + 61, + 61, + 138, + 273, + 273, + 392, + 392, + 15, + 161, + 237, + 349, + 121, + 285, + 378, + 36, + 36, + 36, + 36, + 36, + 36, + 100, + 171, + 171, + 171, + 171, + 171, + 247, + 247, + 247, + 5, + 5, + 137, + 258, + 258, + 258, + 348, + 348, + 348, + 29, + 29, + 197, + 226, + 25, + 161, + 292, + 292, + 16, + 197, + 197, + 197, + 197, + 197, + 259, + 259, + 22, + 118, + 118, + 4, + 4, + 146, + 123, + 84, + 84, + 84, + 117, + 117, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 206, + 206, + 355, + 355, + 355, + 355, + 56, + 169, + 169, + 214, + 214, + 214, + 214, + 258, + 371, + 254, + 378, + 378, + 378, + 196, + 196, + 97, + 97, + 97, + 196, + 196, + 216, + 216, + 216, + 224, + 224, + 146, + 292, + 5, + 5, + 5, + 5, + 5, + 91, + 119, + 119, + 292, + 36, + 36, + 36, + 36, + 36, + 36, + 36, + 36, + 136, + 136, + 136, + 136, + 298, + 298, + 298, + 384, + 384, + 384, + 384, + 384, + 88, + 194, + 194, + 194, + 211, + 211, + 223, + 223, + 223, + 223, + 223, + 397, + 36, + 139, + 139, + 251, + 251, + 207, + 251, + 251, + 317, + 104, + 298, + 333, + 333, + 333, + 38, + 72, + 72, + 168, + 168, + 237, + 237, + 237, + 329, + 329, + 329, + 329, + 329, + 329, + 61, + 106, + 279, + 360, + 360, + 101, + 101, + 101, + 101, + 101, + 101, + 101, + 297, + 297, + 313, + 313, + 313, + 56, + 184, + 227, + 387, + 387, + 193, + 193, + 205, + 291, + 340, + 340, + 28, + 28, + 28, + 28, + 115, + 225, + 334, + 15, + 15, + 147, + 283, + 331, + 331, + 331, + 38, + 38, + 140, + 140, + 140, + 281, + 333, + 333, + 24, + 184, + 184, + 274, + 375, + 8, + 8, + 8, + 190, + 338, + 213, + 213, + 213, + 213, + 274, + 274, + 338, + 338, + 338, + 108, + 234, + 322, + 322, + 119, + 383, + 125, + 125, + 190, + 81, + 81, + 81, + 190, + 190, + 190, + 190, + 286, + 286, + 366, + 366, + 366, + 366, + 85, + 85, + 85, + 111, + 111, + 111, + 228, + 322, + 170, + 170, + 253, + 317, + 317, + 172, + 318, + 318, + 318, + 3, + 77, + 110, + 110, + 110, + 307, + 20, + 77, + 162, + 162, + 348, + 42, + 294, + 294, + 348, + 311, + 311, + 335, + 172, + 172, + 285, + 285, + 285, + 335, + 197, + 197, + 197, + 197, + 197, + 276, + 276, + 276, + 276, + 276, + 276, + 381, + 381, + 381, + 283, + 384, + 377, + 377, + 353, + 353, + 342, + 233, + 342, + 342, + 87, + 87, + 35, + 35, + 87, + 103, + 219, + 219, + 267, + 267, + 267, + 362, + 362, + 135, + 303, + 59, + 143, + 143, + 143, + 336, + 59, + 348, + 348, + 348, + 179, + 179, + 294, + 294, + 294, + 396, + 396, + 89, + 135, + 389, + 389, + 389, + 249, + 249, + 249, + 249, + 249, + 389, + 84, + 183, + 243, + 324, + 324, + 74, + 74, + 198, + 198, + 261, + 261, + 321, + 90, + 140, + 240, + 240, + 240, + 240, + 240, + 350, + 350, + 350, + 161, + 284, + 284, + 345, + 49, + 118, + 300, + 383, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 78, + 78, + 186, + 265, + 334, + 143, + 143, + 143, + 354, + 354, + 189, + 306, + 182, + 182, + 182, + 211, + 398, + 23, + 180, + 180, + 180, + 180, + 180, + 180, + 353, + 353, + 43, + 192, + 305, + 12, + 12, + 136, + 318, + 318, + 155, + 280, + 280, + 280, + 280, + 198, + 215, + 141, + 87, + 141, + 141, + 141, + 214, + 214, + 330, + 50, + 149, + 149, + 116, + 116, + 116, + 116, + 216, + 216, + 216, + 350, + 194, + 194, + 326, + 199, + 376, + 376, + 376, + 376, + 376, + 31, + 31, + 184, + 184, + 184, + 184, + 263, + 263, + 320, + 56, + 120, + 297, + 297, + 398, + 398, + 1, + 182, + 182, + 182, + 182, + 182, + 182, + 343, + 11, + 11, + 98, + 98, + 186, + 320, + 65, + 65, + 83, + 83, + 189, + 189, + 189, + 241, + 241, + 363, + 363, + 363, + 363, + 363, + 363, + 363, + 363, + 170, + 170, + 377, + 138, + 138, + 307, + 307, + 148, + 148, + 148, + 381, + 381, + 381, + 381, + 129, + 388, + 388, + 84, + 138, + 138, + 138, + 138, + 138, + 203, + 203, + 203, + 203, + 303, + 303, + 1, + 149, + 233, + 233, + 216, + 216, + 233, + 233, + 233, + 368, + 14, + 84, + 189, + 189, + 189, + 189, + 189, + 216, + 216, + 358, + 4, + 69, + 183, + 399, + 49, + 179, + 179, + 368, + 368, + 49, + 49, + 119, + 119, + 94, + 119, + 119, + 202, + 223, + 362, + 362, + 362, + 28, + 118, + 118, + 215, + 288, + 288, + 383, + 28, + 119, + 358, + 27, + 112, + 112, + 72, + 72, + 72, + 112, + 112, + 358, + 21, + 21, + 83, + 128, + 355, + 10, + 10, + 156, + 358, + 115, + 30, + 115, + 247, + 247, + 348, + 348, + 135, + 135, + 293, + 388, + 388, + 388, + 173, + 370, + 130, + 367, + 181, + 111, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 335, + 47, + 47, + 185, + 239, + 239, + 339, + 42, + 122, + 122, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 22, + 22, + 79, + 187, + 399, + 9, + 9, + 156, + 156, + 328, + 328, + 56, + 145, + 145, + 339, + 339, + 282, + 339, + 61, + 61, + 61, + 61, + 61, + 137, + 137, + 137, + 137, + 137, + 249, + 249, + 249, + 249, + 249, + 320, + 320, + 2, + 120, + 120, + 288, + 288, + 354, + 354, + 15, + 15, + 180, + 180, + 180, + 228, + 228, + 309, + 12, + 12, + 12, + 226, + 314, + 39, + 39, + 39, + 39, + 286, + 286, + 286, + 337, + 48, + 48, + 239, + 354, + 354, + 354, + 25, + 139, + 278, + 309, + 309, + 269, + 376, + 294, + 350, + 63, + 71, + 71, + 125, + 125, + 237, + 375, + 40, + 40, + 40, + 40, + 109, + 109, + 109, + 222, + 222, + 380, + 20, + 268, + 394, + 59, + 124, + 124, + 124, + 221, + 221, + 221, + 221, + 147, + 296, + 108, + 108, + 213, + 213, + 288, + 395, + 395, + 74, + 74, + 74, + 197, + 197, + 197, + 277, + 339, + 107, + 107, + 283, + 365, + 193, + 248, + 308, + 308, + 71, + 399, + 236, + 399, + 399, + 399, + 93, + 93, + 101, + 273, + 365, + 195, + 195, + 195, + 195, + 195, + 346, + 28, + 28, + 28, + 163, + 269, + 393, + 393, + 36, + 36, + 113, + 223, + 223, + 223, + 223, + 223, + 396, + 396, + 57, + 191, + 202, + 202, + 264, + 318, + 25, + 25, + 25, + 25, + 161, + 161, + 161, + 161, + 161, + 161, + 231, + 231, + 371, + 135, + 265, + 385, + 385, + 385, + 5, + 5, + 141, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 398, + 41, + 41, + 111, + 245, + 331, + 331, + 96, + 96, + 133, + 133, + 133, + 133, + 224, + 375, + 375, + 375, + 375, + 375, + 11, + 95, + 146, + 294, + 388, + 5, + 5, + 161, + 161, + 241, + 340, + 105, + 105, + 382, + 187, + 187, + 51, + 51, + 187, + 304, + 16, + 150, + 301, + 140, + 361, + 361, + 294, + 294, + 294, + 361, + 361, + 6, + 163, + 163, + 163, + 298, + 369, + 31, + 93, + 179, + 179, + 179, + 179, + 202, + 202, + 202, + 251, + 350, + 350, + 350, + 350, + 350, + 89, + 141, + 240, + 396, + 396, + 396, + 33, + 190, + 190, + 190, + 190, + 190, + 190, + 222, + 222, + 334, + 334, + 189, + 224, + 318, + 318, + 318, + 318, + 318, + 53, + 53, + 53, + 80, + 197, + 306, + 17, + 151, + 151, + 203, + 203, + 318, + 318, + 318, + 318, + 318, + 318, + 318, + 318, + 12, + 198, + 198, + 317, + 317, + 317, + 104, + 104, + 340, + 94, + 179, + 335, + 160, + 160, + 301, + 103, + 234, + 340, + 155, + 279, + 279, + 311, + 169, + 201, + 201, + 149, + 164, + 164, + 164, + 164, + 164, + 155, + 113, + 175, + 290, + 290, + 290, + 290, + 290, + 175, + 175, + 276, + 145, + 187, + 336, + 282, + 336, + 336, + 336, + 336, + 187, + 187, + 363, + 60, + 60, + 152, + 359, + 54, + 54, + 70, + 369, + 98, + 203, + 203, + 346, + 49, + 341, + 312, + 201, + 201, + 312, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 363, + 1, + 1, + 166, + 14, + 147, + 147, + 147, + 208, + 208, + 208, + 303, + 65, + 65, + 170, + 170, + 170, + 170, + 382, + 382, + 382, + 44, + 44, + 44, + 191, + 191, + 191, + 191, + 212, + 388, + 15, + 15, + 15, + 199, + 393, + 393, + 45, + 45, + 45, + 45, + 45, + 45, + 95, + 95, + 95, + 126, + 349, + 349, + 237, + 237, + 349, + 349, + 74, + 259, + 259, + 366, + 97, + 277, + 393, + 40, + 40, + 40, + 40, + 40, + 79, + 79, + 79, + 79, + 115, + 115, + 260, + 353, + 353, + 3, + 73, + 138, + 374, + 313, + 313, + 295, + 313, + 313, + 36, + 243, + 305, + 305, + 152, + 152, + 238, + 391, + 391, + 391, + 391, + 111, + 111, + 217, + 217, + 217, + 217, + 356, + 356, + 18, + 147, + 147, + 352, + 160, + 160, + 53, + 67, + 67, + 160, + 160, + 267, + 18, + 18, + 18, + 126, + 126, + 126, + 126, + 126, + 351, + 36, + 345, + 345, + 27, + 27, + 323, + 272, + 323, + 323, + 323, + 45, + 99, + 211, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 27, + 232, + 36, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 283, + 283, + 355, + 21, + 270, + 378, + 378, + 378, + 378, + 7, + 69, + 69, + 142, + 142, + 210, + 210, + 229, + 229, + 229, + 229, + 374, + 374, + 48, + 48, + 48, + 48, + 48, + 69, + 69, + 69, + 111, + 216, + 272, + 272, + 272, + 313, + 38, + 122, + 218, + 232, + 232, + 232, + 340, + 340, + 340, + 44, + 44, + 103, + 225, + 225, + 307, + 307, + 49, + 175, + 230, + 230, + 399, + 399, + 399, + 136, + 240, + 240, + 240, + 382, + 382, + 382, + 382, + 382, + 36, + 36, + 36, + 36, + 160, + 251, + 251, + 316, + 63, + 63, + 63, + 116, + 227, + 366, + 0, + 0, + 0, + 0, + 0, + 0, + 199, + 199, + 199, + 273, + 273, + 273, + 370, + 370, + 370, + 370, + 370, + 370, + 32, + 151, + 151, + 285, + 285, + 325, + 325, + 325, + 61, + 121, + 253, + 312, + 112, + 112, + 112, + 112, + 112, + 239, + 239, + 239, + 322, + 322, + 322, + 77, + 195, + 202, + 237, + 237, + 237, + 319, + 89, + 154, + 301, + 189, + 189, + 189, + 65, + 65, + 65, + 65, + 189, + 374, + 123, + 123, + 393, + 156, + 156, + 156, + 209, + 290, + 290, + 399, + 399, + 127, + 127, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 335, + 72, + 72, + 130, + 130, + 203, + 235, + 308, + 308, + 82, + 245, + 245, + 245, + 361, + 180, + 93, + 180, + 180, + 180, + 295, + 385, + 385, + 370, + 370, + 370, + 366, + 152, + 152, + 207, + 207, + 77, + 180, + 104, + 344, + 157, + 383, + 383, + 383, + 220, + 383, + 383, + 383, + 9, + 9, + 158, + 158, + 158, + 20, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 13, + 13, + 201, + 201, + 201, + 201, + 201, + 201, + 258, + 310, + 13, + 71, + 120, + 120, + 208, + 269, + 333, + 333, + 162, + 162, + 337, + 337, + 337, + 337, + 83, + 83, + 40, + 83, + 180, + 98, + 63, + 370, + 86, + 86, + 370, + 31, + 31, + 186, + 186, + 241, + 366, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 26, + 237, + 237, + 321, + 321, + 394, + 391, + 290, + 322, + 51, + 313, + 39, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 285, + 47, + 47, + 47, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 100, + 100, + 100, + 100, + 196, + 196, + 230, + 230, + 328, + 328, + 138, + 226, + 226, + 226, + 226, + 226, + 226, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 101, + 282, + 282, + 396, + 396, + 396, + 396, + 214, + 261, + 261, + 363, + 363, + 363, + 363, + 363, + 363, + 76, + 236, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 279, + 279, + 211, + 279, + 136, + 219, + 223, + 174, + 286, + 286, + 286, + 286, + 144, + 387, + 387, + 97, + 97, + 169, + 39, + 87, + 87, + 87, + 87, + 87, + 87, + 87, + 87, + 145, + 145, + 145, + 203, + 203, + 203, + 232, + 7, + 119, + 119, + 119, + 229, + 381, + 381, + 37, + 37, + 80, + 145, + 256, + 44, + 152, + 152, + 100, + 152, + 152, + 152, + 260, + 382, + 382, + 382, + 382, + 65, + 176, + 254, + 55, + 128, + 128, + 128, + 296, + 296, + 392, + 392, + 392, + 19, + 139, + 221, + 221, + 221, + 221, + 221, + 221, + 315, + 36, + 36, + 36, + 197, + 197, + 197, + 197, + 381, + 34, + 34, + 189, + 189, + 243, + 243, + 243, + 243, + 324, + 324, + 324, + 54, + 137, + 137, + 137, + 137, + 137, + 261, + 393, + 393, + 65, + 169, + 315, + 315, + 315, + 315, + 63, + 188, + 231, + 231, + 231, + 312, + 56, + 168, + 351, + 351, + 62, + 62, + 107, + 106, + 301, + 150, + 150, + 304, + 187, + 113, + 113, + 291, + 90, + 113, + 113, + 113, + 237, + 237, + 216, + 216, + 216, + 237, + 237, + 355, + 355, + 355, + 355, + 19, + 194, + 194, + 194, + 194, + 206, + 282, + 282, + 282, + 282, + 329, + 329, + 329, + 16, + 16, + 16, + 16, + 16, + 88, + 88, + 145, + 281, + 398, + 398, + 398, + 3, + 173, + 296, + 368, + 61, + 180, + 180, + 180, + 348, + 348, + 101, + 101, + 309, + 136, + 136, + 136, + 330, + 180, + 254, + 176, + 177, + 177, + 144, + 271, + 144, + 144, + 144, + 269, + 142, + 142, + 254, + 322, + 21, + 21, + 141, + 141, + 36, + 151, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 260, + 260, + 306, + 13, + 72, + 344, + 62, + 56, + 56, + 170, + 26, + 26, + 26, + 86, + 151, + 151, + 151, + 151, + 202, + 289, + 289, + 362, + 2, + 2, + 172, + 172, + 66, + 66, + 154, + 21, + 148, + 22, + 22, + 134, + 134, + 34, + 162, + 250, + 250, + 389, + 146, + 346, + 200, + 200, + 390, + 390, + 390, + 390, + 390, + 200, + 110, + 136, + 136, + 282, + 252, + 252, + 320, + 320, + 320, + 320, + 320, + 46, + 46, + 158, + 158, + 252, + 210, + 253, + 253, + 253, + 253, + 220, + 240, + 268, + 27, + 27, + 27, + 27, + 165, + 300, + 300, + 307, + 307, + 39, + 39, + 74, + 114, + 114, + 114, + 114, + 252, + 252, + 252, + 252, + 252, + 61, + 61, + 393, + 393, + 393, + 61, + 61, + 100, + 100, + 100, + 100, + 140, + 236, + 236, + 236, + 24, + 90, + 90, + 116, + 116, + 116, + 116, + 279, + 279, + 279, + 279, + 279, + 354, + 354, + 66, + 66, + 99, + 99, + 161, + 161, + 262, + 321, + 321, + 1, + 82, + 151, + 151, + 283, + 314, + 314, + 16, + 16, + 16, + 86, + 86, + 86, + 86, + 86, + 180, + 286, + 309, + 13, + 13, + 13, + 13, + 13, + 76, + 129, + 330, + 41, + 41, + 41, + 41, + 113, + 113, + 354, + 354, + 354, + 62, + 62, + 152, + 152, + 152, + 152, + 394, + 107, + 188, + 189, + 361, + 361, + 361, + 90, + 148, + 145, + 370, + 279, + 370, + 59, + 59, + 145, + 229, + 229, + 229, + 229, + 391, + 391, + 41, + 41, + 89, + 89, + 89, + 112, + 283, + 283, + 283, + 400, + 400, + 400, + 400, + 84, + 106, + 275, + 275, + 275, + 275, + 275, + 334, + 334, + 114, + 114, + 206, + 300, + 300, + 379, + 194, + 252, + 252, + 337, + 17, + 111, + 253, + 253, + 253, + 306, + 99, + 99, + 139, + 139, + 139, + 139, + 139, + 254, + 81, + 148, + 270, + 270, + 270, + 270, + 270, + 396, + 72, + 181, + 209, + 209, + 264, + 342, + 342, + 342, + 24, + 24, + 24, + 24, + 67, + 140, + 140, + 140, + 140, + 140, + 202, + 313, + 35, + 200, + 200, + 212, + 212, + 357, + 357, + 357, + 67, + 67, + 144, + 202, + 346, + 88, + 88, + 88, + 88, + 162, + 206, + 256, + 256, + 308, + 49, + 49, + 148, + 148, + 148, + 148, + 148, + 148, + 264, + 264, + 335, + 335, + 52, + 52, + 162, + 242, + 380, + 154, + 154, + 260, + 303, + 303, + 303, + 36, + 101, + 101, + 255, + 255, + 393, + 34, + 122, + 251, + 331, + 331, + 29, + 29, + 29, + 29, + 29, + 29, + 75, + 75, + 133, + 133, + 377, + 377, + 377, + 377, + 377, + 91, + 164, + 164, + 289, + 289, + 289, + 348, + 348, + 95, + 95, + 147, + 288, + 371, + 371, + 371, + 97, + 23, + 97, + 97, + 97, + 97, + 97, + 166, + 279, + 279, + 379, + 99, + 99, + 102, + 102, + 241, + 319, + 319, + 319, + 85, + 85, + 174, + 216, + 216, + 216, + 240, + 358, + 47, + 164, + 219, + 219, + 390, + 390, + 390, + 390, + 390, + 120, + 120, + 207, + 207, + 207, + 207, + 298, + 355, + 355, + 116, + 62, + 116, + 116, + 116, + 256, + 256, + 363, + 0, + 180, + 229, + 229, + 229, + 387, + 387, + 387, + 387, + 387, + 387, + 387, + 387, + 54, + 54, + 54, + 120, + 120, + 287, + 287, + 356, + 39, + 39, + 125, + 125, + 253, + 390, + 390, + 24, + 24, + 24, + 24, + 24, + 24, + 187, + 287, + 287, + 373, + 116, + 275, + 355, + 355, + 355, + 355, + 47, + 47, + 95, + 199, + 199, + 199, + 199, + 326, + 115, + 115, + 211, + 291, + 291, + 331, + 331, + 37, + 37, + 37, + 98, + 199, + 199, + 199, + 323, + 323, + 3, + 189, + 384, + 85, + 57, + 57, + 85, + 104, + 305, + 96, + 184, + 184, + 367, + 269, + 367, + 367, + 81, + 81, + 142, + 142, + 142, + 142, + 257, + 382, + 149, + 149, + 260, + 301, + 29, + 29, + 29, + 82, + 186, + 280, + 335, + 335, + 335, + 335, + 21, + 162, + 162, + 213, + 213, + 213, + 263, + 372, + 372, + 372, + 372, + 16, + 135, + 216, + 234, + 234, + 320, + 320, + 102, + 102, + 229, + 394, + 130, + 263, + 263, + 302, + 163, + 163, + 278, + 397, + 397, + 179, + 179, + 211, + 245, + 245, + 245, + 336, + 15, + 86, + 142, + 142, + 142, + 142, + 142, + 142, + 243, + 243, + 362, + 362, + 136, + 314, + 209, + 209, + 209, + 314, + 314, + 130, + 336, + 336, + 336, + 336, + 82, + 82, + 173, + 173, + 173, + 319, + 319, + 109, + 379, + 379, + 379, + 379, + 189, + 189, + 189, + 189, + 189, + 189, + 189, + 189, + 253, + 369, + 63, + 188, + 238, + 383, + 140, + 326, + 106, + 106, + 106, + 106, + 334, + 120, + 149, + 149, + 267, + 267, + 327, + 19, + 19, + 149, + 207, + 330, + 29, + 29, + 29, + 29, + 29, + 198, + 198, + 198, + 198, + 255, + 255, + 255, + 170, + 10, + 10, + 10, + 170, + 239, + 50, + 151, + 78, + 78, + 151, + 276, + 276, + 276, + 58, + 195, + 195, + 195, + 195, + 12, + 12, + 12, + 213, + 364, + 364, + 12, + 92, + 142, + 142, + 142, + 142, + 142, + 230, + 392, + 392, + 39, + 39, + 199, + 381, + 381, + 381, + 161, + 335, + 56, + 86, + 86, + 86, + 109, + 367, + 87, + 87, + 180, + 180, + 209, + 198, + 358, + 198, + 106, + 164, + 191, + 253, + 191, + 191, + 252, + 252, + 195, + 195, + 279, + 279, + 279, + 328, + 140, + 140, + 241, + 241, + 241, + 4, + 174, + 174, + 96, + 174, + 174, + 240, + 240, + 70, + 20, + 20, + 70, + 70, + 70, + 194, + 194, + 271, + 271, + 271, + 378, + 57, + 73, + 176, + 239, + 321, + 17, + 17, + 17, + 139, + 217, + 257, + 257, + 323, + 323, + 29, + 29, + 29, + 29, + 29, + 130, + 260, + 370, + 57, + 57, + 57, + 57, + 57, + 150, + 236, + 390, + 390, + 24, + 182, + 228, + 374, + 123, + 123, + 123, + 292, + 302, + 302, + 2, + 92, + 92, + 172, + 288, + 304, + 153, + 266, + 266, + 384, + 384, + 45, + 45, + 45, + 45, + 45, + 45, + 156, + 207, + 207, + 207, + 254, + 301, + 301, + 1, + 1, + 1, + 1, + 167, + 394, + 394, + 394, + 394, + 9, + 9, + 151, + 268, + 332, + 332, + 26, + 199, + 199, + 354, + 354, + 354, + 354, + 354, + 354, + 354, + 354, + 17, + 149, + 149, + 149, + 149, + 149, + 232, + 232, + 302, + 302, + 302, + 28, + 28, + 28, + 28, + 155, + 155, + 269, + 330, + 330, + 50, + 50, + 50, + 187, + 187, + 238, + 238, + 330, + 330, + 21, + 186, + 186, + 186, + 270, + 339, + 64, + 199, + 217, + 217, + 323, + 114, + 114, + 316, + 0, + 144, + 144, + 331, + 147, + 379, + 183, + 183, + 371, + 371, + 210, + 371, + 85, + 85, + 85, + 127, + 397, + 397, + 48, + 140, + 140, + 293, + 342, + 5, + 5, + 142, + 142, + 142, + 227, + 315, + 315, + 315, + 315, + 12, + 12, + 92, + 92, + 92, + 165, + 165, + 165, + 285, + 285, + 377, + 101, + 101, + 101, + 255, + 330, + 175, + 175, + 239, + 239, + 398, + 398, + 34, + 194, + 265, + 265, + 339, + 339, + 339, + 339, + 31, + 192, + 297, + 342, + 342, + 342, + 342, + 342, + 66, + 66, + 66, + 66, + 84, + 182, + 281, + 281, + 281, + 281, + 388, + 388, + 51, + 51, + 119, + 119, + 282, + 395, + 395, + 395, + 395, + 68, + 68, + 132, + 255, + 255, + 215, + 255, + 384, + 43, + 43, + 43, + 76, + 200, + 263, + 263, + 400, + 400, + 64, + 126, + 279, + 279, + 363, + 172, + 172, + 287, + 380, + 380, + 188, + 188, + 188, + 255, + 346, + 139, + 264, + 317, + 317, + 317, + 353, + 235, + 333, + 333, + 333, + 168, + 86, + 168, + 366, + 366, + 69, + 392, + 342, + 342, + 342, + 342, + 342, + 19, + 149, + 255, + 255, + 255, + 255, + 255, + 255, + 323, + 123, + 371, + 274, + 388, + 388, + 388, + 388, + 359, + 359, + 327, + 57, + 181, + 181, + 250, + 327, + 327, + 327, + 327, + 56, + 56, + 56, + 310, + 34, + 364, + 364, + 364, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 266, + 266, + 54, + 116, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 215, + 251, + 32, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 244, + 388, + 388, + 55, + 74, + 74, + 119, + 330, + 330, + 121, + 121, + 121, + 204, + 204, + 204, + 281, + 281, + 334, + 334, + 334, + 26, + 26, + 26, + 26, + 145, + 145, + 145, + 211, + 232, + 232, + 338, + 40, + 144, + 217, + 295, + 295, + 295, + 295, + 295, + 347, + 39, + 39, + 130, + 130, + 130, + 244, + 8, + 197, + 299, + 299, + 299, + 42, + 42, + 42, + 42, + 315, + 315, + 42, + 76, + 76, + 132, + 204, + 204, + 204, + 204, + 254, + 254, + 322, + 5, + 5, + 71, + 71, + 131, + 131, + 253, + 253, + 253, + 397, + 65, + 68, + 68, + 108, + 232, + 232, + 232, + 232, + 232, + 395, + 395, + 395, + 395, + 31, + 97, + 97, + 183, + 286, + 330, + 12, + 75, + 75, + 75, + 75, + 75, + 108, + 108, + 108, + 108, + 108, + 108, + 108, + 249, + 249, + 249, + 398, + 398, + 398, + 398, + 398, + 23, + 168, + 295, + 355, + 355, + 166, + 166, + 217, + 217, + 217, + 274, + 274, + 274, + 274, + 349, + 33, + 182, + 182, + 212, + 212, + 273, + 273, + 273, + 341, + 341, + 150, + 206, + 206, + 206, + 386, + 386, + 386, + 37, + 37, + 37, + 175, + 175, + 201, + 336, + 336, + 336, + 40, + 40, + 125, + 100, + 125, + 125, + 125, + 125, + 246, + 246, + 339, + 49, + 72, + 146, + 146, + 209, + 209, + 242, + 325, + 24, + 24, + 24, + 24, + 67, + 67, + 166, + 166, + 367, + 194, + 334, + 334, + 140, + 140, + 140, + 330, + 131, + 131, + 398, + 398, + 398, + 73, + 131, + 340, + 111, + 111, + 0, + 111, + 248, + 314, + 194, + 194, + 269, + 269, + 372, + 192, + 224, + 224, + 315, + 6, + 186, + 186, + 273, + 366, + 24, + 140, + 240, + 240, + 388, + 388, + 145, + 145, + 249, + 249, + 249, + 365, + 365, + 78, + 78, + 138, + 268, + 268, + 268, + 268, + 354, + 87, + 87, + 87, + 167, + 346, + 91, + 91, + 157, + 157, + 157, + 157, + 157, + 247, + 324, + 16, + 16, + 91, + 91, + 91, + 91, + 174, + 249, + 319, + 179, + 179, + 345, + 283, + 283, + 345, + 177, + 16, + 16, + 177, + 177, + 210, + 263, + 263, + 263, + 263, + 394, + 30, + 30, + 30, + 152, + 152, + 202, + 340, + 340, + 60, + 148, + 203, + 316, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 316, + 25, + 132, + 132, + 132, + 132, + 256, + 363, + 363, + 363, + 363, + 38, + 38, + 38, + 38, + 38, + 96, + 146, + 212, + 295, + 295, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 34, + 34, + 76, + 76, + 76, + 76, + 187, + 237, + 371, + 371, + 0, + 144, + 144, + 144, + 144, + 257, + 375, + 375, + 375, + 59, + 59, + 59, + 59, + 59, + 77, + 77, + 77, + 131, + 131, + 131, + 231, + 231, + 231, + 231, + 231, + 231, + 385, + 188, + 188, + 294, + 294, + 309, + 309, + 66, + 66, + 66, + 66, + 142, + 224, + 224, + 382, + 55, + 55, + 55, + 113, + 113, + 113, + 113, + 113, + 113, + 113, + 113, + 113, + 113, + 213, + 245, + 308, + 308, + 308, + 308, + 308, + 308, + 308, + 25, + 25, + 149, + 149, + 149, + 149, + 216, + 216, + 216, + 216, + 251, + 251, + 251, + 251, + 251, + 343, + 48, + 143, + 143, + 288, + 379, + 379, + 60, + 119, + 225, + 225, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 199, + 265, + 265, + 265, + 329, + 166, + 166, + 14, + 14, + 14, + 166, + 166, + 224, + 224, + 355, + 167, + 216, + 216, + 323, + 323, + 323, + 323, + 323, + 5, + 5, + 5, + 169, + 311, + 24, + 24, + 24, + 124, + 124, + 392, + 392, + 392, + 26, + 139, + 314, + 314, + 314, + 199, + 199, + 310, + 193, + 221, + 385, + 242, + 242, + 364, + 229, + 229, + 400, + 400, + 278, + 278, + 380, + 261, + 261, + 79, + 113, + 261, + 261, + 261, + 356, + 72, + 72, + 72, + 58, + 58, + 72, + 72, + 144, + 144, + 216, + 216, + 216, + 216, + 263, + 263, + 358, + 358, + 45, + 99, + 99, + 99, + 99, + 99, + 99, + 155, + 155, + 254, + 254, + 254, + 312, + 56, + 56, + 56, + 166, + 280, + 367, + 367, + 36, + 178, + 178, + 256, + 256, + 319, + 319, + 60, + 60, + 260, + 260, + 307, + 18, + 18, + 277, + 346, + 346, + 346, + 346, + 51, + 92, + 232, + 317, + 317, + 317, + 22, + 92, + 92, + 92, + 148, + 148, + 214, + 243, + 329, + 329, + 329, + 23, + 202, + 227, + 331, + 331, + 331, + 331, + 44, + 44, + 76, + 76, + 76, + 120, + 266, + 316, + 316, + 316, + 316, + 316, + 83, + 125, + 125, + 259, + 319, + 319, + 160, + 266, + 266, + 364, + 360, + 360, + 194, + 360, + 182, + 333, + 15, + 15, + 15, + 15, + 72, + 150, + 202, + 202, + 202, + 202, + 202, + 202, + 202, + 254, + 254, + 254, + 336, + 116, + 116, + 201, + 393, + 393, + 393, + 393, + 111, + 111, + 111, + 111, + 111, + 254, + 385, + 247, + 389, + 389, + 384, + 384, + 286, + 286, + 286, + 286, + 286, + 384, + 384, + 193, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 307, + 307, + 17, + 17, + 17, + 17, + 384, + 178, + 178, + 384, + 384, + 384, + 33, + 352, + 169, + 169, + 169, + 267, + 349, + 349, + 349, + 379, + 379, + 333, + 136, + 136, + 136, + 262, + 333, + 333, + 333, + 333, + 333, + 21, + 198, + 198, + 198, + 216, + 291, + 304, + 100, + 100, + 100, + 100, + 114, + 284, + 284, + 316, + 316, + 316, + 82, + 200, + 200, + 200, + 266, + 400, + 141, + 222, + 222, + 376, + 376, + 73, + 139, + 245, + 245, + 341, + 341, + 341, + 114, + 114, + 114, + 114, + 246, + 302, + 193, + 193, + 282, + 282, + 373, + 29, + 169, + 268, + 372, + 46, + 200, + 200, + 200, + 200, + 200, + 283, + 283, + 372, + 372, + 15, + 15, + 193, + 309, + 22, + 369, + 369, + 369, + 383, + 370, + 370, + 377, + 377, + 377, + 312, + 312, + 62, + 397, + 397, + 397, + 392, + 246, + 246, + 392, + 344, + 104, + 201, + 396, + 396, + 259, + 396, + 396, + 22, + 162, + 162, + 275, + 275, + 275, + 323, + 15, + 15, + 15, + 15, + 89, + 171, + 212, + 212, + 212, + 212, + 222, + 374, + 19, + 99, + 99, + 99, + 99, + 99, + 99, + 99, + 161, + 161, + 161, + 251, + 251, + 251, + 319, + 319, + 49, + 98, + 98, + 190, + 190, + 254, + 254, + 339, + 42, + 42, + 42, + 42, + 131, + 131, + 283, + 283, + 372, + 372, + 372, + 372, + 13, + 13, + 169, + 276, + 301, + 301, + 301, + 38, + 153, + 279, + 340, + 13, + 131, + 281, + 281, + 354, + 28, + 28, + 28, + 28, + 158, + 158, + 158, + 158, + 298, + 391, + 391, + 391, + 391, + 17, + 17, + 137, + 137, + 137, + 249, + 249, + 249, + 344, + 344, + 23, + 83, + 83, + 157, + 237, + 359, + 359, + 53, + 53, + 53, + 100, + 159, + 289, + 289, + 289, + 289, + 289, + 326, + 326, + 326, + 326, + 181, + 228, + 215, + 215, + 228, + 228, + 325, + 19, + 181, + 181, + 225, + 319, + 319, + 0, + 142, + 142, + 234, + 345, + 345, + 141, + 239, + 396, + 396, + 227, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 81, + 117, + 117, + 117, + 117, + 17, + 17, + 117, + 6, + 6, + 285, + 285, + 329, + 40, + 252, + 319, + 319, + 56, + 56, + 56, + 250, + 250, + 367, + 4, + 4, + 194, + 278, + 278, + 278, + 220, + 278, + 9, + 128, + 128, + 128, + 220, + 220, + 234, + 234, + 361, + 55, + 71, + 101, + 101, + 260, + 260, + 260, + 260, + 260, + 354, + 24, + 24, + 24, + 24, + 204, + 267, + 267, + 30, + 30, + 181, + 181, + 217, + 217, + 217, + 217, + 294, + 294, + 29, + 29, + 29, + 93, + 93, + 93, + 93, + 93, + 93, + 93, + 107, + 107, + 107, + 107, + 107, + 107, + 107, + 203, + 203, + 278, + 278, + 278, + 318, + 15, + 85, + 85, + 133, + 230, + 230, + 357, + 357, + 357, + 9, + 92, + 154, + 270, + 270, + 270, + 352, + 352, + 5, + 94, + 94, + 169, + 169, + 169, + 282, + 217, + 217, + 217, + 282, + 57, + 73, + 73, + 194, + 253, + 253, + 334, + 38, + 38, + 38, + 127, + 127, + 206, + 206, + 237, + 22, + 163, + 163, + 55, + 55, + 188, + 188, + 331, + 78, + 78, + 125, + 125, + 339, + 339, + 111, + 111, + 111, + 111, + 235, + 324, + 163, + 254, + 254, + 145, + 145, + 145, + 239, + 189, + 111, + 315, + 315, + 315, + 46, + 111, + 111, + 111, + 365, + 90, + 90, + 161, + 274, + 274, + 2, + 154, + 154, + 154, + 154, + 291, + 291, + 291, + 186, + 119, + 238, + 336, + 336, + 31, + 88, + 102, + 102, + 102, + 102, + 340, + 340, + 340, + 94, + 94, + 49, + 94, + 94, + 116, + 350, + 350, + 95, + 159, + 262, + 376, + 376, + 70, + 147, + 260, + 323, + 112, + 112, + 286, + 286, + 308, + 138, + 138, + 138, + 213, + 213, + 221, + 320, + 8, + 127, + 127, + 127, + 241, + 352, + 151, + 151, + 151, + 151, + 151, + 151, + 297, + 297, + 367, + 367, + 284, + 284, + 319, + 319, + 319, + 163, + 247, + 247, + 247, + 247, + 247, + 247, + 304, + 304, + 304, + 171, + 224, + 224, + 224, + 224, + 332, + 23, + 188, + 188, + 188, + 188, + 188, + 188, + 246, + 246, + 372, + 34, + 110, + 296, + 395, + 24, + 24, + 257, + 49, + 181, + 181, + 181, + 181, + 23, + 318, + 318, + 23, + 125, + 270, + 385, + 333, + 165, + 165, + 333, + 333, + 333, + 145, + 112, + 174, + 174, + 174, + 249, + 174, + 148, + 148, + 38, + 86, + 86, + 86, + 86, + 148, + 110, + 111, + 90, + 258, + 373, + 134, + 134, + 243, + 171, + 171, + 171, + 171, + 326, + 3, + 171, + 296, + 296, + 296, + 324, + 324, + 324, + 1, + 77, + 77, + 179, + 262, + 262, + 378, + 378, + 378, + 378, + 378, + 37, + 81, + 81, + 177, + 297, + 376, + 376, + 95, + 187, + 187, + 187, + 187, + 187, + 187, + 187, + 187, + 376, + 376, + 376, + 100, + 100, + 100, + 149, + 341, + 341, + 341, + 341, + 341, + 61, + 80, + 150, + 253, + 253, + 342, + 342, + 342, + 137, + 322, + 322, + 219, + 219, + 322, + 7, + 121, + 325, + 215, + 325, + 325, + 325, + 325, + 325, + 33, + 33, + 68, + 172, + 172, + 172, + 212, + 221, + 360, + 360, + 360, + 60, + 70, + 70, + 190, + 190, + 190, + 190, + 190, + 257, + 257, + 257, + 257, + 257, + 257, + 383, + 54, + 101, + 288, + 326, + 33, + 33, + 33, + 33, + 127, + 213, + 236, + 356, + 356, + 356, + 128, + 370, + 208, + 208, + 276, + 370, + 370, + 370, + 56, + 56, + 137, + 239, + 239, + 314, + 25, + 193, + 193, + 193, + 270, + 270, + 270, + 270, + 270, + 389, + 389, + 389, + 14, + 90, + 90, + 130, + 389, + 389, + 51, + 94, + 111, + 208, + 208, + 370, + 370, + 370, + 58, + 97, + 97, + 97, + 198, + 198, + 198, + 241, + 241, + 241, + 241, + 241, + 374, + 374, + 38, + 108, + 108, + 108, + 108, + 250, + 250, + 250, + 250, + 250, + 374, + 30, + 30, + 30, + 30, + 72, + 107, + 107, + 107, + 107, + 242, + 387, + 387, + 47, + 119, + 229, + 229, + 318, + 318, + 318, + 105, + 271, + 373, + 373, + 189, + 296, + 296, + 323, + 323, + 191, + 258, + 258, + 385, + 385, + 385, + 133, + 133, + 133, + 133, + 133, + 211, + 335, + 335, + 335, + 2, + 2, + 2, + 2, + 161, + 209, + 361, + 67, + 143, + 143, + 143, + 143, + 396, + 396, + 153, + 153, + 163, + 164, + 154, + 313, + 227, + 227, + 169, + 169, + 169, + 169, + 330, + 330, + 79, + 169, + 271, + 347, + 347, + 347, + 164, + 285, + 285, + 285, + 285, + 319, + 163, + 300, + 107, + 107, + 107, + 107, + 299, + 299, + 397, + 397, + 397, + 397, + 397, + 397, + 130, + 130, + 35, + 35, + 130, + 204, + 288, + 107, + 222, + 327, + 108, + 336, + 129, + 129, + 129, + 129, + 262, + 323, + 192, + 244, + 371, + 371, + 154, + 283, + 283, + 144, + 144, + 144, + 224, + 334, + 115, + 257, + 213, + 213, + 257, + 301, + 301, + 84, + 175, + 175, + 175, + 276, + 276, + 51, + 51, + 171, + 117, + 290, + 290, + 117, + 233, + 363, + 181, + 181, + 34, + 34, + 181, + 181, + 295, + 380, + 149, + 336, + 336, + 35, + 195, + 48, + 88, + 121, + 190, + 133, + 133, + 133, + 133, + 186, + 367, + 367, + 100, + 100, + 124, + 124, + 363, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 195, + 222, + 222, + 222, + 222, + 384, + 83, + 83, + 298, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 128, + 203, + 203, + 243, + 379, + 39, + 219, + 269, + 23, + 23, + 46, + 15, + 278, + 144, + 304, + 144, + 144, + 218, + 271, + 271, + 375, + 57, + 57, + 16, + 42, + 397, + 327, + 25, + 25, + 68, + 129, + 244, + 244, + 244, + 244, + 244, + 318, + 318, + 318, + 34, + 196, + 377, + 283, + 377, + 377, + 377, + 377, + 377, + 377, + 377, + 30, + 130, + 130, + 201, + 264, + 364, + 26, + 26, + 207, + 234, + 234, + 234, + 19, + 19, + 123, + 338, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 68, + 68, + 284, + 376, + 19, + 19, + 245, + 304, + 15, + 78, + 78, + 78, + 78, + 199, + 199, + 199, + 203, + 203, + 203, + 266, + 303, + 303, + 207, + 207, + 238, + 301, + 301, + 153, + 153, + 153, + 153, + 153, + 353, + 353, + 32, + 102, + 102, + 102, + 287, + 287, + 318, + 180, + 61, + 61, + 61, + 180, + 240, + 307, + 1, + 119, + 298, + 298, + 298, + 373, + 373, + 373, + 32, + 121, + 369, + 153, + 191, + 191, + 183, + 183, + 183, + 285, + 285, + 285, + 285, + 285, + 73, + 183, + 228, + 316, + 80, + 80, + 182, + 182, + 276, + 276, + 276, + 276, + 276, + 276, + 344, + 344, + 65, + 65, + 197, + 260, + 351, + 351, + 351, + 351, + 351, + 177, + 177, + 252, + 103, + 189, + 183, + 183, + 183, + 110, + 156, + 107, + 386, + 386, + 99, + 381, + 54, + 54, + 54, + 54, + 54, + 54, + 77, + 77, + 77, + 116, + 116, + 291, + 291, + 284, + 194, + 284, + 284, + 34, + 194, + 300, + 392, + 392, + 392, + 96, + 96, + 96, + 161, + 307, + 79, + 92, + 155, + 290, + 290, + 326, + 326, + 63, + 171, + 262, + 262, + 262, + 262, + 306, + 306, + 306, + 97, + 97, + 159, + 230, + 25, + 25, + 80, + 269, + 269, + 358, + 358, + 32, + 266, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 102, + 312, + 312, + 312, + 312, + 312, + 368, + 368, + 368, + 124, + 73, + 124, + 278, + 278, + 278, + 278, + 278, + 367, + 367, + 367, + 367, + 367, + 367, + 367, + 47, + 77, + 123, + 123, + 123, + 123, + 207, + 207, + 225, + 225, + 391, + 391, + 32, + 32, + 123, + 201, + 201, + 201, + 201, + 201, + 201, + 201, + 201, + 387, + 7, + 177, + 177, + 210, + 344, + 22, + 102, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 38, + 77, + 234, + 387, + 84, + 84, + 84, + 143, + 143, + 233, + 363, + 363, + 79, + 128, + 14, + 14, + 14, + 188, + 188, + 188, + 188, + 203, + 222, + 310, + 22, + 118, + 118, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 49, + 84, + 84, + 84, + 84, + 84, + 84, + 196, + 314, + 314, + 54, + 54, + 82, + 82, + 164, + 164, + 391, + 391, + 391, + 47, + 127, + 385, + 385, + 385, + 59, + 59, + 59, + 59, + 59, + 59, + 97, + 97, + 179, + 281, + 281, + 346, + 346, + 346, + 38, + 38, + 99, + 165, + 165, + 292, + 292, + 363, + 26, + 26, + 75, + 172, + 289, + 314, + 314, + 7, + 98, + 98, + 98, + 98, + 123, + 123, + 123, + 236, + 236, + 236, + 399, + 15, + 98, + 168, + 221, + 321, + 24, + 24, + 93, + 93, + 192, + 192, + 224, + 224, + 224, + 224, + 224, + 373, + 0, + 0, + 0, + 169, + 298, + 324, + 293, + 293, + 293, + 382, + 261, + 261, + 261, + 308, + 285, + 309, + 309, + 236, + 356, + 356, + 282, + 314, + 389, + 357, + 357, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 207, + 300, + 393, + 62, + 384, + 319, + 319, + 319, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 353, + 53, + 296, + 395, + 8, + 8, + 8, + 130, + 130, + 206, + 206, + 206, + 224, + 316, + 37, + 109, + 109, + 109, + 109, + 109, + 270, + 270, + 343, + 343, + 43, + 43, + 96, + 238, + 169, + 238, + 238, + 334, + 334, + 32, + 195, + 257, + 257, + 257, + 348, + 348, + 56, + 56, + 56, + 56, + 56, + 56, + 126, + 207, + 207, + 207, + 207, + 223, + 223, + 223, + 223, + 354, + 61, + 61, + 61, + 155, + 209, + 209, + 240, + 240, + 397, + 14, + 186, + 203, + 203, + 203, + 230, + 397, + 397, + 62, + 130, + 130, + 258, + 391, + 391, + 391, + 161, + 161, + 232, + 306, + 189, + 257, + 257, + 257, + 367, + 367, + 367, + 367, + 104, + 211, + 211, + 231, + 370, + 370, + 370, + 50, + 50, + 50, + 50, + 178, + 178, + 178, + 178, + 178, + 178, + 178, + 178, + 250, + 250, + 303, + 66, + 291, + 291, + 291, + 291, + 291, + 291, + 386, + 386, + 386, + 386, + 194, + 194, + 194, + 214, + 254, + 355, + 355, + 152, + 152, + 265, + 265, + 265, + 375, + 55, + 55, + 55, + 230, + 95, + 95, + 95, + 121, + 121, + 230, + 230, + 230, + 392, + 38, + 69, + 69, + 69, + 69, + 197, + 197, + 197, + 229, + 229, + 229, + 391, + 391, + 391, + 391, + 391, + 7, + 187, + 187, + 292, + 292, + 346, + 346, + 63, + 199, + 199, + 199, + 199, + 199, + 394, + 394, + 157, + 157, + 316, + 316, + 116, + 180, + 36, + 194, + 194, + 65, + 348, + 348, + 348, + 27, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 211, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 369, + 6, + 76, + 367, + 21, + 21, + 102, + 227, + 227, + 227, + 393, + 393, + 163, + 163, + 256, + 68, + 48, + 68, + 68, + 68, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 93, + 93, + 93, + 183, + 156, + 192, + 192, + 261, + 261, + 261, + 391, + 114, + 294, + 347, + 130, + 130, + 130, + 130, + 256, + 286, + 298, + 35, + 35, + 35, + 87, + 165, + 165, + 165, + 267, + 267, + 267, + 267, + 267, + 353, + 353, + 353, + 353, + 353, + 2, + 2, + 157, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 348, + 348, + 348, + 50, + 50, + 84, + 194, + 194, + 194, + 273, + 32, + 84, + 144, + 144, + 245, + 245, + 245, + 245, + 384, + 48, + 71, + 71, + 71, + 71, + 198, + 277, + 0, + 328, + 328, + 0, + 81, + 192, + 192, + 192, + 192, + 213, + 284, + 336, + 336, + 7, + 7, + 7, + 7, + 150, + 252, + 252, + 252, + 324, + 324, + 324, + 109, + 109, + 257, + 397, + 14, + 175, + 208, + 208, + 208, + 208, + 208, + 286, + 286, + 336, + 51, + 51, + 127, + 259, + 57, + 57, + 57, + 57, + 131, + 131, + 131, + 131, + 131, + 82, + 82, + 131, + 131, + 131, + 131, + 131, + 131, + 131, + 201, + 201, + 223, + 351, + 351, + 9, + 9, + 138, + 97, + 138, + 273, + 374, + 374, + 152, + 23, + 152, + 152, + 204, + 204, + 204, + 204, + 223, + 350, + 43, + 175, + 175, + 218, + 218, + 218, + 218, + 393, + 64, + 47, + 160, + 8, + 178, + 300, + 361, + 361, + 133, + 244, + 304, + 227, + 227, + 227, + 227, + 344, + 296, + 305, + 0, + 246, + 246, + 360, + 360, + 74, + 74, + 231, + 310, + 211, + 246, + 246, + 368, + 254, + 310, + 310, + 289, + 2, + 2, + 173, + 173, + 173, + 173, + 173, + 173, + 258, + 356, + 356, + 58, + 105, + 105, + 246, + 362, + 362, + 362, + 362, + 362, + 81, + 81, + 153, + 153, + 153, + 204, + 204, + 204, + 204, + 204, + 256, + 256, + 359, + 248, + 248, + 228, + 242, + 223, + 386, + 62, + 62, + 62, + 126, + 126, + 126, + 126, + 126, + 126, + 322, + 322, + 288, + 288, + 322, + 187, + 187, + 187, + 187, + 346, + 128, + 243, + 243, + 243, + 243, + 9, + 182, + 161, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 277, + 384, + 384, + 384, + 384, + 384, + 11, + 170, + 303, + 303, + 294, + 294, + 294, + 303, + 58, + 58, + 86, + 130, + 130, + 287, + 0, + 0, + 386, + 0, + 166, + 166, + 16, + 302, + 16, + 109, + 109, + 109, + 109, + 208, + 238, + 20, + 20, + 147, + 147, + 147, + 147, + 395, + 22, + 137, + 375, + 375, + 41, + 41, + 41, + 141, + 141, + 263, + 376, + 57, + 185, + 185, + 185, + 185, + 185, + 185, + 373, + 44, + 44, + 180, + 216, + 216, + 341, + 341, + 341, + 47, + 47, + 175, + 175, + 175, + 175, + 175, + 274, + 274, + 274, + 274, + 274, + 333, + 333, + 333, + 333, + 14, + 14, + 72, + 106, + 245, + 341, + 0, + 0, + 132, + 279, + 279, + 348, + 348, + 27, + 27, + 125, + 125, + 325, + 125, + 384, + 252, + 384, + 384, + 384, + 76, + 76, + 193, + 253, + 156, + 246, + 246, + 373, + 14, + 103, + 252, + 206, + 206, + 252, + 252, + 252, + 252, + 370, + 370, + 370, + 370, + 28, + 76, + 163, + 163, + 163, + 163, + 163, + 163, + 260, + 368, + 368, + 368, + 368, + 59, + 59, + 59, + 59, + 141, + 141, + 141, + 292, + 330, + 10, + 149, + 227, + 375, + 375, + 8, + 8, + 8, + 8, + 192, + 192, + 216, + 216, + 266, + 266, + 266, + 358, + 358, + 358, + 358, + 7, + 7, + 149, + 149, + 201, + 201, + 201, + 297, + 400, + 400, + 0, + 0, + 81, + 138, + 215, + 260, + 157, + 157, + 352, + 159, + 159, + 353, + 156, + 156, + 9, + 9, + 140, + 108, + 161, + 161, + 36, + 136, + 136, + 308, + 12, + 12, + 12, + 200, + 390, + 390, + 155, + 155, + 155, + 224, + 389, + 131, + 226, + 335, + 261, + 207, + 215, + 6, + 154, + 352, + 38, + 38, + 359, + 359, + 98, + 98, + 98, + 359, + 359, + 359, + 188, + 289, + 139, + 82, + 382, + 382, + 16, + 16, + 82, + 82, + 139, + 139, + 213, + 213, + 213, + 289, + 381, + 381, + 52, + 52, + 75, + 75, + 199, + 199, + 199, + 247, + 247, + 247, + 397, + 77, + 77, + 77, + 77, + 174, + 253, + 352, + 352, + 352, + 130, + 130, + 228, + 33, + 33, + 33, + 156, + 244, + 244, + 14, + 14, + 124, + 273, + 273, + 338, + 49, + 145, + 83, + 395, + 83, + 135, + 380, + 141, + 141, + 141, + 125, + 125, + 125, + 125, + 131, + 86, + 86, + 123, + 123, + 145, + 125, + 125, + 82, + 125, + 125, + 142, + 142, + 109, + 134, + 180, + 180, + 180, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 381, + 42, + 271, + 271, + 49, + 49, + 163, + 279, + 168, + 380, + 22, + 168, + 168, + 168, + 168, + 233, + 233, + 343, + 135, + 135, + 246, + 234, + 234, + 165, + 232, + 15, + 15, + 250, + 51, + 115, + 115, + 115, + 115, + 203, + 203, + 247, + 247, + 247, + 247, + 318, + 32, + 32, + 165, + 165, + 276, + 22, + 91, + 141, + 286, + 262, + 357, + 357, + 272, + 272, + 235, + 235, + 235, + 79, + 103, + 235, + 235, + 144, + 46, + 46, + 46, + 46, + 144, + 144, + 204, + 234, + 234, + 234, + 234, + 234, + 180, + 277, + 65, + 65, + 68, + 114, + 114, + 226, + 226, + 43, + 43, + 144, + 144, + 144, + 121, + 121, + 333, + 333, + 333, + 333, + 21, + 196, + 196, + 271, + 108, + 108, + 283, + 283, + 114, + 368, + 368, + 99, + 99, + 114, + 208, + 208, + 354, + 102, + 323, + 162, + 162, + 66, + 66, + 66, + 162, + 162, + 162, + 162, + 258, + 360, + 49, + 49, + 49, + 49, + 49, + 49, + 49, + 187, + 187, + 218, + 250, + 250, + 341, + 30, + 30, + 145, + 390, + 151, + 151, + 400, + 186, + 312, + 312, + 312, + 312, + 7, + 200, + 200, + 317, + 317, + 317, + 317, + 317, + 2, + 154, + 242, + 242, + 242, + 320, + 109, + 375, + 375, + 200, + 200, + 200, + 200, + 203, + 203, + 203, + 242, + 348, + 65, + 146, + 303, + 303, + 303, + 303, + 303, + 303, + 182, + 257, + 358, + 358, + 358, + 38, + 38, + 312, + 364, + 102, + 102, + 364, + 376, + 376, + 376, + 343, + 343, + 343, + 343, + 318, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 337, + 274, + 274, + 339, + 51, + 86, + 262, + 262, + 262, + 61, + 84, + 223, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 58, + 58, + 58, + 58, + 79, + 191, + 191, + 191, + 241, + 241, + 365, + 365, + 246, + 246, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 5, + 88, + 161, + 161, + 161, + 161, + 161, + 161, + 247, + 247, + 350, + 350, + 36, + 36, + 36, + 69, + 192, + 331, + 221, + 221, + 331, + 331, + 331, + 331, + 73, + 15, + 15, + 15, + 73, + 73, + 197, + 257, + 257, + 314, + 314, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 90, + 163, + 163, + 204, + 204, + 278, + 380, + 60, + 60, + 81, + 151, + 151, + 151, + 385, + 15, + 96, + 96, + 125, + 125, + 239, + 341, + 125, + 125, + 125, + 125, + 125, + 125, + 209, + 291, + 365, + 122, + 213, + 213, + 253, + 134, + 134, + 134, + 134, + 174, + 290, + 290, + 290, + 369, + 369, + 369, + 174, + 174, + 262, + 147, + 244, + 163, + 163, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 213, + 395, + 395, + 65, + 80, + 80, + 264, + 17, + 158, + 61, + 61, + 58, + 58, + 150, + 150, + 379, + 379, + 379, + 58, + 58, + 140, + 62, + 289, + 62, + 62, + 373, + 62, + 111, + 12, + 154, + 302, + 302, + 62, + 23, + 1, + 1, + 47, + 90, + 90, + 90, + 90, + 218, + 233, + 233, + 233, + 233, + 233, + 308, + 308, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 393, + 28, + 28, + 28, + 28, + 191, + 191, + 191, + 191, + 227, + 227, + 352, + 89, + 89, + 154, + 350, + 350, + 350, + 350, + 350, + 227, + 227, + 350, + 350, + 55, + 55, + 55, + 71, + 71, + 71, + 195, + 239, + 239, + 320, + 10, + 10, + 10, + 10, + 170, + 170, + 170, + 170, + 315, + 264, + 264, + 264, + 264, + 264, + 264, + 315, + 315, + 315, + 81, + 200, + 266, + 311, + 180, + 226, + 226, + 226, + 226, + 226, + 321, + 321, + 321, + 15, + 138, + 138, + 270, + 270, + 270, + 270, + 302, + 302, + 302, + 99, + 104, + 104, + 253, + 253, + 373, + 84, + 84, + 84, + 84, + 111, + 227, + 227, + 227, + 227, + 399, + 53, + 53, + 53, + 80, + 80, + 125, + 125, + 256, + 256, + 327, + 327, + 327, + 327, + 327, + 327, + 41, + 86, + 155, + 155, + 155, + 155, + 155, + 295, + 330, + 42, + 103, + 103, + 282, + 342, + 44, + 194, + 259, + 259, + 259, + 353, + 353, + 38, + 38, + 38, + 199, + 247, + 312, + 312, + 312, + 312, + 312, + 23, + 23, + 117, + 117, + 117, + 117, + 117, + 274, + 274, + 274, + 384, + 45, + 77, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py new file mode 100644 index 0000000000..997670ffc3 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py @@ -0,0 +1,6 @@ +from roundrobin import build + + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 6 flows.""" + build(6).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.data b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.expect b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.expect new file mode 100644 index 0000000000..3052111baf --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 243, + 121, + 243, + 243, + 275, + 330, + 203, + 329, + 329, + 329, + 310, + 291, + 310, + 256, + 268, + 354, + 354, + 380, + 130, + 262, + 307, + 80, + 80, + 80, + 363, + 40, + 40, + 106, + 106, + 106, + 106, + 106, + 106, + 242, + 242, + 242, + 299, + 388, + 388, + 243, + 243, + 243, + 287, + 287, + 287, + 287, + 325, + 325, + 176, + 321, + 61, + 125, + 125, + 125, + 125, + 296, + 296, + 296, + 306, + 306, + 95, + 145, + 145, + 205, + 205, + 171, + 205, + 205, + 205, + 205, + 309, + 83, + 125, + 125, + 125, + 212, + 341, + 79, + 79, + 133, + 215, + 215, + 215, + 215, + 215, + 318, + 238, + 221, + 221, + 221, + 216, + 306, + 80, + 80, + 221, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 168, + 231, + 231, + 11, + 11, + 11, + 241, + 312, + 312, + 98, + 12, + 98, + 98, + 98, + 98, + 98, + 98, + 98, + 98, + 181, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 281, + 281, + 281, + 281, + 314, + 3, + 82, + 82, + 82, + 82, + 167, + 167, + 238, + 238, + 238, + 238, + 300, + 366, + 36, + 36, + 69, + 150, + 162, + 219, + 219, + 254, + 330, + 60, + 177, + 293, + 293, + 372, + 372, + 82, + 183, + 183, + 183, + 183, + 183, + 219, + 253, + 378, + 378, + 21, + 21, + 21, + 21, + 21, + 90, + 90, + 129, + 129, + 250, + 250, + 250, + 250, + 250, + 251, + 251, + 251, + 251, + 251, + 323, + 21, + 21, + 21, + 66, + 119, + 203, + 151, + 203, + 203, + 267, + 267, + 391, + 391, + 391, + 391, + 391, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + 98, + 98, + 98, + 98, + 98, + 209, + 209, + 209, + 209, + 209, + 290, + 290, + 305, + 11, + 11, + 90, + 90, + 217, + 276, + 276, + 318, + 318, + 318, + 76, + 76, + 220, + 332, + 332, + 332, + 89, + 89, + 89, + 89, + 18, + 89, + 113, + 170, + 170, + 170, + 170, + 170, + 246, + 246, + 246, + 246, + 297, + 343, + 91, + 91, + 91, + 109, + 161, + 208, + 208, + 208, + 208, + 208, + 208, + 208, + 308, + 308, + 308, + 81, + 81, + 120, + 120, + 120, + 120, + 120, + 183, + 356, + 356, + 356, + 356, + 95, + 95, + 191, + 255, + 354, + 354, + 63, + 162, + 300, + 300, + 300, + 346, + 346, + 346, + 6, + 86, + 120, + 256, + 306, + 374, + 278, + 278, + 374, + 310, + 388, + 388, + 378, + 223, + 310, + 238, + 332, + 332, + 157, + 157, + 222, + 303, + 303, + 45, + 220, + 220, + 400, + 269, + 269, + 269, + 269, + 269, + 400, + 180, + 180, + 248, + 248, + 359, + 359, + 41, + 54, + 54, + 54, + 103, + 154, + 154, + 154, + 154, + 252, + 351, + 121, + 121, + 182, + 218, + 296, + 400, + 400, + 7, + 7, + 7, + 7, + 7, + 87, + 144, + 144, + 165, + 227, + 227, + 332, + 195, + 380, + 380, + 12, + 128, + 128, + 128, + 195, + 195, + 195, + 195, + 195, + 195, + 255, + 201, + 201, + 201, + 201, + 255, + 301, + 8, + 8, + 149, + 152, + 286, + 312, + 40, + 198, + 323, + 41, + 41, + 41, + 41, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 36, + 380, + 51, + 367, + 337, + 337, + 337, + 337, + 154, + 154, + 310, + 310, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 244, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 30, + 30, + 30, + 30, + 164, + 164, + 256, + 362, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 14, + 123, + 382, + 382, + 142, + 122, + 82, + 181, + 181, + 321, + 92, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 237, + 348, + 43, + 43, + 43, + 80, + 206, + 387, + 387, + 387, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 79, + 79, + 79, + 207, + 207, + 338, + 338, + 143, + 143, + 143, + 217, + 366, + 13, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 3, + 51, + 51, + 51, + 51, + 105, + 105, + 105, + 105, + 353, + 241, + 241, + 353, + 353, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 2, + 135, + 135, + 209, + 255, + 333, + 333, + 240, + 240, + 74, + 42, + 347, + 256, + 256, + 256, + 347, + 42, + 42, + 42, + 74, + 109, + 109, + 109, + 189, + 208, + 260, + 260, + 260, + 260, + 360, + 360, + 81, + 144, + 223, + 361, + 361, + 361, + 9, + 9, + 85, + 107, + 175, + 175, + 175, + 175, + 213, + 213, + 213, + 348, + 40, + 40, + 40, + 40, + 59, + 59, + 188, + 203, + 282, + 282, + 282, + 282, + 339, + 30, + 71, + 71, + 223, + 360, + 26, + 26, + 26, + 64, + 64, + 64, + 149, + 149, + 149, + 149, + 194, + 194, + 235, + 235, + 363, + 168, + 235, + 235, + 257, + 257, + 382, + 382, + 92, + 92, + 101, + 184, + 184, + 249, + 299, + 299, + 398, + 398, + 398, + 24, + 24, + 132, + 181, + 239, + 256, + 382, + 154, + 154, + 206, + 206, + 254, + 254, + 254, + 316, + 87, + 87, + 105, + 201, + 260, + 320, + 320, + 320, + 86, + 34, + 86, + 112, + 112, + 112, + 112, + 393, + 16, + 16, + 222, + 325, + 325, + 325, + 325, + 215, + 20, + 20, + 95, + 215, + 215, + 215, + 309, + 309, + 309, + 305, + 305, + 55, + 305, + 76, + 76, + 76, + 76, + 141, + 141, + 313, + 379, + 379, + 320, + 33, + 108, + 320, + 320, + 316, + 316, + 316, + 98, + 98, + 312, + 313, + 313, + 313, + 13, + 13, + 13, + 304, + 331, + 142, + 142, + 287, + 301, + 121, + 7, + 88, + 121, + 239, + 239, + 239, + 239, + 239, + 272, + 346, + 346, + 17, + 17, + 226, + 226, + 52, + 128, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 159, + 213, + 213, + 77, + 292, + 292, + 292, + 292, + 292, + 206, + 206, + 292, + 386, + 386, + 147, + 187, + 187, + 238, + 364, + 75, + 179, + 237, + 237, + 40, + 87, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 190, + 190, + 190, + 190, + 190, + 295, + 394, + 394, + 16, + 75, + 75, + 150, + 150, + 150, + 150, + 166, + 166, + 166, + 234, + 234, + 392, + 35, + 35, + 200, + 219, + 394, + 175, + 175, + 343, + 343, + 343, + 343, + 343, + 343, + 113, + 192, + 192, + 192, + 321, + 321, + 321, + 53, + 255, + 144, + 144, + 233, + 255, + 306, + 306, + 161, + 362, + 362, + 190, + 72, + 190, + 323, + 323, + 37, + 37, + 37, + 92, + 197, + 222, + 266, + 331, + 0, + 0, + 0, + 86, + 86, + 113, + 113, + 113, + 113, + 113, + 113, + 113, + 173, + 173, + 173, + 173, + 173, + 242, + 256, + 256, + 256, + 309, + 309, + 45, + 132, + 132, + 181, + 181, + 181, + 181, + 274, + 308, + 50, + 50, + 51, + 51, + 51, + 150, + 154, + 154, + 154, + 154, + 269, + 354, + 21, + 21, + 21, + 21, + 21, + 77, + 127, + 127, + 127, + 127, + 127, + 127, + 167, + 238, + 299, + 299, + 321, + 0, + 0, + 86, + 142, + 142, + 160, + 160, + 160, + 220, + 220, + 220, + 267, + 267, + 324, + 324, + 324, + 324, + 324, + 46, + 99, + 99, + 162, + 299, + 365, + 150, + 150, + 174, + 174, + 174, + 212, + 287, + 287, + 362, + 362, + 297, + 297, + 297, + 380, + 380, + 380, + 293, + 370, + 281, + 319, + 23, + 128, + 128, + 128, + 222, + 222, + 186, + 186, + 186, + 222, + 397, + 148, + 148, + 170, + 237, + 237, + 386, + 40, + 40, + 165, + 165, + 165, + 97, + 97, + 97, + 129, + 129, + 129, + 129, + 129, + 165, + 293, + 313, + 313, + 29, + 29, + 68, + 132, + 179, + 264, + 312, + 312, + 312, + 312, + 46, + 46, + 154, + 69, + 69, + 69, + 101, + 154, + 272, + 324, + 324, + 324, + 324, + 324, + 324, + 32, + 32, + 70, + 70, + 70, + 70, + 70, + 117, + 117, + 185, + 323, + 14, + 14, + 72, + 72, + 72, + 72, + 72, + 72, + 72, + 72, + 109, + 186, + 186, + 218, + 218, + 218, + 218, + 261, + 320, + 23, + 23, + 91, + 132, + 155, + 275, + 365, + 365, + 87, + 87, + 87, + 167, + 167, + 297, + 338, + 46, + 79, + 79, + 79, + 79, + 188, + 226, + 226, + 226, + 299, + 299, + 358, + 67, + 67, + 188, + 188, + 255, + 333, + 85, + 184, + 339, + 339, + 339, + 339, + 339, + 339, + 92, + 186, + 125, + 186, + 260, + 260, + 332, + 11, + 11, + 79, + 122, + 122, + 160, + 231, + 280, + 280, + 304, + 63, + 63, + 170, + 170, + 330, + 330, + 330, + 97, + 158, + 150, + 158, + 155, + 178, + 178, + 178, + 199, + 199, + 155, + 155, + 155, + 397, + 397, + 63, + 128, + 128, + 128, + 128, + 194, + 298, + 298, + 214, + 298, + 304, + 80, + 80, + 167, + 167, + 167, + 295, + 295, + 339, + 71, + 195, + 195, + 285, + 327, + 327, + 327, + 32, + 32, + 74, + 74, + 118, + 173, + 173, + 173, + 173, + 173, + 173, + 173, + 264, + 264, + 264, + 264, + 318, + 43, + 43, + 43, + 57, + 110, + 110, + 274, + 398, + 398, + 3, + 75, + 75, + 75, + 202, + 202, + 202, + 272, + 272, + 310, + 26, + 62, + 186, + 186, + 186, + 288, + 288, + 288, + 351, + 351, + 351, + 351, + 55, + 158, + 158, + 351, + 351, + 58, + 58, + 58, + 58, + 120, + 314, + 314, + 314, + 9, + 9, + 83, + 83, + 323, + 323, + 323, + 71, + 71, + 71, + 235, + 171, + 235, + 339, + 339, + 339, + 339, + 339, + 339, + 65, + 65, + 49, + 65, + 65, + 65, + 192, + 236, + 349, + 349, + 349, + 34, + 34, + 34, + 34, + 80, + 136, + 164, + 164, + 245, + 245, + 372, + 26, + 74, + 119, + 178, + 178, + 178, + 178, + 178, + 239, + 266, + 266, + 266, + 266, + 353, + 353, + 353, + 353, + 353, + 49, + 134, + 134, + 134, + 134, + 291, + 304, + 304, + 304, + 304, + 304, + 43, + 43, + 43, + 43, + 43, + 124, + 350, + 350, + 350, + 350, + 22, + 148, + 148, + 300, + 300, + 300, + 300, + 318, + 8, + 8, + 8, + 57, + 57, + 57, + 131, + 208, + 357, + 357, + 28, + 28, + 129, + 160, + 160, + 325, + 325, + 325, + 325, + 22, + 145, + 148, + 142, + 142, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 48, + 48, + 246, + 246, + 246, + 393, + 393, + 15, + 15, + 237, + 334, + 91, + 245, + 245, + 295, + 99, + 384, + 384, + 384, + 384, + 384, + 99, + 99, + 99, + 275, + 324, + 122, + 187, + 299, + 299, + 390, + 333, + 103, + 198, + 198, + 254, + 66, + 102, + 102, + 164, + 164, + 164, + 164, + 237, + 298, + 298, + 398, + 398, + 398, + 10, + 10, + 150, + 190, + 245, + 245, + 245, + 245, + 245, + 245, + 267, + 317, + 317, + 20, + 74, + 114, + 114, + 180, + 180, + 213, + 287, + 287, + 320, + 320, + 320, + 320, + 14, + 14, + 14, + 92, + 143, + 153, + 241, + 241, + 241, + 241, + 241, + 271, + 271, + 271, + 271, + 325, + 325, + 325, + 23, + 23, + 51, + 124, + 124, + 124, + 155, + 155, + 155, + 231, + 231, + 277, + 344, + 344, + 5, + 5, + 5, + 5, + 74, + 74, + 74, + 74, + 74, + 149, + 200, + 200, + 246, + 278, + 367, + 83, + 15, + 15, + 83, + 155, + 291, + 203, + 291, + 382, + 88, + 194, + 194, + 194, + 395, + 378, + 337, + 337, + 23, + 23, + 63, + 337, + 337, + 337, + 337, + 4, + 4, + 63, + 63, + 279, + 394, + 37, + 37, + 37, + 37, + 52, + 309, + 309, + 60, + 60, + 60, + 246, + 246, + 246, + 246, + 311, + 311, + 311, + 397, + 397, + 374, + 330, + 367, + 367, + 367, + 350, + 350, + 378, + 378, + 102, + 102, + 102, + 156, + 156, + 233, + 286, + 314, + 107, + 107, + 107, + 336, + 347, + 347, + 347, + 318, + 334, + 24, + 24, + 24, + 334, + 185, + 185, + 211, + 361, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 160, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 15, + 219, + 276, + 276, + 276, + 313, + 15, + 82, + 166, + 333, + 333, + 333, + 23, + 23, + 23, + 98, + 98, + 98, + 98, + 132, + 174, + 174, + 174, + 174, + 15, + 15, + 100, + 100, + 100, + 191, + 191, + 391, + 1, + 62, + 151, + 151, + 226, + 284, + 284, + 6, + 53, + 53, + 233, + 278, + 278, + 181, + 181, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 3, + 3, + 3, + 3, + 150, + 317, + 317, + 317, + 178, + 178, + 178, + 178, + 317, + 4, + 123, + 123, + 346, + 23, + 61, + 61, + 61, + 138, + 138, + 207, + 207, + 294, + 294, + 375, + 19, + 19, + 19, + 370, + 370, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 203, + 203, + 325, + 325, + 325, + 325, + 135, + 385, + 130, + 130, + 365, + 37, + 37, + 37, + 67, + 290, + 290, + 290, + 375, + 89, + 115, + 115, + 115, + 325, + 216, + 325, + 56, + 56, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 56, + 56, + 56, + 56, + 111, + 111, + 217, + 397, + 5, + 63, + 63, + 123, + 123, + 380, + 380, + 380, + 93, + 93, + 93, + 93, + 93, + 101, + 228, + 376, + 376, + 30, + 86, + 86, + 86, + 105, + 222, + 319, + 319, + 27, + 52, + 52, + 131, + 382, + 382, + 69, + 69, + 345, + 71, + 141, + 165, + 165, + 165, + 165, + 233, + 350, + 81, + 81, + 81, + 81, + 174, + 231, + 231, + 231, + 293, + 365, + 365, + 9, + 9, + 86, + 86, + 86, + 86, + 86, + 86, + 208, + 208, + 208, + 208, + 208, + 330, + 26, + 94, + 224, + 224, + 260, + 260, + 260, + 260, + 360, + 360, + 360, + 360, + 97, + 292, + 302, + 208, + 296, + 368, + 398, + 360, + 360, + 360, + 360, + 360, + 36, + 36, + 309, + 367, + 98, + 98, + 98, + 253, + 253, + 253, + 352, + 352, + 0, + 341, + 335, + 341, + 276, + 341, + 301, + 65, + 65, + 65, + 65, + 65, + 65, + 304, + 304, + 30, + 30, + 99, + 141, + 336, + 47, + 47, + 236, + 394, + 394, + 394, + 367, + 367, + 371, + 391, + 391, + 391, + 360, + 311, + 362, + 338, + 338, + 338, + 338, + 375, + 277, + 112, + 277, + 375, + 230, + 230, + 230, + 49, + 49, + 49, + 233, + 34, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 61, + 61, + 263, + 263, + 400, + 400, + 73, + 111, + 111, + 111, + 198, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 155, + 155, + 325, + 87, + 87, + 87, + 87, + 120, + 106, + 152, + 152, + 222, + 222, + 222, + 222, + 222, + 297, + 297, + 297, + 322, + 322, + 322, + 18, + 106, + 106, + 106, + 106, + 106, + 106, + 196, + 231, + 231, + 382, + 382, + 28, + 106, + 367, + 36, + 117, + 117, + 106, + 31, + 290, + 290, + 290, + 308, + 308, + 308, + 308, + 308, + 308, + 31, + 80, + 119, + 235, + 235, + 350, + 137, + 137, + 137, + 197, + 197, + 197, + 197, + 197, + 117, + 389, + 389, + 41, + 41, + 117, + 117, + 155, + 155, + 263, + 263, + 394, + 124, + 26, + 124, + 252, + 252, + 252, + 376, + 376, + 376, + 12, + 108, + 108, + 186, + 186, + 260, + 260, + 302, + 302, + 302, + 302, + 12, + 12, + 149, + 182, + 202, + 290, + 309, + 309, + 309, + 309, + 309, + 118, + 236, + 236, + 276, + 384, + 123, + 123, + 177, + 207, + 207, + 381, + 296, + 381, + 93, + 93, + 93, + 125, + 246, + 246, + 246, + 358, + 69, + 119, + 119, + 187, + 187, + 187, + 187, + 231, + 387, + 387, + 76, + 101, + 226, + 388, + 23, + 23, + 23, + 23, + 80, + 218, + 218, + 218, + 218, + 386, + 386, + 386, + 386, + 386, + 17, + 17, + 343, + 397, + 299, + 299, + 92, + 105, + 105, + 105, + 211, + 211, + 299, + 299, + 336, + 336, + 336, + 336, + 10, + 96, + 96, + 96, + 118, + 355, + 355, + 10, + 10, + 10, + 10, + 61, + 61, + 61, + 61, + 61, + 61, + 125, + 167, + 167, + 210, + 210, + 210, + 271, + 360, + 360, + 360, + 53, + 148, + 148, + 148, + 366, + 366, + 366, + 138, + 230, + 230, + 230, + 379, + 25, + 25, + 146, + 222, + 222, + 222, + 342, + 41, + 41, + 41, + 68, + 68, + 130, + 159, + 159, + 159, + 394, + 394, + 394, + 57, + 115, + 115, + 115, + 115, + 353, + 112, + 319, + 86, + 104, + 331, + 365, + 272, + 272, + 29, + 29, + 29, + 29, + 29, + 123, + 123, + 208, + 272, + 365, + 365, + 365, + 158, + 220, + 335, + 379, + 372, + 372, + 105, + 105, + 97, + 97, + 105, + 105, + 355, + 391, + 391, + 382, + 382, + 262, + 218, + 366, + 218, + 16, + 16, + 383, + 16, + 67, + 113, + 159, + 159, + 246, + 246, + 246, + 295, + 340, + 16, + 16, + 16, + 16, + 81, + 81, + 81, + 81, + 81, + 124, + 193, + 250, + 260, + 373, + 88, + 88, + 88, + 152, + 253, + 51, + 189, + 189, + 198, + 198, + 198, + 131, + 198, + 198, + 198, + 25, + 250, + 25, + 73, + 73, + 73, + 117, + 117, + 187, + 386, + 32, + 69, + 186, + 186, + 249, + 249, + 249, + 249, + 270, + 344, + 344, + 344, + 38, + 38, + 38, + 38, + 38, + 64, + 103, + 103, + 103, + 103, + 187, + 233, + 300, + 300, + 300, + 300, + 332, + 66, + 219, + 219, + 253, + 386, + 190, + 190, + 214, + 280, + 278, + 106, + 71, + 71, + 150, + 172, + 296, + 296, + 205, + 296, + 296, + 296, + 296, + 296, + 398, + 23, + 23, + 125, + 125, + 218, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 389, + 27, + 27, + 68, + 68, + 139, + 139, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 160, + 241, + 241, + 241, + 241, + 295, + 374, + 11, + 11, + 11, + 11, + 96, + 96, + 135, + 166, + 225, + 298, + 298, + 381, + 381, + 381, + 38, + 38, + 38, + 72, + 168, + 168, + 243, + 266, + 266, + 266, + 266, + 391, + 391, + 16, + 55, + 55, + 147, + 147, + 147, + 250, + 261, + 261, + 354, + 23, + 23, + 59, + 59, + 234, + 234, + 325, + 28, + 53, + 304, + 10, + 10, + 383, + 383, + 383, + 26, + 26, + 82, + 377, + 377, + 33, + 81, + 353, + 353, + 353, + 24, + 24, + 24, + 91, + 139, + 139, + 194, + 194, + 194, + 341, + 26, + 26, + 26, + 26, + 26, + 26, + 26, + 26, + 76, + 172, + 207, + 207, + 274, + 338, + 23, + 51, + 179, + 179, + 242, + 242, + 330, + 264, + 264, + 330, + 330, + 330, + 330, + 330, + 330, + 32, + 62, + 62, + 62, + 62, + 62, + 114, + 161, + 161, + 380, + 380, + 124, + 124, + 124, + 124, + 124, + 165, + 165, + 239, + 239, + 251, + 251, + 313, + 386, + 386, + 386, + 342, + 342, + 342, + 246, + 259, + 372, + 372, + 372, + 372, + 372, + 263, + 367, + 251, + 251, + 91, + 251, + 304, + 304, + 204, + 258, + 258, + 258, + 358, + 344, + 344, + 344, + 339, + 359, + 359, + 308, + 340, + 365, + 213, + 213, + 213, + 73, + 16, + 73, + 49, + 68, + 138, + 85, + 62, + 62, + 324, + 62, + 62, + 392, + 316, + 205, + 118, + 118, + 153, + 205, + 288, + 316, + 22, + 22, + 145, + 195, + 195, + 212, + 254, + 315, + 315, + 37, + 37, + 181, + 394, + 39, + 39, + 219, + 377, + 265, + 377, + 377, + 5, + 100, + 217, + 217, + 286, + 286, + 286, + 286, + 286, + 286, + 321, + 321, + 0, + 0, + 67, + 176, + 176, + 223, + 287, + 287, + 319, + 28, + 28, + 28, + 28, + 52, + 52, + 229, + 229, + 229, + 343, + 16, + 16, + 73, + 73, + 204, + 335, + 335, + 335, + 335, + 335, + 335, + 9, + 9, + 78, + 207, + 368, + 38, + 67, + 67, + 67, + 400, + 400, + 34, + 34, + 249, + 348, + 6, + 231, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 129, + 129, + 241, + 241, + 25, + 218, + 290, + 350, + 350, + 350, + 350, + 350, + 350, + 350, + 350, + 3, + 3, + 84, + 200, + 200, + 338, + 338, + 338, + 90, + 118, + 189, + 189, + 261, + 261, + 391, + 391, + 391, + 54, + 185, + 397, + 397, + 225, + 225, + 397, + 73, + 73, + 302, + 302, + 85, + 365, + 102, + 186, + 186, + 186, + 186, + 231, + 283, + 283, + 283, + 316, + 11, + 11, + 121, + 121, + 121, + 121, + 121, + 121, + 121, + 189, + 189, + 189, + 249, + 249, + 377, + 115, + 115, + 188, + 188, + 234, + 393, + 145, + 145, + 94, + 145, + 145, + 234, + 343, + 103, + 56, + 103, + 103, + 103, + 103, + 234, + 234, + 296, + 308, + 308, + 115, + 64, + 115, + 218, + 218, + 400, + 400, + 400, + 27, + 129, + 211, + 260, + 260, + 394, + 90, + 112, + 229, + 229, + 336, + 336, + 119, + 209, + 306, + 114, + 241, + 179, + 179, + 241, + 301, + 12, + 12, + 12, + 140, + 140, + 140, + 140, + 183, + 228, + 228, + 274, + 327, + 327, + 18, + 18, + 58, + 119, + 119, + 167, + 212, + 212, + 212, + 385, + 385, + 12, + 124, + 124, + 124, + 124, + 124, + 124, + 124, + 185, + 216, + 216, + 254, + 254, + 254, + 393, + 393, + 393, + 9, + 9, + 9, + 9, + 145, + 145, + 248, + 277, + 277, + 277, + 277, + 277, + 277, + 314, + 6, + 6, + 6, + 6, + 137, + 153, + 226, + 226, + 226, + 259, + 380, + 380, + 380, + 146, + 20, + 146, + 146, + 166, + 166, + 231, + 231, + 386, + 386, + 12, + 133, + 193, + 193, + 340, + 141, + 141, + 196, + 196, + 196, + 196, + 203, + 288, + 388, + 77, + 104, + 104, + 180, + 180, + 180, + 207, + 207, + 299, + 353, + 353, + 16, + 100, + 100, + 115, + 115, + 176, + 244, + 367, + 367, + 31, + 31, + 143, + 143, + 143, + 203, + 203, + 330, + 330, + 330, + 17, + 137, + 137, + 162, + 245, + 245, + 245, + 273, + 273, + 309, + 67, + 124, + 124, + 124, + 124, + 195, + 195, + 241, + 241, + 267, + 324, + 92, + 141, + 141, + 162, + 162, + 162, + 240, + 240, + 325, + 150, + 198, + 198, + 215, + 215, + 324, + 30, + 94, + 146, + 146, + 279, + 279, + 279, + 375, + 19, + 19, + 19, + 149, + 149, + 149, + 149, + 149, + 165, + 165, + 216, + 216, + 333, + 333, + 38, + 99, + 112, + 112, + 112, + 151, + 151, + 151, + 223, + 223, + 223, + 223, + 223, + 333, + 27, + 27, + 80, + 147, + 147, + 214, + 348, + 348, + 348, + 348, + 127, + 127, + 203, + 349, + 349, + 349, + 349, + 52, + 52, + 52, + 123, + 123, + 224, + 224, + 154, + 154, + 224, + 257, + 257, + 347, + 97, + 135, + 135, + 153, + 153, + 153, + 216, + 216, + 216, + 258, + 258, + 258, + 333, + 333, + 44, + 65, + 65, + 65, + 179, + 262, + 349, + 349, + 27, + 61, + 134, + 134, + 134, + 134, + 244, + 244, + 299, + 391, + 24, + 24, + 24, + 89, + 110, + 110, + 189, + 268, + 268, + 349, + 297, + 332, + 192, + 271, + 332, + 332, + 332, + 70, + 70, + 70, + 249, + 113, + 113, + 249, + 268, + 361, + 361, + 361, + 192, + 192, + 233, + 233, + 233, + 233, + 233, + 270, + 357, + 357, + 357, + 70, + 107, + 161, + 161, + 247, + 269, + 399, + 126, + 231, + 286, + 321, + 321, + 122, + 288, + 288, + 324, + 97, + 97, + 97, + 224, + 286, + 374, + 388, + 313, + 313, + 385, + 385, + 385, + 171, + 171, + 171, + 171, + 171, + 206, + 396, + 0, + 83, + 231, + 352, + 355, + 266, + 266, + 340, + 54, + 54, + 267, + 267, + 267, + 267, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 128, + 128, + 128, + 273, + 395, + 198, + 198, + 49, + 49, + 198, + 247, + 253, + 361, + 361, + 13, + 144, + 192, + 264, + 378, + 378, + 38, + 121, + 164, + 219, + 252, + 369, + 169, + 278, + 278, + 278, + 238, + 278, + 361, + 361, + 136, + 175, + 175, + 400, + 302, + 302, + 129, + 183, + 302, + 145, + 230, + 326, + 338, + 338, + 338, + 28, + 28, + 28, + 93, + 93, + 338, + 338, + 338, + 75, + 298, + 133, + 298, + 298, + 342, + 29, + 29, + 78, + 78, + 78, + 130, + 193, + 247, + 325, + 325, + 37, + 37, + 37, + 100, + 170, + 245, + 307, + 85, + 185, + 272, + 394, + 394, + 394, + 394, + 39, + 39, + 331, + 247, + 247, + 269, + 269, + 386, + 386, + 156, + 388, + 112, + 305, + 372, + 372, + 78, + 78, + 372, + 245, + 392, + 373, + 110, + 110, + 110, + 217, + 289, + 289, + 379, + 134, + 182, + 224, + 355, + 69, + 69, + 143, + 164, + 164, + 202, + 338, + 299, + 299, + 299, + 377, + 377, + 4, + 4, + 91, + 91, + 143, + 143, + 143, + 185, + 236, + 236, + 236, + 274, + 274, + 274, + 274, + 274, + 316, + 17, + 17, + 17, + 91, + 116, + 161, + 161, + 161, + 161, + 236, + 236, + 236, + 304, + 304, + 304, + 8, + 8, + 8, + 8, + 83, + 83, + 149, + 149, + 159, + 225, + 225, + 260, + 392, + 392, + 45, + 76, + 76, + 125, + 155, + 252, + 384, + 384, + 384, + 80, + 80, + 197, + 238, + 255, + 384, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 100, + 112, + 180, + 245, + 397, + 26, + 88, + 88, + 175, + 249, + 249, + 388, + 388, + 62, + 115, + 115, + 344, + 77, + 77, + 355, + 355, + 297, + 297, + 297, + 355, + 355, + 78, + 184, + 279, + 395, + 395, + 395, + 395, + 49, + 89, + 89, + 89, + 180, + 180, + 274, + 358, + 53, + 160, + 160, + 205, + 287, + 398, + 121, + 121, + 121, + 188, + 217, + 394, + 123, + 177, + 177, + 177, + 342, + 93, + 43, + 43, + 115, + 115, + 115, + 166, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 378, + 378, + 378, + 43, + 43, + 92, + 92, + 92, + 136, + 200, + 200, + 279, + 279, + 207, + 207, + 279, + 387, + 387, + 4, + 4, + 4, + 4, + 92, + 128, + 128, + 173, + 173, + 173, + 173, + 173, + 201, + 267, + 267, + 334, + 36, + 36, + 57, + 128, + 153, + 214, + 214, + 214, + 258, + 320, + 59, + 165, + 165, + 300, + 300, + 300, + 369, + 369, + 15, + 15, + 15, + 15, + 93, + 135, + 135, + 135, + 135, + 135, + 218, + 296, + 296, + 296, + 296, + 296, + 296, + 302, + 23, + 23, + 23, + 23, + 73, + 73, + 73, + 73, + 131, + 179, + 179, + 179, + 232, + 285, + 341, + 58, + 58, + 58, + 58, + 58, + 58, + 58, + 150, + 193, + 193, + 193, + 295, + 334, + 53, + 146, + 146, + 195, + 195, + 195, + 297, + 334, + 334, + 334, + 67, + 130, + 296, + 296, + 296, + 296, + 296, + 342, + 342, + 342, + 342, + 31, + 83, + 83, + 103, + 182, + 182, + 286, + 286, + 339, + 10, + 74, + 103, + 270, + 270, + 321, + 321, + 321, + 29, + 29, + 29, + 99, + 124, + 236, + 236, + 267, + 335, + 335, + 50, + 50, + 100, + 100, + 120, + 186, + 204, + 204, + 204, + 259, + 259, + 259, + 259, + 303, + 303, + 303, + 303, + 16, + 58, + 58, + 58, + 128, + 128, + 159, + 209, + 209, + 345, + 23, + 23, + 130, + 204, + 204, + 168, + 168, + 168, + 168, + 204, + 316, + 63, + 221, + 221, + 221, + 257, + 257, + 257, + 377, + 97, + 97, + 48, + 97, + 250, + 250, + 348, + 219, + 219, + 74, + 74, + 178, + 219, + 397, + 246, + 349, + 349, + 349, + 240, + 161, + 240, + 344, + 270, + 270, + 344, + 344, + 344, + 344, + 344, + 112, + 194, + 211, + 211, + 211, + 279, + 279, + 352, + 35, + 104, + 104, + 104, + 104, + 104, + 104, + 55, + 55, + 55, + 55, + 104, + 266, + 266, + 266, + 379, + 76, + 76, + 129, + 319, + 130, + 175, + 217, + 217, + 368, + 368, + 368, + 112, + 153, + 219, + 219, + 219, + 219, + 322, + 322, + 144, + 180, + 180, + 180, + 180, + 248, + 248, + 248, + 248, + 248, + 248, + 248, + 248, + 295, + 295, + 295, + 390, + 66, + 66, + 137, + 165, + 245, + 329, + 329, + 42, + 42, + 42, + 144, + 258, + 258, + 385, + 226, + 226, + 265, + 347, + 170, + 282, + 282, + 282, + 366, + 366, + 366, + 345, + 345, + 105, + 105, + 233, + 233, + 233, + 345, + 345, + 5, + 5, + 5, + 55, + 55, + 185, + 276, + 276, + 276, + 276, + 364, + 364, + 364, + 364, + 200, + 251, + 382, + 382, + 380, + 357, + 357, + 357, + 357, + 390, + 377, + 275, + 377, + 376, + 77, + 77, + 217, + 376, + 376, + 376, + 318, + 42, + 42, + 42, + 42, + 42, + 188, + 188, + 55, + 188, + 241, + 318, + 156, + 399, + 399, + 319, + 127, + 319, + 383, + 248, + 26, + 26, + 26, + 26, + 127, + 127, + 248, + 289, + 383, + 383, + 383, + 383, + 217, + 217, + 217, + 345, + 212, + 212, + 161, + 161, + 88, + 161, + 212, + 212, + 212, + 350, + 382, + 387, + 349, + 321, + 10, + 157, + 340, + 263, + 376, + 60, + 150, + 150, + 355, + 355, + 355, + 355, + 340, + 340, + 318, + 325, + 325, + 326, + 354, + 345, + 231, + 345, + 345, + 345, + 41, + 76, + 76, + 190, + 190, + 354, + 354, + 208, + 208, + 208, + 208, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 354, + 30, + 59, + 179, + 296, + 340, + 340, + 175, + 299, + 329, + 329, + 329, + 185, + 204, + 329, + 85, + 309, + 309, + 334, + 313, + 183, + 219, + 282, + 282, + 370, + 127, + 163, + 163, + 85, + 138, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 133, + 174, + 18, + 18, + 183, + 368, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 318, + 318, + 318, + 157, + 211, + 259, + 259, + 156, + 156, + 218, + 218, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 57, + 287, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 34, + 34, + 73, + 73, + 169, + 251, + 339, + 6, + 169, + 169, + 396, + 396, + 224, + 224, + 396, + 396, + 4, + 181, + 349, + 176, + 176, + 154, + 154, + 213, + 269, + 154, + 260, + 260, + 260, + 260, + 393, + 393, + 32, + 163, + 163, + 215, + 215, + 215, + 215, + 258, + 343, + 343, + 343, + 213, + 213, + 393, + 15, + 15, + 334, + 334, + 40, + 375, + 375, + 252, + 252, + 245, + 245, + 153, + 245, + 245, + 252, + 375, + 40, + 120, + 159, + 159, + 159, + 159, + 159, + 159, + 159, + 159, + 229, + 229, + 272, + 272, + 272, + 272, + 387, + 35, + 35, + 55, + 55, + 149, + 173, + 173, + 173, + 173, + 173, + 233, + 259, + 259, + 259, + 259, + 302, + 54, + 125, + 125, + 125, + 125, + 169, + 288, + 288, + 288, + 288, + 205, + 288, + 288, + 317, + 179, + 285, + 391, + 391, + 391, + 158, + 158, + 158, + 333, + 182, + 323, + 90, + 130, + 130, + 154, + 154, + 154, + 247, + 247, + 247, + 256, + 256, + 365, + 365, + 365, + 144, + 228, + 228, + 228, + 228, + 228, + 268, + 343, + 343, + 46, + 84, + 84, + 84, + 84, + 187, + 187, + 213, + 213, + 213, + 269, + 344, + 344, + 344, + 17, + 52, + 144, + 269, + 356, + 111, + 191, + 295, + 295, + 325, + 15, + 72, + 72, + 297, + 119, + 119, + 181, + 297, + 383, + 383, + 75, + 75, + 75, + 75, + 75, + 75, + 280, + 280, + 368, + 368, + 53, + 53, + 126, + 126, + 294, + 294, + 335, + 335, + 335, + 335, + 335, + 335, + 3, + 91, + 91, + 103, + 103, + 103, + 103, + 103, + 103, + 103, + 250, + 250, + 250, + 250, + 250, + 264, + 326, + 62, + 252, + 252, + 398, + 398, + 398, + 22, + 66, + 66, + 266, + 230, + 230, + 230, + 230, + 266, + 266, + 266, + 385, + 61, + 104, + 155, + 213, + 274, + 274, + 340, + 69, + 193, + 193, + 241, + 241, + 241, + 241, + 279, + 279, + 279, + 279, + 334, + 334, + 26, + 54, + 169, + 232, + 232, + 232, + 289, + 289, + 352, + 352, + 64, + 164, + 147, + 164, + 339, + 244, + 262, + 262, + 262, + 339, + 339, + 339, + 339, + 339, + 45, + 51, + 140, + 140, + 140, + 200, + 200, + 327, + 327, + 327, + 5, + 67, + 67, + 67, + 67, + 67, + 67, + 131, + 131, + 267, + 336, + 7, + 68, + 68, + 68, + 110, + 110, + 110, + 110, + 345, + 19, + 63, + 63, + 109, + 109, + 109, + 109, + 164, + 246, + 351, + 70, + 70, + 146, + 146, + 146, + 197, + 197, + 211, + 211, + 350, + 34, + 92, + 126, + 161, + 310, + 310, + 142, + 142, + 183, + 183, + 231, + 363, + 363, + 363, + 363, + 363, + 363, + 47, + 47, + 47, + 95, + 95, + 95, + 146, + 146, + 175, + 175, + 175, + 209, + 209, + 327, + 26, + 26, + 26, + 63, + 63, + 101, + 101, + 101, + 179, + 179, + 235, + 377, + 377, + 25, + 25, + 25, + 25, + 25, + 94, + 119, + 199, + 199, + 199, + 224, + 378, + 378, + 156, + 156, + 270, + 270, + 270, + 339, + 339, + 339, + 339, + 87, + 154, + 229, + 229, + 229, + 229, + 281, + 386, + 33, + 33, + 156, + 156, + 207, + 273, + 273, + 273, + 273, + 355, + 22, + 100, + 108, + 179, + 395, + 395, + 203, + 203, + 203, + 395, + 395, + 395, + 395, + 395, + 23, + 99, + 115, + 226, + 393, + 37, + 37, + 37, + 37, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 281, + 346, + 346, + 346, + 25, + 240, + 383, + 113, + 113, + 113, + 15, + 86, + 86, + 113, + 316, + 316, + 115, + 115, + 61, + 61, + 115, + 340, + 121, + 375, + 375, + 375, + 375, + 135, + 135, + 230, + 376, + 376, + 294, + 294, + 85, + 10, + 83, + 151, + 151, + 151, + 151, + 354, + 354, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 47, + 206, + 206, + 318, + 240, + 364, + 364, + 96, + 14, + 96, + 96, + 160, + 160, + 364, + 155, + 155, + 155, + 155, + 364, + 341, + 190, + 190, + 190, + 190, + 283, + 329, + 329, + 69, + 164, + 164, + 59, + 172, + 172, + 390, + 41, + 41, + 41, + 164, + 164, + 216, + 216, + 216, + 216, + 275, + 275, + 275, + 275, + 275, + 326, + 93, + 186, + 186, + 186, + 230, + 288, + 306, + 306, + 306, + 306, + 306, + 306, + 37, + 180, + 312, + 8, + 8, + 8, + 8, + 197, + 224, + 331, + 331, + 239, + 239, + 352, + 352, + 352, + 352, + 218, + 177, + 218, + 218, + 218, + 343, + 94, + 1, + 94, + 137, + 179, + 212, + 336, + 39, + 54, + 152, + 152, + 224, + 376, + 376, + 55, + 55, + 137, + 182, + 182, + 182, + 182, + 208, + 385, + 385, + 4, + 141, + 181, + 181, + 275, + 275, + 309, + 39, + 101, + 184, + 184, + 322, + 322, + 5, + 5, + 5, + 63, + 63, + 63, + 63, + 63, + 187, + 187, + 187, + 187, + 187, + 247, + 247, + 247, + 351, + 351, + 191, + 191, + 191, + 238, + 238, + 238, + 238, + 238, + 238, + 325, + 42, + 63, + 114, + 206, + 206, + 335, + 335, + 185, + 204, + 388, + 32, + 164, + 242, + 242, + 389, + 0, + 322, + 322, + 28, + 28, + 28, + 28, + 56, + 56, + 142, + 228, + 282, + 345, + 94, + 109, + 228, + 228, + 254, + 374, + 123, + 123, + 241, + 292, + 292, + 372, + 372, + 150, + 205, + 205, + 205, + 297, + 345, + 89, + 220, + 283, + 336, + 336, + 336, + 336, + 336, + 277, + 277, + 307, + 164, + 261, + 261, + 310, + 198, + 198, + 198, + 198, + 273, + 343, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 352, + 180, + 180, + 244, + 270, + 361, + 182, + 182, + 182, + 81, + 81, + 182, + 238, + 238, + 238, + 238, + 357, + 357, + 357, + 21, + 21, + 21, + 79, + 352, + 33, + 95, + 298, + 389, + 389, + 282, + 339, + 383, + 383, + 342, + 297, + 56, + 56, + 297, + 154, + 297, + 297, + 297, + 297, + 297, + 342, + 342, + 7, + 7, + 7, + 75, + 75, + 196, + 238, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 77, + 222, + 222, + 222, + 341, + 136, + 197, + 197, + 197, + 197, + 197, + 197, + 241, + 298, + 319, + 10, + 55, + 339, + 89, + 310, + 310, + 310, + 310, + 310, + 310, + 5, + 54, + 234, + 234, + 234, + 255, + 255, + 360, + 360, + 360, + 360, + 360, + 360, + 2, + 2, + 2, + 111, + 111, + 231, + 231, + 267, + 267, + 340, + 340, + 43, + 43, + 43, + 74, + 74, + 120, + 217, + 217, + 261, + 261, + 361, + 24, + 24, + 24, + 223, + 269, + 269, + 334, + 334, + 334, + 334, + 334, + 107, + 186, + 221, + 221, + 221, + 298, + 307, + 24, + 24, + 24, + 96, + 220, + 220, + 220, + 262, + 342, + 7, + 7, + 7, + 212, + 288, + 313, + 313, + 90, + 164, + 164, + 202, + 202, + 202, + 299, + 376, + 376, + 32, + 32, + 65, + 148, + 207, + 266, + 266, + 360, + 6, + 210, + 210, + 210, + 210, + 252, + 399, + 256, + 307, + 327, + 82, + 82, + 194, + 194, + 230, + 342, + 342, + 24, + 24, + 104, + 380, + 115, + 328, + 328, + 328, + 328, + 328, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 50, + 79, + 158, + 158, + 158, + 158, + 390, + 91, + 176, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 133, + 165, + 165, + 229, + 297, + 85, + 135, + 189, + 189, + 189, + 271, + 40, + 40, + 122, + 122, + 122, + 122, + 170, + 170, + 215, + 142, + 142, + 142, + 288, + 288, + 288, + 142, + 198, + 106, + 86, + 363, + 363, + 86, + 122, + 122, + 122, + 122, + 188, + 188, + 188, + 242, + 242, + 242, + 281, + 372, + 372, + 16, + 16, + 16, + 105, + 105, + 105, + 105, + 189, + 272, + 386, + 43, + 103, + 195, + 195, + 214, + 214, + 284, + 284, + 389, + 389, + 120, + 120, + 120, + 120, + 194, + 235, + 277, + 277, + 315, + 315, + 315, + 78, + 147, + 187, + 187, + 213, + 213, + 293, + 373, + 109, + 185, + 245, + 258, + 258, + 343, + 343, + 18, + 18, + 18, + 18, + 18, + 73, + 73, + 119, + 119, + 119, + 119, + 119, + 119, + 189, + 229, + 229, + 301, + 83, + 148, + 173, + 173, + 173, + 209, + 256, + 256, + 347, + 347, + 14, + 123, + 162, + 162, + 162, + 236, + 286, + 286, + 286, + 286, + 286, + 286, + 310, + 32, + 32, + 161, + 161, + 204, + 286, + 286, + 286, + 376, + 49, + 49, + 194, + 194, + 194, + 194, + 194, + 217, + 217, + 217, + 217, + 328, + 31, + 96, + 96, + 200, + 222, + 222, + 222, + 222, + 396, + 194, + 296, + 379, + 379, + 379, + 189, + 129, + 129, + 129, + 189, + 189, + 254, + 345, + 345, + 188, + 390, + 81, + 10, + 10, + 10, + 81, + 157, + 157, + 149, + 149, + 149, + 157, + 245, + 245, + 245, + 245, + 253, + 352, + 352, + 37, + 122, + 359, + 167, + 167, + 167, + 18, + 57, + 146, + 167, + 167, + 258, + 258, + 320, + 320, + 19, + 81, + 81, + 81, + 131, + 131, + 131, + 131, + 131, + 167, + 201, + 330, + 54, + 54, + 17, + 54, + 128, + 287, + 287, + 346, + 346, + 142, + 243, + 330, + 330, + 330, + 130, + 47, + 47, + 47, + 47, + 47, + 47, + 76, + 76, + 76, + 76, + 76, + 76, + 130, + 182, + 339, + 85, + 115, + 153, + 153, + 153, + 319, + 319, + 319, + 319, + 319, + 300, + 319, + 16, + 16, + 16, + 16, + 173, + 173, + 173, + 368, + 348, + 348, + 167, + 167, + 167, + 167, + 348, + 348, + 359, + 259, + 259, + 338, + 363, + 363, + 363, + 340, + 229, + 229, + 229, + 229, + 229, + 340, + 110, + 110, + 110, + 234, + 195, + 234, + 256, + 369, + 296, + 129, + 129, + 129, + 173, + 296, + 381, + 195, + 315, + 351, + 351, + 351, + 372, + 49, + 303, + 303, + 303, + 332, + 309, + 363, + 126, + 307, + 307, + 334, + 46, + 156, + 104, + 104, + 104, + 104, + 104, + 104, + 104, + 104, + 156, + 156, + 156, + 156, + 156, + 217, + 385, + 12, + 12, + 91, + 91, + 91, + 133, + 171, + 362, + 9, + 106, + 106, + 106, + 185, + 219, + 352, + 352, + 352, + 352, + 352, + 286, + 352, + 48, + 48, + 48, + 48, + 177, + 177, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 256, + 371, + 371, + 371, + 36, + 36, + 36, + 54, + 54, + 169, + 238, + 265, + 372, + 372, + 372, + 372, + 372, + 372, + 372, + 12, + 68, + 161, + 161, + 161, + 161, + 213, + 213, + 270, + 270, + 346, + 346, + 346, + 0, + 182, + 182, + 182, + 182, + 203, + 203, + 258, + 399, + 162, + 366, + 199, + 199, + 199, + 199, + 199, + 246, + 355, + 161, + 329, + 57, + 101, + 101, + 101, + 101, + 174, + 174, + 174, + 243, + 243, + 275, + 303, + 28, + 28, + 79, + 122, + 182, + 296, + 296, + 296, + 296, + 396, + 396, + 115, + 11, + 11, + 11, + 11, + 68, + 115, + 189, + 189, + 283, + 382, + 175, + 209, + 342, + 19, + 19, + 19, + 19, + 55, + 130, + 130, + 169, + 252, + 252, + 370, + 370, + 81, + 131, + 131, + 131, + 170, + 170, + 170, + 219, + 219, + 389, + 54, + 171, + 171, + 286, + 304, + 304, + 34, + 65, + 65, + 65, + 65, + 65, + 165, + 260, + 351, + 351, + 351, + 13, + 85, + 85, + 134, + 194, + 253, + 253, + 397, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + 187, + 187, + 187, + 220, + 266, + 301, + 47, + 47, + 75, + 75, + 136, + 180, + 374, + 374, + 84, + 84, + 84, + 123, + 193, + 330, + 67, + 67, + 191, + 395, + 395, + 53, + 53, + 53, + 53, + 165, + 377, + 21, + 21, + 76, + 76, + 190, + 201, + 260, + 334, + 42, + 59, + 142, + 158, + 158, + 209, + 269, + 269, + 269, + 363, + 108, + 75, + 75, + 75, + 108, + 108, + 108, + 243, + 251, + 347, + 347, + 142, + 142, + 142, + 142, + 142, + 142, + 171, + 171, + 264, + 264, + 354, + 354, + 130, + 160, + 160, + 273, + 326, + 19, + 19, + 102, + 102, + 170, + 170, + 170, + 170, + 170, + 170, + 380, + 36, + 36, + 150, + 150, + 397, + 397, + 379, + 353, + 336, + 328, + 328, + 328, + 386, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 283, + 386, + 109, + 109, + 246, + 246, + 246, + 262, + 262, + 389, + 389, + 389, + 389, + 389, + 389, + 150, + 152, + 152, + 152, + 284, + 352, + 352, + 352, + 9, + 9, + 83, + 83, + 146, + 153, + 265, + 331, + 29, + 29, + 98, + 98, + 116, + 116, + 116, + 161, + 161, + 264, + 397, + 397, + 26, + 90, + 102, + 229, + 229, + 229, + 293, + 293, + 293, + 293, + 389, + 3, + 80, + 80, + 80, + 247, + 365, + 365, + 7, + 65, + 234, + 234, + 324, + 324, + 324, + 7, + 7, + 92, + 212, + 212, + 324, + 324, + 74, + 338, + 91, + 36, + 91, + 91, + 131, + 397, + 4, + 4, + 356, + 263, + 322, + 23, + 23, + 105, + 366, + 366, + 92, + 92, + 150, + 322, + 224, + 224, + 224, + 321, + 320, + 365, + 365, + 365, + 310, + 310, + 159, + 108, + 159, + 159, + 159, + 159, + 159, + 295, + 310, + 138, + 178, + 350, + 350, + 350, + 397, + 118, + 118, + 118, + 295, + 397, + 151, + 151, + 151, + 317, + 356, + 356, + 236, + 236, + 356, + 324, + 211, + 211, + 35, + 35, + 211, + 151, + 151, + 211, + 211, + 266, + 344, + 344, + 363, + 3, + 385, + 40, + 123, + 123, + 123, + 318, + 113, + 349, + 349, + 16, + 221, + 221, + 292, + 292, + 355, + 149, + 92, + 92, + 92, + 149, + 208, + 208, + 208, + 347, + 347, + 347, + 347, + 138, + 138, + 138, + 152, + 152, + 239, + 239, + 253, + 253, + 303, + 303, + 38, + 111, + 111, + 111, + 171, + 171, + 225, + 321, + 294, + 321, + 72, + 129, + 235, + 235, + 235, + 235, + 353, + 142, + 226, + 176, + 226, + 387, + 104, + 130, + 95, + 95, + 95, + 130, + 237, + 237, + 155, + 155, + 155, + 237, + 237, + 237, + 237, + 350, + 11, + 11, + 11, + 102, + 102, + 102, + 176, + 176, + 320, + 320, + 29, + 29, + 126, + 385, + 385, + 152, + 385, + 385, + 2, + 2, + 2, + 2, + 80, + 170, + 387, + 387, + 4, + 86, + 203, + 203, + 203, + 22, + 22, + 22, + 230, + 92, + 230, + 31, + 31, + 90, + 90, + 90, + 90, + 122, + 122, + 327, + 327, + 327, + 11, + 11, + 11, + 11, + 11, + 87, + 101, + 182, + 182, + 298, + 353, + 353, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 72, + 72, + 72, + 72, + 72, + 128, + 236, + 236, + 236, + 236, + 278, + 335, + 335, + 93, + 235, + 235, + 297, + 297, + 297, + 382, + 40, + 99, + 99, + 99, + 126, + 210, + 267, + 267, + 267, + 337, + 337, + 337, + 337, + 41, + 41, + 41, + 41, + 77, + 135, + 176, + 223, + 223, + 284, + 284, + 284, + 377, + 377, + 1, + 1, + 1, + 66, + 152, + 243, + 243, + 243, + 279, + 279, + 279, + 279, + 321, + 21, + 99, + 99, + 99, + 99, + 99, + 99, + 192, + 239, + 239, + 239, + 239, + 283, + 337, + 337, + 50, + 77, + 185, + 216, + 216, + 265, + 265, + 327, + 327, + 28, + 28, + 28, + 69, + 196, + 244, + 254, + 254, + 254, + 254, + 340, + 340, + 48, + 86, + 177, + 207, + 207, + 207, + 207, + 207, + 273, + 373, + 25, + 64, + 64, + 194, + 194, + 241, + 241, + 322, + 322, + 37, + 37, + 37, + 37, + 55, + 166, + 216, + 285, + 285, + 285, + 285, + 285, + 285, + 353, + 353, + 2, + 2, + 74, + 74, + 74, + 74, + 138, + 138, + 163, + 163, + 237, + 237, + 237, + 375, + 375, + 15, + 15, + 15, + 79, + 121, + 121, + 121, + 121, + 121, + 121, + 121, + 188, + 188, + 208, + 208, + 336, + 336, + 71, + 71, + 71, + 137, + 161, + 161, + 219, + 219, + 258, + 348, + 61, + 171, + 213, + 342, + 36, + 100, + 100, + 100, + 100, + 100, + 100, + 197, + 247, + 247, + 247, + 247, + 247, + 292, + 292, + 292, + 334, + 334, + 5, + 118, + 118, + 118, + 161, + 161, + 161, + 226, + 226, + 259, + 392, + 29, + 197, + 349, + 349, + 25, + 378, + 378, + 146, + 146, + 146, + 378, + 378, + 16, + 123, + 123, + 348, + 348, + 22, + 117, + 4, + 4, + 4, + 84, + 84, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 56, + 56, + 56, + 206, + 206, + 206, + 206, + 355, + 169, + 169, + 214, + 214, + 214, + 214, + 258, + 371, + 254, + 378, + 378, + 378, + 196, + 196, + 97, + 97, + 97, + 196, + 196, + 224, + 224, + 224, + 292, + 292, + 146, + 216, + 292, + 292, + 292, + 292, + 292, + 5, + 91, + 91, + 119, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 223, + 223, + 223, + 223, + 298, + 298, + 298, + 384, + 384, + 384, + 384, + 384, + 36, + 88, + 88, + 88, + 136, + 136, + 168, + 168, + 168, + 168, + 168, + 211, + 251, + 397, + 397, + 36, + 36, + 36, + 139, + 139, + 184, + 237, + 298, + 317, + 317, + 317, + 38, + 72, + 72, + 104, + 104, + 193, + 193, + 193, + 207, + 207, + 207, + 207, + 207, + 207, + 279, + 333, + 61, + 106, + 106, + 184, + 184, + 184, + 184, + 184, + 184, + 184, + 227, + 227, + 297, + 297, + 297, + 329, + 56, + 101, + 190, + 190, + 291, + 291, + 360, + 28, + 115, + 115, + 205, + 205, + 205, + 205, + 313, + 15, + 147, + 225, + 225, + 283, + 387, + 38, + 38, + 38, + 140, + 140, + 281, + 281, + 281, + 340, + 24, + 24, + 108, + 190, + 190, + 274, + 334, + 8, + 8, + 8, + 119, + 331, + 213, + 213, + 213, + 213, + 274, + 274, + 331, + 331, + 331, + 125, + 234, + 333, + 333, + 111, + 375, + 338, + 338, + 322, + 81, + 81, + 81, + 170, + 170, + 170, + 170, + 228, + 228, + 286, + 286, + 286, + 286, + 322, + 322, + 322, + 85, + 85, + 85, + 172, + 253, + 383, + 383, + 110, + 162, + 162, + 366, + 3, + 3, + 3, + 77, + 322, + 77, + 20, + 20, + 77, + 317, + 42, + 318, + 318, + 307, + 294, + 348, + 348, + 348, + 311, + 311, + 335, + 172, + 172, + 285, + 285, + 285, + 335, + 197, + 197, + 197, + 197, + 197, + 276, + 276, + 276, + 276, + 276, + 276, + 381, + 381, + 381, + 283, + 384, + 377, + 377, + 353, + 353, + 342, + 233, + 342, + 267, + 342, + 342, + 342, + 342, + 35, + 87, + 103, + 103, + 219, + 219, + 219, + 362, + 362, + 135, + 303, + 59, + 143, + 143, + 143, + 336, + 59, + 348, + 348, + 348, + 179, + 179, + 294, + 294, + 294, + 396, + 396, + 89, + 135, + 183, + 183, + 183, + 183, + 183, + 183, + 183, + 183, + 249, + 261, + 389, + 84, + 198, + 198, + 243, + 243, + 324, + 324, + 74, + 74, + 140, + 161, + 240, + 284, + 284, + 284, + 284, + 284, + 321, + 321, + 321, + 90, + 118, + 118, + 300, + 350, + 49, + 143, + 186, + 345, + 345, + 345, + 345, + 345, + 345, + 265, + 345, + 345, + 45, + 78, + 189, + 383, + 383, + 383, + 136, + 136, + 182, + 334, + 180, + 180, + 180, + 211, + 354, + 23, + 192, + 192, + 192, + 192, + 192, + 192, + 306, + 306, + 43, + 155, + 398, + 12, + 12, + 198, + 353, + 353, + 280, + 305, + 305, + 305, + 305, + 141, + 215, + 318, + 318, + 50, + 50, + 50, + 87, + 87, + 149, + 194, + 214, + 214, + 330, + 330, + 330, + 330, + 116, + 116, + 116, + 199, + 216, + 216, + 350, + 120, + 184, + 184, + 184, + 184, + 184, + 326, + 326, + 31, + 31, + 31, + 31, + 56, + 56, + 182, + 263, + 376, + 1, + 1, + 186, + 186, + 297, + 320, + 320, + 320, + 320, + 320, + 320, + 11, + 65, + 65, + 138, + 138, + 189, + 398, + 98, + 98, + 148, + 148, + 170, + 170, + 170, + 241, + 241, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 343, + 83, + 83, + 129, + 189, + 189, + 320, + 320, + 138, + 138, + 138, + 363, + 363, + 363, + 363, + 149, + 377, + 377, + 84, + 203, + 203, + 203, + 183, + 183, + 203, + 203, + 203, + 203, + 307, + 307, + 1, + 119, + 179, + 179, + 179, + 179, + 233, + 233, + 233, + 381, + 14, + 84, + 118, + 118, + 118, + 118, + 118, + 216, + 216, + 388, + 4, + 69, + 119, + 216, + 303, + 49, + 49, + 368, + 368, + 49, + 49, + 223, + 223, + 94, + 223, + 112, + 223, + 358, + 28, + 28, + 28, + 128, + 156, + 156, + 202, + 288, + 288, + 399, + 28, + 115, + 215, + 368, + 27, + 27, + 27, + 27, + 27, + 72, + 72, + 135, + 173, + 173, + 362, + 21, + 83, + 130, + 130, + 383, + 10, + 358, + 247, + 358, + 30, + 30, + 111, + 111, + 181, + 181, + 293, + 358, + 358, + 358, + 355, + 358, + 348, + 388, + 370, + 367, + 47, + 47, + 47, + 47, + 47, + 47, + 47, + 47, + 185, + 241, + 241, + 335, + 42, + 42, + 122, + 187, + 239, + 239, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 22, + 22, + 79, + 156, + 366, + 9, + 9, + 145, + 145, + 399, + 399, + 56, + 328, + 328, + 61, + 61, + 2, + 61, + 137, + 137, + 137, + 137, + 137, + 249, + 249, + 249, + 249, + 249, + 282, + 282, + 282, + 282, + 282, + 339, + 339, + 15, + 120, + 120, + 180, + 180, + 228, + 228, + 288, + 288, + 320, + 320, + 320, + 12, + 12, + 226, + 286, + 286, + 286, + 354, + 39, + 239, + 239, + 239, + 239, + 278, + 278, + 278, + 309, + 48, + 48, + 269, + 314, + 314, + 314, + 25, + 139, + 294, + 337, + 337, + 237, + 354, + 309, + 125, + 376, + 63, + 63, + 350, + 350, + 40, + 71, + 222, + 222, + 222, + 109, + 222, + 222, + 222, + 268, + 268, + 375, + 20, + 221, + 296, + 380, + 59, + 59, + 59, + 124, + 124, + 124, + 124, + 394, + 147, + 108, + 108, + 197, + 197, + 213, + 288, + 288, + 395, + 395, + 395, + 74, + 74, + 74, + 107, + 193, + 248, + 248, + 277, + 339, + 283, + 365, + 71, + 71, + 308, + 399, + 93, + 101, + 101, + 101, + 236, + 236, + 399, + 273, + 365, + 195, + 195, + 195, + 195, + 195, + 346, + 28, + 28, + 28, + 113, + 163, + 269, + 269, + 393, + 393, + 36, + 135, + 135, + 135, + 135, + 135, + 191, + 191, + 223, + 264, + 396, + 396, + 57, + 141, + 161, + 161, + 161, + 161, + 202, + 202, + 202, + 202, + 202, + 202, + 318, + 318, + 25, + 111, + 161, + 231, + 231, + 231, + 265, + 265, + 371, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 133, + 245, + 187, + 245, + 251, + 385, + 385, + 41, + 41, + 96, + 96, + 96, + 96, + 146, + 163, + 163, + 163, + 163, + 163, + 224, + 294, + 398, + 11, + 95, + 105, + 105, + 179, + 179, + 241, + 331, + 5, + 5, + 150, + 375, + 375, + 375, + 190, + 375, + 16, + 51, + 140, + 189, + 388, + 141, + 141, + 6, + 6, + 6, + 141, + 141, + 197, + 294, + 294, + 294, + 340, + 31, + 151, + 298, + 382, + 382, + 382, + 382, + 93, + 93, + 93, + 198, + 240, + 240, + 240, + 240, + 240, + 251, + 304, + 33, + 89, + 89, + 89, + 104, + 179, + 179, + 179, + 179, + 179, + 179, + 202, + 202, + 301, + 301, + 103, + 160, + 222, + 222, + 222, + 222, + 222, + 361, + 361, + 361, + 80, + 149, + 155, + 224, + 369, + 369, + 17, + 17, + 53, + 53, + 53, + 53, + 53, + 53, + 53, + 53, + 169, + 203, + 203, + 350, + 350, + 350, + 12, + 12, + 164, + 396, + 94, + 155, + 334, + 334, + 318, + 113, + 234, + 279, + 306, + 318, + 175, + 318, + 201, + 317, + 317, + 340, + 335, + 335, + 335, + 335, + 335, + 145, + 301, + 340, + 290, + 290, + 290, + 290, + 290, + 340, + 340, + 276, + 311, + 187, + 187, + 187, + 282, + 282, + 282, + 282, + 336, + 336, + 60, + 152, + 152, + 363, + 54, + 359, + 359, + 70, + 369, + 98, + 203, + 203, + 346, + 49, + 341, + 312, + 201, + 201, + 312, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 363, + 1, + 1, + 65, + 147, + 166, + 166, + 166, + 208, + 208, + 208, + 303, + 14, + 14, + 170, + 170, + 170, + 170, + 382, + 382, + 382, + 44, + 44, + 44, + 191, + 191, + 191, + 191, + 212, + 388, + 15, + 15, + 15, + 199, + 393, + 393, + 45, + 45, + 45, + 45, + 45, + 45, + 95, + 95, + 95, + 126, + 349, + 349, + 237, + 237, + 259, + 259, + 349, + 74, + 74, + 277, + 366, + 97, + 115, + 260, + 260, + 260, + 260, + 260, + 393, + 393, + 393, + 393, + 40, + 40, + 79, + 138, + 138, + 353, + 3, + 73, + 374, + 313, + 313, + 243, + 295, + 295, + 313, + 36, + 152, + 152, + 238, + 238, + 305, + 111, + 111, + 111, + 111, + 217, + 217, + 391, + 391, + 391, + 391, + 18, + 18, + 147, + 160, + 160, + 356, + 352, + 352, + 53, + 267, + 126, + 267, + 267, + 352, + 18, + 18, + 18, + 67, + 67, + 67, + 67, + 67, + 351, + 36, + 345, + 345, + 27, + 27, + 323, + 272, + 323, + 323, + 323, + 45, + 99, + 211, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 27, + 232, + 36, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 283, + 283, + 355, + 21, + 270, + 378, + 378, + 378, + 378, + 7, + 69, + 69, + 142, + 142, + 210, + 210, + 272, + 272, + 272, + 272, + 374, + 374, + 48, + 48, + 48, + 48, + 48, + 69, + 69, + 69, + 111, + 175, + 229, + 229, + 229, + 313, + 38, + 122, + 160, + 232, + 232, + 232, + 340, + 340, + 340, + 44, + 44, + 103, + 216, + 216, + 251, + 251, + 307, + 49, + 136, + 136, + 199, + 199, + 199, + 225, + 273, + 273, + 273, + 399, + 399, + 399, + 399, + 399, + 36, + 36, + 36, + 36, + 116, + 151, + 151, + 218, + 382, + 285, + 285, + 382, + 63, + 121, + 195, + 195, + 195, + 195, + 195, + 195, + 230, + 230, + 230, + 316, + 316, + 316, + 0, + 0, + 0, + 0, + 0, + 0, + 61, + 112, + 112, + 154, + 154, + 240, + 240, + 240, + 253, + 366, + 32, + 123, + 189, + 189, + 189, + 189, + 189, + 227, + 227, + 227, + 370, + 370, + 370, + 77, + 127, + 156, + 239, + 239, + 239, + 325, + 89, + 130, + 237, + 312, + 312, + 312, + 312, + 312, + 312, + 312, + 65, + 202, + 322, + 322, + 319, + 209, + 209, + 209, + 290, + 301, + 301, + 292, + 292, + 374, + 374, + 393, + 393, + 393, + 393, + 393, + 393, + 72, + 235, + 393, + 393, + 82, + 82, + 203, + 399, + 245, + 245, + 295, + 335, + 335, + 335, + 308, + 180, + 93, + 180, + 180, + 180, + 361, + 385, + 385, + 370, + 370, + 370, + 366, + 152, + 152, + 207, + 207, + 77, + 104, + 180, + 344, + 157, + 383, + 383, + 383, + 220, + 383, + 383, + 383, + 9, + 9, + 158, + 158, + 158, + 20, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 145, + 145, + 145, + 145, + 171, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 13, + 13, + 162, + 162, + 162, + 162, + 162, + 162, + 201, + 258, + 310, + 13, + 71, + 71, + 120, + 208, + 269, + 269, + 333, + 333, + 337, + 337, + 337, + 180, + 337, + 337, + 337, + 40, + 83, + 98, + 63, + 370, + 370, + 370, + 86, + 186, + 186, + 241, + 241, + 366, + 31, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 26, + 237, + 237, + 321, + 321, + 394, + 391, + 290, + 322, + 39, + 51, + 313, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 285, + 47, + 47, + 47, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 196, + 196, + 196, + 138, + 196, + 196, + 230, + 230, + 328, + 328, + 100, + 226, + 226, + 226, + 226, + 226, + 226, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 101, + 282, + 282, + 396, + 396, + 396, + 396, + 214, + 261, + 261, + 363, + 363, + 363, + 363, + 363, + 363, + 76, + 236, + 199, + 199, + 199, + 199, + 0, + 135, + 168, + 168, + 68, + 68, + 136, + 136, + 136, + 211, + 279, + 174, + 223, + 219, + 286, + 286, + 286, + 286, + 144, + 169, + 169, + 387, + 387, + 97, + 145, + 152, + 152, + 152, + 152, + 152, + 152, + 152, + 152, + 203, + 203, + 203, + 39, + 39, + 39, + 87, + 119, + 176, + 176, + 176, + 232, + 256, + 256, + 381, + 381, + 7, + 80, + 145, + 229, + 260, + 260, + 260, + 37, + 37, + 37, + 65, + 128, + 128, + 128, + 128, + 197, + 221, + 254, + 382, + 44, + 44, + 44, + 55, + 55, + 139, + 139, + 139, + 189, + 296, + 392, + 392, + 392, + 392, + 392, + 392, + 19, + 100, + 100, + 100, + 137, + 137, + 137, + 137, + 169, + 315, + 315, + 36, + 36, + 54, + 54, + 54, + 54, + 188, + 188, + 188, + 243, + 261, + 261, + 261, + 261, + 261, + 381, + 34, + 34, + 65, + 107, + 168, + 168, + 168, + 168, + 324, + 63, + 106, + 106, + 106, + 187, + 231, + 393, + 56, + 56, + 150, + 150, + 194, + 315, + 62, + 113, + 113, + 173, + 312, + 145, + 145, + 90, + 145, + 180, + 180, + 180, + 237, + 237, + 237, + 237, + 237, + 291, + 291, + 351, + 351, + 351, + 351, + 19, + 61, + 61, + 61, + 61, + 101, + 180, + 180, + 180, + 180, + 216, + 216, + 216, + 282, + 282, + 282, + 282, + 282, + 301, + 301, + 16, + 88, + 136, + 136, + 136, + 176, + 206, + 281, + 304, + 3, + 144, + 144, + 144, + 177, + 177, + 296, + 296, + 355, + 142, + 142, + 142, + 329, + 398, + 141, + 254, + 368, + 368, + 348, + 271, + 348, + 348, + 348, + 151, + 269, + 269, + 309, + 21, + 254, + 254, + 330, + 330, + 36, + 322, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 260, + 260, + 306, + 13, + 72, + 344, + 62, + 56, + 56, + 170, + 26, + 26, + 26, + 86, + 151, + 151, + 151, + 151, + 202, + 289, + 289, + 362, + 2, + 2, + 66, + 66, + 148, + 148, + 172, + 21, + 134, + 154, + 154, + 22, + 22, + 162, + 250, + 389, + 389, + 34, + 146, + 200, + 346, + 346, + 390, + 390, + 390, + 200, + 200, + 390, + 110, + 136, + 136, + 282, + 252, + 252, + 320, + 320, + 320, + 320, + 320, + 46, + 46, + 158, + 158, + 240, + 252, + 210, + 210, + 210, + 210, + 253, + 220, + 268, + 27, + 27, + 27, + 27, + 114, + 165, + 165, + 236, + 236, + 300, + 300, + 307, + 39, + 39, + 39, + 39, + 74, + 74, + 74, + 74, + 74, + 140, + 140, + 140, + 140, + 140, + 252, + 252, + 393, + 393, + 393, + 393, + 24, + 61, + 61, + 61, + 279, + 354, + 354, + 1, + 1, + 1, + 1, + 66, + 66, + 66, + 66, + 66, + 116, + 116, + 161, + 161, + 262, + 262, + 321, + 321, + 16, + 100, + 100, + 151, + 283, + 314, + 314, + 90, + 129, + 129, + 180, + 180, + 180, + 286, + 286, + 286, + 286, + 286, + 309, + 13, + 99, + 113, + 113, + 113, + 113, + 113, + 152, + 41, + 82, + 107, + 107, + 107, + 107, + 188, + 188, + 330, + 330, + 330, + 86, + 86, + 148, + 148, + 148, + 148, + 189, + 354, + 76, + 145, + 394, + 394, + 394, + 62, + 112, + 361, + 361, + 229, + 279, + 361, + 361, + 90, + 106, + 106, + 106, + 106, + 283, + 283, + 370, + 370, + 41, + 41, + 41, + 59, + 114, + 114, + 114, + 275, + 275, + 275, + 275, + 391, + 89, + 194, + 194, + 194, + 194, + 194, + 206, + 206, + 300, + 300, + 400, + 84, + 84, + 111, + 252, + 334, + 334, + 17, + 139, + 181, + 253, + 253, + 253, + 379, + 99, + 99, + 148, + 148, + 148, + 148, + 148, + 254, + 337, + 81, + 140, + 140, + 140, + 140, + 140, + 200, + 270, + 306, + 24, + 24, + 72, + 144, + 144, + 144, + 162, + 162, + 162, + 162, + 209, + 264, + 264, + 264, + 264, + 264, + 396, + 35, + 67, + 148, + 148, + 162, + 162, + 202, + 202, + 202, + 342, + 342, + 67, + 101, + 154, + 212, + 212, + 212, + 212, + 256, + 313, + 49, + 49, + 88, + 122, + 122, + 164, + 164, + 164, + 164, + 164, + 164, + 202, + 202, + 264, + 264, + 357, + 357, + 52, + 133, + 206, + 260, + 260, + 346, + 36, + 36, + 36, + 147, + 242, + 242, + 255, + 255, + 308, + 34, + 251, + 335, + 29, + 29, + 380, + 380, + 75, + 75, + 75, + 75, + 380, + 380, + 303, + 303, + 393, + 393, + 393, + 91, + 91, + 166, + 289, + 289, + 393, + 393, + 393, + 102, + 102, + 288, + 288, + 331, + 95, + 377, + 174, + 174, + 377, + 377, + 23, + 23, + 23, + 23, + 23, + 97, + 120, + 120, + 164, + 241, + 241, + 279, + 279, + 348, + 99, + 99, + 99, + 116, + 116, + 240, + 371, + 371, + 371, + 85, + 216, + 379, + 47, + 180, + 180, + 219, + 219, + 219, + 219, + 219, + 319, + 298, + 319, + 319, + 319, + 319, + 120, + 187, + 187, + 207, + 207, + 256, + 256, + 256, + 358, + 358, + 62, + 125, + 199, + 229, + 229, + 229, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 390, + 390, + 390, + 0, + 0, + 54, + 54, + 116, + 199, + 199, + 253, + 253, + 355, + 39, + 39, + 115, + 115, + 115, + 115, + 115, + 115, + 189, + 287, + 287, + 363, + 24, + 104, + 184, + 184, + 184, + 184, + 275, + 275, + 387, + 47, + 47, + 47, + 47, + 95, + 142, + 142, + 186, + 211, + 211, + 291, + 291, + 356, + 356, + 356, + 37, + 98, + 98, + 98, + 149, + 149, + 162, + 390, + 3, + 85, + 85, + 85, + 135, + 373, + 96, + 355, + 57, + 57, + 102, + 102, + 269, + 269, + 326, + 326, + 81, + 81, + 81, + 81, + 130, + 163, + 257, + 257, + 331, + 82, + 179, + 179, + 179, + 260, + 323, + 29, + 234, + 142, + 142, + 142, + 234, + 280, + 280, + 384, + 384, + 384, + 21, + 213, + 213, + 213, + 213, + 263, + 305, + 16, + 216, + 136, + 216, + 216, + 263, + 263, + 367, + 130, + 173, + 229, + 229, + 278, + 382, + 382, + 109, + 245, + 245, + 301, + 301, + 243, + 335, + 335, + 335, + 15, + 86, + 140, + 189, + 189, + 189, + 189, + 189, + 189, + 211, + 211, + 372, + 372, + 106, + 188, + 188, + 188, + 188, + 209, + 209, + 320, + 120, + 120, + 120, + 82, + 120, + 120, + 394, + 394, + 394, + 149, + 149, + 198, + 302, + 302, + 302, + 302, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 238, + 253, + 397, + 63, + 151, + 336, + 195, + 362, + 314, + 314, + 314, + 314, + 142, + 336, + 319, + 319, + 19, + 19, + 267, + 319, + 319, + 29, + 207, + 379, + 369, + 369, + 369, + 369, + 369, + 383, + 383, + 383, + 383, + 255, + 255, + 255, + 326, + 326, + 326, + 326, + 10, + 58, + 199, + 239, + 239, + 239, + 276, + 334, + 334, + 334, + 50, + 78, + 78, + 78, + 78, + 161, + 161, + 161, + 109, + 161, + 161, + 213, + 327, + 12, + 12, + 12, + 12, + 12, + 92, + 106, + 106, + 180, + 180, + 230, + 330, + 330, + 330, + 39, + 56, + 140, + 198, + 198, + 198, + 364, + 86, + 164, + 164, + 209, + 209, + 392, + 87, + 87, + 191, + 381, + 195, + 335, + 253, + 335, + 335, + 174, + 174, + 241, + 241, + 252, + 252, + 252, + 367, + 194, + 194, + 240, + 240, + 240, + 279, + 358, + 358, + 358, + 4, + 4, + 96, + 96, + 139, + 139, + 139, + 176, + 176, + 176, + 239, + 239, + 271, + 271, + 271, + 328, + 20, + 70, + 130, + 182, + 257, + 378, + 378, + 378, + 17, + 73, + 150, + 150, + 217, + 217, + 260, + 260, + 260, + 260, + 260, + 321, + 29, + 57, + 123, + 123, + 123, + 123, + 123, + 236, + 292, + 323, + 323, + 24, + 57, + 172, + 228, + 288, + 288, + 288, + 370, + 92, + 2, + 92, + 266, + 153, + 266, + 390, + 156, + 374, + 45, + 45, + 254, + 167, + 207, + 207, + 207, + 207, + 207, + 207, + 254, + 302, + 302, + 302, + 1, + 149, + 149, + 151, + 151, + 151, + 151, + 304, + 9, + 9, + 9, + 9, + 199, + 199, + 268, + 384, + 26, + 26, + 155, + 301, + 301, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 187, + 232, + 232, + 232, + 232, + 232, + 269, + 269, + 394, + 394, + 394, + 28, + 28, + 28, + 28, + 114, + 114, + 186, + 238, + 238, + 332, + 332, + 332, + 50, + 50, + 64, + 64, + 144, + 144, + 199, + 270, + 270, + 270, + 354, + 21, + 147, + 183, + 217, + 217, + 302, + 330, + 330, + 330, + 0, + 127, + 127, + 339, + 140, + 323, + 316, + 316, + 331, + 331, + 210, + 331, + 85, + 85, + 85, + 379, + 371, + 48, + 142, + 165, + 165, + 227, + 293, + 371, + 371, + 5, + 5, + 5, + 101, + 175, + 175, + 175, + 175, + 285, + 285, + 397, + 397, + 397, + 12, + 12, + 12, + 92, + 92, + 194, + 342, + 342, + 342, + 255, + 315, + 239, + 239, + 265, + 265, + 377, + 377, + 34, + 192, + 330, + 330, + 31, + 31, + 31, + 31, + 66, + 297, + 398, + 51, + 51, + 51, + 51, + 51, + 281, + 281, + 182, + 182, + 281, + 339, + 84, + 84, + 84, + 84, + 119, + 119, + 282, + 282, + 342, + 342, + 132, + 200, + 200, + 200, + 200, + 255, + 255, + 388, + 43, + 43, + 43, + 68, + 126, + 172, + 172, + 172, + 215, + 263, + 395, + 395, + 76, + 76, + 188, + 279, + 384, + 384, + 64, + 287, + 287, + 400, + 363, + 139, + 255, + 255, + 255, + 363, + 264, + 380, + 346, + 317, + 317, + 317, + 353, + 235, + 333, + 333, + 333, + 168, + 86, + 168, + 366, + 366, + 69, + 392, + 342, + 342, + 342, + 342, + 342, + 19, + 149, + 255, + 255, + 255, + 255, + 255, + 255, + 323, + 123, + 371, + 274, + 388, + 388, + 388, + 388, + 359, + 359, + 327, + 57, + 181, + 181, + 250, + 327, + 327, + 327, + 327, + 34, + 34, + 34, + 56, + 310, + 364, + 364, + 364, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 266, + 266, + 54, + 116, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 215, + 251, + 32, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 244, + 388, + 388, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 121, + 121, + 204, + 204, + 204, + 281, + 281, + 334, + 334, + 334, + 26, + 26, + 26, + 26, + 145, + 145, + 145, + 197, + 211, + 211, + 338, + 40, + 144, + 232, + 295, + 295, + 295, + 295, + 295, + 347, + 39, + 39, + 130, + 130, + 130, + 217, + 299, + 8, + 132, + 76, + 76, + 132, + 132, + 132, + 132, + 132, + 132, + 244, + 254, + 254, + 315, + 42, + 42, + 42, + 42, + 65, + 65, + 131, + 183, + 183, + 232, + 232, + 253, + 253, + 322, + 322, + 322, + 5, + 71, + 108, + 108, + 204, + 397, + 397, + 397, + 397, + 286, + 397, + 397, + 397, + 397, + 31, + 68, + 68, + 108, + 168, + 395, + 12, + 97, + 97, + 97, + 97, + 97, + 166, + 166, + 166, + 166, + 166, + 166, + 166, + 249, + 249, + 249, + 295, + 295, + 295, + 295, + 295, + 330, + 23, + 75, + 182, + 182, + 274, + 217, + 274, + 274, + 274, + 398, + 398, + 398, + 398, + 33, + 150, + 175, + 175, + 212, + 212, + 273, + 273, + 273, + 355, + 355, + 125, + 166, + 166, + 166, + 206, + 206, + 206, + 349, + 349, + 349, + 37, + 37, + 146, + 194, + 194, + 194, + 201, + 201, + 341, + 341, + 40, + 40, + 40, + 40, + 100, + 100, + 140, + 246, + 386, + 49, + 49, + 72, + 72, + 131, + 209, + 336, + 336, + 336, + 336, + 24, + 24, + 67, + 67, + 131, + 242, + 339, + 339, + 111, + 111, + 111, + 194, + 325, + 325, + 367, + 367, + 367, + 73, + 334, + 330, + 248, + 248, + 0, + 140, + 192, + 248, + 398, + 269, + 398, + 398, + 186, + 224, + 273, + 273, + 340, + 6, + 240, + 240, + 314, + 24, + 145, + 167, + 249, + 249, + 372, + 372, + 138, + 138, + 157, + 157, + 157, + 268, + 268, + 315, + 315, + 78, + 366, + 174, + 174, + 174, + 366, + 87, + 87, + 87, + 179, + 388, + 91, + 91, + 177, + 177, + 177, + 177, + 177, + 247, + 365, + 16, + 16, + 91, + 91, + 91, + 91, + 152, + 249, + 354, + 346, + 346, + 324, + 148, + 148, + 283, + 324, + 324, + 324, + 16, + 16, + 60, + 210, + 210, + 210, + 210, + 263, + 319, + 319, + 319, + 30, + 30, + 202, + 345, + 345, + 203, + 394, + 132, + 340, + 274, + 274, + 274, + 274, + 274, + 274, + 187, + 274, + 340, + 25, + 25, + 25, + 25, + 146, + 256, + 256, + 256, + 256, + 316, + 316, + 316, + 316, + 316, + 38, + 96, + 144, + 212, + 212, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 363, + 34, + 34, + 34, + 34, + 76, + 131, + 188, + 188, + 237, + 257, + 257, + 257, + 257, + 361, + 0, + 0, + 0, + 59, + 59, + 59, + 59, + 59, + 142, + 142, + 142, + 231, + 231, + 231, + 294, + 294, + 294, + 294, + 294, + 294, + 371, + 77, + 77, + 113, + 113, + 224, + 199, + 224, + 224, + 224, + 224, + 375, + 66, + 66, + 149, + 166, + 166, + 166, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 245, + 385, + 25, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 143, + 143, + 167, + 167, + 167, + 167, + 213, + 213, + 213, + 213, + 251, + 251, + 251, + 251, + 251, + 309, + 48, + 119, + 119, + 169, + 216, + 216, + 288, + 382, + 60, + 60, + 124, + 124, + 124, + 124, + 124, + 124, + 124, + 199, + 225, + 225, + 225, + 265, + 308, + 308, + 308, + 308, + 308, + 14, + 14, + 139, + 139, + 224, + 343, + 216, + 216, + 379, + 379, + 379, + 379, + 379, + 5, + 5, + 5, + 193, + 385, + 24, + 24, + 24, + 329, + 329, + 355, + 26, + 26, + 355, + 323, + 311, + 311, + 311, + 392, + 392, + 314, + 221, + 310, + 242, + 385, + 278, + 385, + 229, + 229, + 261, + 261, + 364, + 364, + 263, + 400, + 400, + 400, + 79, + 113, + 113, + 113, + 380, + 72, + 72, + 72, + 72, + 72, + 144, + 144, + 155, + 155, + 216, + 216, + 216, + 216, + 254, + 254, + 356, + 356, + 45, + 99, + 99, + 99, + 99, + 99, + 99, + 166, + 166, + 280, + 280, + 280, + 358, + 36, + 36, + 36, + 58, + 178, + 232, + 232, + 256, + 312, + 312, + 56, + 56, + 243, + 243, + 260, + 260, + 367, + 367, + 18, + 60, + 60, + 227, + 277, + 277, + 277, + 277, + 319, + 22, + 51, + 148, + 148, + 148, + 214, + 266, + 266, + 266, + 307, + 307, + 23, + 92, + 202, + 202, + 202, + 346, + 92, + 317, + 76, + 76, + 44, + 44, + 76, + 76, + 120, + 120, + 120, + 259, + 329, + 125, + 125, + 125, + 125, + 125, + 266, + 331, + 331, + 83, + 160, + 160, + 316, + 319, + 319, + 364, + 360, + 360, + 194, + 360, + 182, + 333, + 15, + 15, + 15, + 15, + 72, + 150, + 202, + 202, + 202, + 202, + 202, + 202, + 202, + 254, + 254, + 254, + 336, + 116, + 116, + 201, + 393, + 393, + 393, + 393, + 111, + 111, + 111, + 111, + 111, + 247, + 254, + 385, + 389, + 389, + 384, + 384, + 286, + 286, + 286, + 286, + 286, + 384, + 384, + 193, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 307, + 307, + 17, + 17, + 17, + 17, + 384, + 178, + 178, + 384, + 384, + 384, + 33, + 352, + 169, + 169, + 169, + 267, + 349, + 349, + 349, + 379, + 379, + 333, + 136, + 136, + 136, + 262, + 333, + 333, + 333, + 333, + 333, + 21, + 198, + 198, + 198, + 222, + 291, + 304, + 100, + 100, + 100, + 100, + 114, + 200, + 200, + 216, + 216, + 216, + 284, + 316, + 316, + 316, + 82, + 141, + 245, + 266, + 266, + 400, + 400, + 73, + 139, + 246, + 246, + 376, + 376, + 376, + 114, + 114, + 114, + 114, + 193, + 341, + 302, + 282, + 302, + 302, + 29, + 169, + 268, + 373, + 46, + 200, + 283, + 283, + 283, + 283, + 283, + 372, + 372, + 15, + 15, + 193, + 193, + 372, + 22, + 309, + 369, + 369, + 369, + 383, + 370, + 370, + 377, + 377, + 377, + 312, + 312, + 62, + 397, + 397, + 397, + 392, + 246, + 246, + 392, + 344, + 104, + 162, + 201, + 201, + 201, + 259, + 259, + 396, + 22, + 22, + 171, + 171, + 89, + 171, + 275, + 212, + 212, + 212, + 275, + 323, + 15, + 15, + 15, + 15, + 99, + 131, + 161, + 222, + 222, + 222, + 222, + 222, + 222, + 222, + 251, + 251, + 251, + 374, + 374, + 374, + 19, + 19, + 98, + 131, + 131, + 190, + 190, + 254, + 254, + 319, + 49, + 49, + 49, + 49, + 169, + 169, + 283, + 283, + 339, + 339, + 339, + 339, + 42, + 42, + 137, + 153, + 249, + 249, + 249, + 276, + 372, + 13, + 158, + 237, + 279, + 301, + 301, + 38, + 157, + 53, + 53, + 53, + 157, + 157, + 157, + 157, + 228, + 281, + 281, + 281, + 281, + 340, + 340, + 13, + 13, + 13, + 159, + 159, + 83, + 159, + 159, + 225, + 298, + 298, + 354, + 28, + 100, + 100, + 181, + 181, + 181, + 234, + 289, + 391, + 391, + 391, + 391, + 391, + 17, + 17, + 17, + 17, + 142, + 181, + 181, + 181, + 239, + 239, + 344, + 23, + 215, + 215, + 359, + 19, + 19, + 141, + 326, + 326, + 0, + 227, + 227, + 325, + 319, + 345, + 345, + 396, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 81, + 117, + 117, + 117, + 117, + 17, + 17, + 117, + 6, + 6, + 285, + 285, + 329, + 40, + 250, + 252, + 252, + 319, + 319, + 319, + 4, + 4, + 56, + 278, + 128, + 194, + 234, + 234, + 234, + 234, + 278, + 367, + 9, + 9, + 9, + 55, + 55, + 101, + 101, + 220, + 260, + 361, + 24, + 24, + 71, + 71, + 71, + 71, + 71, + 220, + 354, + 354, + 354, + 354, + 30, + 204, + 181, + 204, + 204, + 267, + 267, + 29, + 29, + 29, + 29, + 93, + 93, + 107, + 107, + 107, + 217, + 217, + 217, + 217, + 217, + 217, + 154, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 294, + 294, + 318, + 318, + 318, + 15, + 85, + 133, + 133, + 169, + 203, + 203, + 278, + 278, + 278, + 357, + 9, + 92, + 127, + 127, + 127, + 194, + 194, + 230, + 270, + 270, + 352, + 352, + 352, + 5, + 5, + 5, + 5, + 57, + 163, + 217, + 217, + 282, + 334, + 334, + 38, + 94, + 94, + 94, + 125, + 125, + 188, + 188, + 206, + 253, + 22, + 22, + 73, + 73, + 111, + 111, + 163, + 237, + 237, + 331, + 331, + 55, + 55, + 145, + 145, + 145, + 145, + 189, + 235, + 254, + 339, + 339, + 78, + 78, + 78, + 111, + 239, + 324, + 324, + 324, + 324, + 46, + 161, + 161, + 161, + 315, + 90, + 90, + 365, + 154, + 154, + 274, + 2, + 2, + 2, + 2, + 119, + 119, + 119, + 186, + 291, + 336, + 31, + 31, + 88, + 102, + 159, + 159, + 159, + 159, + 238, + 238, + 238, + 340, + 340, + 340, + 49, + 49, + 94, + 116, + 116, + 262, + 350, + 95, + 147, + 147, + 260, + 376, + 70, + 112, + 286, + 221, + 286, + 286, + 323, + 138, + 138, + 138, + 151, + 151, + 241, + 297, + 308, + 8, + 8, + 8, + 127, + 213, + 284, + 284, + 284, + 284, + 284, + 284, + 320, + 320, + 247, + 247, + 296, + 296, + 352, + 352, + 352, + 163, + 224, + 224, + 224, + 224, + 224, + 224, + 367, + 367, + 367, + 171, + 246, + 246, + 246, + 246, + 257, + 319, + 23, + 23, + 23, + 23, + 23, + 23, + 110, + 110, + 188, + 304, + 34, + 332, + 24, + 372, + 372, + 49, + 181, + 395, + 395, + 395, + 395, + 23, + 23, + 23, + 318, + 125, + 270, + 385, + 333, + 165, + 165, + 333, + 333, + 333, + 145, + 112, + 174, + 174, + 174, + 174, + 249, + 148, + 148, + 38, + 86, + 86, + 86, + 86, + 148, + 110, + 111, + 90, + 258, + 373, + 134, + 134, + 171, + 243, + 243, + 243, + 243, + 243, + 296, + 326, + 3, + 3, + 3, + 77, + 77, + 77, + 179, + 262, + 262, + 324, + 1, + 1, + 81, + 81, + 81, + 81, + 81, + 149, + 177, + 177, + 297, + 378, + 37, + 37, + 95, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 187, + 187, + 187, + 376, + 376, + 376, + 100, + 137, + 137, + 137, + 137, + 137, + 172, + 376, + 80, + 121, + 121, + 190, + 190, + 190, + 253, + 341, + 341, + 341, + 341, + 61, + 101, + 219, + 342, + 342, + 7, + 7, + 7, + 7, + 7, + 68, + 68, + 127, + 215, + 215, + 215, + 322, + 33, + 60, + 60, + 60, + 128, + 193, + 193, + 212, + 212, + 212, + 212, + 212, + 257, + 257, + 257, + 257, + 257, + 257, + 325, + 33, + 54, + 137, + 198, + 221, + 221, + 221, + 221, + 288, + 360, + 70, + 130, + 130, + 130, + 236, + 383, + 383, + 276, + 383, + 56, + 56, + 56, + 111, + 111, + 213, + 270, + 270, + 326, + 25, + 108, + 108, + 108, + 208, + 208, + 208, + 208, + 208, + 356, + 356, + 356, + 14, + 90, + 90, + 107, + 239, + 239, + 370, + 94, + 119, + 208, + 208, + 314, + 314, + 314, + 51, + 105, + 105, + 105, + 389, + 389, + 389, + 38, + 38, + 38, + 38, + 38, + 97, + 97, + 189, + 241, + 241, + 241, + 241, + 389, + 389, + 389, + 389, + 389, + 30, + 58, + 58, + 58, + 58, + 133, + 191, + 191, + 191, + 191, + 250, + 271, + 271, + 370, + 47, + 72, + 72, + 143, + 143, + 143, + 161, + 242, + 296, + 296, + 374, + 229, + 229, + 258, + 258, + 374, + 387, + 387, + 318, + 318, + 318, + 211, + 211, + 211, + 211, + 211, + 373, + 2, + 2, + 2, + 153, + 153, + 153, + 153, + 209, + 323, + 67, + 163, + 385, + 385, + 385, + 385, + 164, + 164, + 335, + 335, + 154, + 361, + 396, + 313, + 227, + 227, + 169, + 169, + 271, + 271, + 271, + 271, + 330, + 79, + 107, + 169, + 169, + 169, + 285, + 347, + 347, + 347, + 347, + 130, + 164, + 300, + 319, + 319, + 319, + 319, + 107, + 107, + 163, + 163, + 163, + 163, + 163, + 163, + 222, + 222, + 222, + 222, + 299, + 397, + 35, + 108, + 204, + 288, + 327, + 336, + 129, + 129, + 129, + 129, + 192, + 244, + 262, + 323, + 144, + 144, + 154, + 224, + 224, + 283, + 283, + 283, + 371, + 115, + 257, + 334, + 334, + 334, + 213, + 276, + 276, + 301, + 84, + 84, + 84, + 117, + 117, + 175, + 175, + 51, + 171, + 171, + 171, + 290, + 181, + 233, + 363, + 363, + 295, + 295, + 363, + 363, + 34, + 149, + 195, + 380, + 380, + 35, + 121, + 190, + 336, + 48, + 88, + 133, + 133, + 133, + 133, + 186, + 367, + 367, + 100, + 100, + 124, + 124, + 363, + 356, + 125, + 152, + 44, + 44, + 44, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 195, + 222, + 222, + 222, + 222, + 298, + 384, + 384, + 83, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 128, + 203, + 203, + 379, + 39, + 219, + 269, + 243, + 23, + 23, + 46, + 15, + 278, + 144, + 304, + 144, + 144, + 218, + 271, + 271, + 375, + 16, + 16, + 57, + 42, + 397, + 327, + 25, + 25, + 68, + 129, + 196, + 196, + 196, + 196, + 196, + 244, + 244, + 244, + 318, + 34, + 130, + 130, + 283, + 201, + 201, + 201, + 201, + 201, + 201, + 283, + 377, + 377, + 30, + 234, + 264, + 364, + 364, + 26, + 123, + 123, + 123, + 207, + 207, + 338, + 19, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 68, + 68, + 68, + 68, + 18, + 245, + 284, + 376, + 18, + 18, + 266, + 304, + 19, + 78, + 78, + 78, + 78, + 199, + 199, + 199, + 203, + 203, + 203, + 303, + 15, + 15, + 238, + 238, + 301, + 102, + 102, + 153, + 153, + 153, + 153, + 153, + 207, + 207, + 287, + 353, + 353, + 353, + 32, + 32, + 119, + 180, + 180, + 180, + 180, + 240, + 298, + 318, + 1, + 61, + 121, + 121, + 121, + 153, + 153, + 153, + 307, + 32, + 191, + 373, + 183, + 183, + 369, + 369, + 369, + 285, + 285, + 285, + 228, + 228, + 285, + 369, + 73, + 103, + 182, + 182, + 316, + 276, + 316, + 316, + 316, + 316, + 316, + 316, + 80, + 80, + 110, + 110, + 197, + 260, + 344, + 344, + 344, + 344, + 344, + 65, + 65, + 177, + 252, + 351, + 107, + 107, + 107, + 189, + 183, + 156, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 291, + 291, + 116, + 291, + 291, + 54, + 54, + 284, + 194, + 284, + 284, + 34, + 194, + 300, + 392, + 392, + 392, + 96, + 96, + 96, + 161, + 307, + 79, + 92, + 155, + 290, + 290, + 326, + 326, + 63, + 171, + 262, + 230, + 230, + 230, + 262, + 262, + 262, + 306, + 306, + 25, + 97, + 159, + 159, + 269, + 358, + 358, + 32, + 32, + 80, + 266, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 102, + 312, + 312, + 312, + 312, + 312, + 368, + 368, + 368, + 124, + 73, + 124, + 278, + 278, + 278, + 278, + 278, + 367, + 367, + 367, + 367, + 367, + 367, + 367, + 47, + 77, + 123, + 123, + 123, + 123, + 177, + 177, + 225, + 225, + 391, + 391, + 32, + 32, + 123, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 387, + 7, + 102, + 102, + 201, + 344, + 22, + 210, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 38, + 77, + 234, + 387, + 84, + 84, + 84, + 143, + 143, + 233, + 363, + 363, + 79, + 128, + 188, + 188, + 188, + 14, + 14, + 203, + 203, + 310, + 14, + 118, + 196, + 222, + 222, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 361, + 22, + 54, + 54, + 54, + 54, + 54, + 54, + 127, + 164, + 164, + 314, + 314, + 49, + 49, + 84, + 84, + 179, + 179, + 179, + 391, + 47, + 82, + 82, + 82, + 165, + 165, + 165, + 165, + 165, + 165, + 281, + 281, + 385, + 38, + 38, + 59, + 59, + 59, + 172, + 172, + 292, + 346, + 346, + 26, + 26, + 97, + 123, + 123, + 236, + 289, + 363, + 7, + 7, + 99, + 168, + 168, + 168, + 168, + 221, + 221, + 221, + 298, + 298, + 298, + 314, + 15, + 75, + 192, + 224, + 293, + 399, + 399, + 24, + 24, + 98, + 98, + 169, + 169, + 169, + 169, + 169, + 261, + 321, + 321, + 321, + 0, + 98, + 236, + 285, + 285, + 285, + 373, + 93, + 93, + 93, + 282, + 324, + 382, + 382, + 308, + 309, + 309, + 356, + 314, + 389, + 357, + 357, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 62, + 207, + 300, + 393, + 384, + 319, + 319, + 319, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 353, + 8, + 53, + 296, + 395, + 395, + 395, + 37, + 37, + 130, + 130, + 130, + 206, + 270, + 316, + 109, + 43, + 43, + 43, + 43, + 109, + 109, + 224, + 224, + 257, + 257, + 343, + 96, + 96, + 169, + 169, + 238, + 238, + 334, + 32, + 56, + 56, + 56, + 195, + 195, + 223, + 223, + 223, + 223, + 223, + 223, + 258, + 348, + 348, + 348, + 348, + 14, + 14, + 14, + 14, + 61, + 126, + 126, + 126, + 155, + 240, + 240, + 354, + 354, + 62, + 130, + 186, + 230, + 230, + 230, + 397, + 207, + 207, + 397, + 161, + 161, + 232, + 257, + 257, + 257, + 391, + 391, + 104, + 189, + 209, + 306, + 306, + 306, + 178, + 178, + 178, + 178, + 203, + 367, + 291, + 367, + 50, + 50, + 50, + 231, + 231, + 231, + 231, + 370, + 370, + 370, + 370, + 370, + 370, + 370, + 370, + 250, + 250, + 303, + 66, + 211, + 211, + 211, + 211, + 211, + 211, + 386, + 386, + 386, + 386, + 194, + 194, + 194, + 214, + 254, + 355, + 355, + 152, + 152, + 265, + 265, + 265, + 375, + 55, + 55, + 55, + 230, + 230, + 230, + 230, + 392, + 392, + 38, + 38, + 38, + 95, + 121, + 197, + 197, + 197, + 197, + 229, + 229, + 229, + 292, + 292, + 292, + 391, + 391, + 391, + 391, + 391, + 7, + 69, + 69, + 187, + 187, + 346, + 346, + 63, + 116, + 116, + 116, + 116, + 116, + 199, + 199, + 394, + 394, + 157, + 157, + 316, + 180, + 36, + 65, + 65, + 194, + 348, + 348, + 348, + 27, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 211, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 369, + 6, + 76, + 367, + 21, + 21, + 102, + 163, + 163, + 163, + 227, + 227, + 256, + 256, + 393, + 68, + 48, + 68, + 68, + 68, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 93, + 93, + 93, + 183, + 156, + 192, + 192, + 261, + 261, + 261, + 391, + 114, + 294, + 347, + 130, + 130, + 130, + 130, + 256, + 286, + 298, + 35, + 35, + 35, + 87, + 165, + 165, + 165, + 267, + 267, + 267, + 267, + 267, + 353, + 353, + 353, + 353, + 353, + 2, + 2, + 157, + 295, + 295, + 295, + 295, + 295, + 245, + 245, + 245, + 295, + 295, + 295, + 348, + 348, + 50, + 84, + 84, + 84, + 144, + 194, + 273, + 32, + 32, + 84, + 84, + 84, + 84, + 198, + 277, + 384, + 384, + 384, + 384, + 48, + 71, + 150, + 150, + 150, + 192, + 284, + 328, + 328, + 328, + 328, + 0, + 81, + 109, + 109, + 175, + 175, + 175, + 175, + 213, + 252, + 252, + 252, + 336, + 336, + 336, + 7, + 7, + 127, + 223, + 257, + 324, + 14, + 14, + 14, + 14, + 14, + 51, + 51, + 131, + 208, + 208, + 286, + 397, + 57, + 57, + 57, + 57, + 138, + 138, + 138, + 138, + 138, + 138, + 138, + 259, + 152, + 152, + 152, + 152, + 152, + 152, + 201, + 201, + 259, + 336, + 336, + 9, + 9, + 82, + 82, + 175, + 273, + 351, + 351, + 97, + 23, + 97, + 97, + 204, + 204, + 204, + 204, + 374, + 43, + 64, + 218, + 218, + 350, + 350, + 350, + 350, + 47, + 223, + 393, + 160, + 8, + 133, + 178, + 244, + 244, + 300, + 361, + 227, + 296, + 296, + 296, + 296, + 304, + 246, + 254, + 344, + 0, + 0, + 74, + 74, + 231, + 231, + 305, + 246, + 360, + 211, + 211, + 310, + 368, + 310, + 310, + 289, + 2, + 2, + 58, + 58, + 58, + 58, + 58, + 58, + 105, + 173, + 173, + 246, + 258, + 258, + 356, + 81, + 81, + 81, + 81, + 81, + 153, + 153, + 248, + 248, + 248, + 256, + 256, + 256, + 256, + 256, + 362, + 362, + 228, + 359, + 359, + 242, + 204, + 223, + 386, + 62, + 62, + 62, + 126, + 126, + 126, + 126, + 126, + 126, + 187, + 187, + 187, + 187, + 288, + 322, + 322, + 322, + 322, + 346, + 128, + 182, + 182, + 182, + 182, + 243, + 9, + 161, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 277, + 384, + 384, + 384, + 384, + 384, + 11, + 58, + 130, + 130, + 130, + 130, + 130, + 170, + 294, + 294, + 303, + 0, + 0, + 86, + 109, + 109, + 109, + 166, + 287, + 287, + 386, + 386, + 16, + 57, + 57, + 57, + 57, + 147, + 185, + 208, + 208, + 302, + 302, + 302, + 302, + 20, + 137, + 180, + 238, + 238, + 395, + 395, + 263, + 395, + 395, + 22, + 141, + 175, + 375, + 375, + 375, + 375, + 375, + 375, + 41, + 106, + 106, + 193, + 216, + 216, + 376, + 376, + 376, + 44, + 44, + 132, + 132, + 132, + 132, + 132, + 156, + 156, + 156, + 156, + 156, + 245, + 245, + 245, + 245, + 274, + 274, + 373, + 47, + 72, + 125, + 163, + 163, + 279, + 341, + 341, + 14, + 14, + 125, + 125, + 333, + 333, + 0, + 103, + 341, + 252, + 341, + 341, + 341, + 27, + 27, + 76, + 141, + 246, + 253, + 253, + 348, + 14, + 149, + 192, + 192, + 192, + 206, + 206, + 206, + 206, + 252, + 252, + 252, + 252, + 325, + 28, + 76, + 76, + 76, + 76, + 76, + 76, + 149, + 157, + 157, + 157, + 157, + 227, + 227, + 227, + 227, + 260, + 260, + 260, + 384, + 10, + 59, + 138, + 159, + 292, + 292, + 373, + 373, + 373, + 373, + 8, + 8, + 156, + 156, + 216, + 216, + 216, + 266, + 266, + 266, + 266, + 370, + 370, + 7, + 7, + 140, + 140, + 140, + 201, + 297, + 297, + 368, + 368, + 0, + 81, + 215, + 260, + 330, + 330, + 375, + 358, + 358, + 400, + 352, + 108, + 352, + 352, + 9, + 353, + 161, + 161, + 36, + 136, + 136, + 200, + 308, + 308, + 308, + 12, + 155, + 155, + 390, + 390, + 224, + 390, + 131, + 226, + 261, + 389, + 335, + 207, + 215, + 6, + 154, + 352, + 38, + 38, + 359, + 359, + 98, + 98, + 98, + 359, + 359, + 359, + 188, + 289, + 139, + 82, + 382, + 382, + 16, + 16, + 82, + 82, + 139, + 139, + 199, + 199, + 199, + 247, + 289, + 289, + 381, + 381, + 52, + 52, + 130, + 130, + 130, + 174, + 174, + 174, + 213, + 253, + 253, + 253, + 253, + 397, + 75, + 124, + 124, + 124, + 156, + 156, + 228, + 273, + 273, + 273, + 352, + 33, + 33, + 77, + 77, + 145, + 244, + 244, + 338, + 14, + 135, + 49, + 395, + 49, + 83, + 141, + 380, + 380, + 380, + 125, + 125, + 125, + 125, + 180, + 86, + 86, + 131, + 131, + 123, + 145, + 145, + 82, + 145, + 145, + 125, + 125, + 142, + 109, + 134, + 134, + 134, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 244, + 244, + 282, + 282, + 297, + 297, + 297, + 297, + 297, + 381, + 42, + 271, + 271, + 49, + 49, + 163, + 279, + 135, + 380, + 22, + 135, + 135, + 135, + 135, + 168, + 168, + 233, + 343, + 343, + 246, + 234, + 234, + 165, + 232, + 15, + 15, + 51, + 250, + 32, + 32, + 32, + 32, + 115, + 115, + 165, + 165, + 165, + 165, + 203, + 276, + 276, + 318, + 318, + 22, + 91, + 141, + 247, + 286, + 235, + 262, + 262, + 357, + 357, + 272, + 272, + 272, + 79, + 103, + 234, + 234, + 272, + 272, + 272, + 272, + 272, + 46, + 46, + 144, + 180, + 180, + 180, + 180, + 180, + 204, + 277, + 68, + 68, + 114, + 226, + 226, + 65, + 43, + 65, + 65, + 144, + 144, + 144, + 196, + 196, + 333, + 333, + 333, + 333, + 21, + 121, + 121, + 271, + 108, + 108, + 283, + 283, + 114, + 368, + 368, + 99, + 99, + 114, + 162, + 162, + 208, + 354, + 102, + 187, + 187, + 187, + 187, + 187, + 258, + 258, + 258, + 258, + 323, + 49, + 66, + 66, + 66, + 66, + 66, + 66, + 66, + 145, + 145, + 151, + 218, + 218, + 360, + 30, + 30, + 186, + 250, + 341, + 341, + 390, + 400, + 7, + 7, + 7, + 7, + 200, + 312, + 312, + 317, + 317, + 317, + 317, + 317, + 2, + 109, + 154, + 154, + 154, + 242, + 320, + 375, + 200, + 375, + 203, + 203, + 203, + 375, + 375, + 375, + 146, + 242, + 348, + 65, + 303, + 303, + 303, + 303, + 182, + 182, + 303, + 38, + 257, + 257, + 257, + 358, + 358, + 312, + 364, + 102, + 102, + 364, + 376, + 376, + 376, + 343, + 343, + 343, + 343, + 318, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 337, + 274, + 274, + 339, + 51, + 223, + 262, + 262, + 262, + 61, + 32, + 86, + 84, + 23, + 30, + 58, + 58, + 261, + 261, + 191, + 191, + 191, + 191, + 241, + 261, + 261, + 261, + 79, + 79, + 246, + 246, + 365, + 365, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 5, + 88, + 161, + 161, + 161, + 161, + 161, + 161, + 247, + 247, + 350, + 350, + 36, + 36, + 36, + 69, + 192, + 331, + 221, + 221, + 331, + 331, + 331, + 331, + 73, + 15, + 15, + 15, + 73, + 73, + 197, + 257, + 257, + 314, + 314, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 90, + 125, + 125, + 163, + 163, + 204, + 278, + 380, + 380, + 15, + 60, + 60, + 60, + 125, + 151, + 239, + 239, + 291, + 291, + 385, + 81, + 122, + 122, + 122, + 122, + 122, + 122, + 174, + 209, + 341, + 96, + 134, + 134, + 213, + 253, + 253, + 253, + 253, + 365, + 365, + 365, + 365, + 147, + 147, + 147, + 163, + 163, + 290, + 369, + 244, + 262, + 262, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 213, + 395, + 395, + 17, + 65, + 65, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 150, + 150, + 379, + 379, + 379, + 12, + 12, + 58, + 140, + 140, + 289, + 154, + 154, + 289, + 373, + 23, + 62, + 111, + 111, + 302, + 1, + 62, + 62, + 47, + 90, + 90, + 90, + 90, + 233, + 308, + 272, + 272, + 272, + 272, + 308, + 308, + 218, + 218, + 293, + 290, + 290, + 57, + 110, + 137, + 191, + 393, + 393, + 393, + 393, + 28, + 28, + 28, + 28, + 154, + 89, + 154, + 227, + 227, + 352, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 195, + 195, + 227, + 227, + 227, + 350, + 350, + 350, + 10, + 71, + 71, + 170, + 239, + 239, + 239, + 239, + 320, + 320, + 320, + 320, + 200, + 200, + 200, + 81, + 81, + 81, + 81, + 138, + 138, + 138, + 200, + 226, + 264, + 315, + 104, + 180, + 180, + 180, + 180, + 180, + 266, + 266, + 266, + 311, + 15, + 15, + 111, + 99, + 99, + 99, + 111, + 111, + 111, + 155, + 227, + 227, + 270, + 270, + 321, + 84, + 84, + 84, + 84, + 125, + 194, + 194, + 194, + 194, + 253, + 302, + 302, + 302, + 41, + 41, + 80, + 80, + 103, + 103, + 199, + 199, + 199, + 199, + 199, + 199, + 256, + 373, + 86, + 86, + 86, + 42, + 42, + 86, + 117, + 154, + 295, + 247, + 295, + 399, + 44, + 53, + 282, + 282, + 282, + 327, + 327, + 38, + 38, + 38, + 60, + 146, + 245, + 245, + 245, + 245, + 245, + 259, + 259, + 330, + 330, + 330, + 330, + 330, + 23, + 23, + 23, + 77, + 215, + 274, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py new file mode 100644 index 0000000000..2943939481 --- /dev/null +++ b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py @@ -0,0 +1,6 @@ +from roundrobin import build + + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 7 flows.""" + build(7).emit() diff --git a/runt.toml b/runt.toml index d8ce40287c..320c1b8a26 100644 --- a/runt.toml +++ b/runt.toml @@ -131,7 +131,6 @@ python3 {} |\ [[tests]] name = "[calyx-py] queues correctness" paths = [ - "calyx-py/test/correctness/queues/*.py", "calyx-py/test/correctness/queues/binheap/*.py" ] cmd = """ @@ -146,6 +145,21 @@ python3 {} 20000 --keepgoing |\ -q """ +[[tests]] +name = "[calyx-py] queues correctness" +paths = ["calyx-py/test/correctness/queues/rr_queues/rr_queue*.py"] +cmd = """ +name=$(basename {} .py) && +dir=$(dirname {}) && +python3 {} 20000 |\ + fud e --from calyx --to jq \ + --through verilog \ + --through dat \ + -s verilog.data "$dir/$name.data" \ + -s jq.expr ".memories" \ + -q +""" + [[tests]] name = "[calyx-py] sdn no-promote correctness" paths = ["calyx-py/test/correctness/queues/sdn.py"] From 26f88e4483fef9ca60beedc075ebc76b0e3bf91f Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Tue, 2 Jul 2024 16:16:17 -0400 Subject: [PATCH 26/76] setup --- interp/src/debugger/cidr.rs | 45 +++++++++++++++++-------------------- interp/src/flatten/mod.rs | 3 +++ interp/src/main.rs | 17 +++++--------- 3 files changed, 28 insertions(+), 37 deletions(-) diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/cidr.rs index e73b3e9927..a86fc52b3d 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/cidr.rs @@ -10,18 +10,19 @@ use crate::{ errors::{InterpreterError, InterpreterResult}, flatten::{ flat_ir::prelude::GroupIdx, + setup_simulation, setup_simulation_with_metadata, structures::{context::Context, environment::Simulator}, }, serialization::PrintCode, }; -use std::collections::HashSet; +use std::{collections::HashSet, path::PathBuf, rc::Rc}; use calyx_ir::Id; use owo_colors::OwoColorize; use std::path::Path; -use std::rc::Rc; + /// Constant amount of space used for debugger messages pub(super) const SPACING: &str = " "; @@ -53,7 +54,7 @@ impl ProgramStatus { } /// The interactive Calyx debugger. The debugger itself is run with the -/// [Debugger::main_loop] function while this struct holds auxilliary +/// [Debugger::main_loop] function while this struct holds auxiliary /// information used to coordinate the debugging process. pub struct Debugger + Clone> { interpreter: Simulator, @@ -67,21 +68,21 @@ pub type OwnedDebugger = Debugger>; impl OwnedDebugger { /// construct a debugger instance from the target calyx file + /// todo: add support for data files pub fn from_file( file: &Path, lib_path: &Path, ) -> InterpreterResult<(Self, NewSourceMap)> { - // Make NewSourceMap, if we can't then we explode - // let mapping = ctx - // .metadata - // .map(|metadata| parse_metadata(&metadata)) - // .unwrap_or_else(|| Err(InterpreterError::MissingMetaData.into()))?; - - // Ok(( - // Debugger::new(&components, main_component, None, env).unwrap(), - // mapping, - // )) - todo!(); + let (ctx, map) = setup_simulation_with_metadata( + &Some(PathBuf::from(file)), + lib_path, + false, + )?; + + let debugger: Debugger> = + Self::new(Rc::new(ctx), None, None)?; + + Ok((debugger, map)) } } @@ -97,7 +98,7 @@ impl + Clone> Debugger { Ok(Self { interpreter, program_context, - debugging_context: todo!(), + debugging_context: DebuggingContext::new(), source_map, }) } @@ -126,11 +127,6 @@ impl + Clone> Debugger { self.debugging_context .set_current_time(self.interpreter.get_currently_running_groups()); - // let mut ctx = std::mem::replace( - // &mut self.debugging_context, - // DebuggingContext::new(&self._context, &self.main_component.name), - // ); - let mut breakpoints: Vec = vec![]; while breakpoints.is_empty() && !self.interpreter.is_done() { @@ -155,8 +151,6 @@ impl + Clone> Debugger { breakpoints.extend(self.debugging_context.hit_breakpoints()); } - // self.debugging_context = ctx; - if !self.interpreter.is_done() { for group in breakpoints { println!( @@ -402,13 +396,14 @@ impl + Clone> Debugger { } }; - Ok(if !self.interpreter.is_group_running(target) { + if !self.interpreter.is_group_running(target) { println!("Group is not currently running") } else { while self.interpreter.is_group_running(target) { self.interpreter.step()?; } - }) + }; + Ok(()) } fn create_breakpoints( @@ -463,7 +458,7 @@ impl + Clone> Debugger { } } } - _ => unreachable!(), + _ => unreachable!("improper use of manipulate_breakpoint"), } } diff --git a/interp/src/flatten/mod.rs b/interp/src/flatten/mod.rs index 74f1fb1f2c..d4d3d9c735 100644 --- a/interp/src/flatten/mod.rs +++ b/interp/src/flatten/mod.rs @@ -2,3 +2,6 @@ pub mod flat_ir; pub mod primitives; pub mod structures; pub(crate) mod text_utils; + +mod setup; +pub use setup::{setup_simulation, setup_simulation_with_metadata}; diff --git a/interp/src/main.rs b/interp/src/main.rs index 9f156ec4c1..0d6e68e713 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -137,19 +137,12 @@ fn main() -> InterpreterResult<()> { warn!(log, "You have enabled Par conflicts. This is not recommended and is usually a bad idea") } - // Construct IR - let ws = frontend::Workspace::construct(&opts.file, &opts.lib_path)?; - let mut ctx = ir::from_ast::ast_to_ir(ws)?; - let pm = PassManager::default_passes()?; - - if !opts.skip_verification { - pm.execute_plan(&mut ctx, &["validate".to_string()], &[], &[], false)?; - } - let command = opts.mode.unwrap_or(Command::Interpret(CommandInterpret {})); - - // general setup - let i_ctx = interp::flatten::flat_ir::translate(&ctx); + let i_ctx = interp::flatten::setup_simulation( + &opts.file, + &opts.lib_path, + opts.skip_verification, + )?; match &command { Command::Interpret(_) => { From ec8a4b339b5eaa57477ae8d9afd315fdf04f3634 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Tue, 2 Jul 2024 16:16:42 -0400 Subject: [PATCH 27/76] oops --- interp/src/flatten/setup.rs | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 interp/src/flatten/setup.rs diff --git a/interp/src/flatten/setup.rs b/interp/src/flatten/setup.rs new file mode 100644 index 0000000000..90faf63147 --- /dev/null +++ b/interp/src/flatten/setup.rs @@ -0,0 +1,57 @@ +use calyx_frontend as frontend; +use calyx_ir as ir; +use calyx_opt::pass_manager::PassManager; +use std::path::{Path, PathBuf}; + +use crate::{ + debugger::source::structures::NewSourceMap, errors::InterpreterResult, +}; + +use super::structures::context::Context; + +#[inline] +fn do_setup( + file: &Option, + lib_path: &Path, + skip_verification: bool, +) -> InterpreterResult<(Context, InterpreterResult)> { + // Construct IR + let ws = frontend::Workspace::construct(file, lib_path)?; + let mut ctx = ir::from_ast::ast_to_ir(ws)?; + let pm = PassManager::default_passes()?; + + if !skip_verification { + pm.execute_plan(&mut ctx, &["validate".to_string()], &[], &[], false)?; + } + + let mapping = ctx + .metadata + .as_ref() + .map(|metadata| { + crate::debugger::source::new_parser::parse_metadata(&metadata) + }) + .unwrap_or_else(|| { + Err(crate::errors::InterpreterError::MissingMetaData.into()) + }); + + // general setup + Ok((crate::flatten::flat_ir::translate(&ctx), mapping)) +} + +pub fn setup_simulation( + file: &Option, + lib_path: &Path, + skip_verification: bool, +) -> InterpreterResult { + let (ctx, _) = do_setup(file, lib_path, skip_verification)?; + Ok(ctx) +} + +pub fn setup_simulation_with_metadata( + file: &Option, + lib_path: &Path, + skip_verification: bool, +) -> InterpreterResult<(Context, NewSourceMap)> { + let (ctx, mapping) = do_setup(file, lib_path, skip_verification)?; + Ok((ctx, mapping?)) +} From 4e69a9a153d6d6a13d5035a0b9a0c079e6d4cb73 Mon Sep 17 00:00:00 2001 From: Akash Dhiraj Date: Tue, 2 Jul 2024 22:54:20 -0400 Subject: [PATCH 28/76] Re-enable old queue tests (#2194) It looks like `calyx-py/test/correctness/queues/*.py` was removed from the path of its runt test by #2177: i.e. the old `fifo`, `pifo`, and `pifo_tree` tests aren't running at CI. Was this intentional? In case it wasn't, I've made a minor fix to `runt.toml`. --- runt.toml | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/runt.toml b/runt.toml index 320c1b8a26..d97d2b12e4 100644 --- a/runt.toml +++ b/runt.toml @@ -131,7 +131,9 @@ python3 {} |\ [[tests]] name = "[calyx-py] queues correctness" paths = [ - "calyx-py/test/correctness/queues/binheap/*.py" + "calyx-py/test/correctness/queues/*.py", + "calyx-py/test/correctness/queues/binheap/*.py", + "calyx-py/test/correctness/queues/rr_queues/rr_queue*.py" ] cmd = """ name=$(basename {} .py) && @@ -145,21 +147,6 @@ python3 {} 20000 --keepgoing |\ -q """ -[[tests]] -name = "[calyx-py] queues correctness" -paths = ["calyx-py/test/correctness/queues/rr_queues/rr_queue*.py"] -cmd = """ -name=$(basename {} .py) && -dir=$(dirname {}) && -python3 {} 20000 |\ - fud e --from calyx --to jq \ - --through verilog \ - --through dat \ - -s verilog.data "$dir/$name.data" \ - -s jq.expr ".memories" \ - -q -""" - [[tests]] name = "[calyx-py] sdn no-promote correctness" paths = ["calyx-py/test/correctness/queues/sdn.py"] From f59b8932f253c9ddc58939d47be3a83320ee0701 Mon Sep 17 00:00:00 2001 From: Ethan Uppal <113849268+ethanuppal@users.noreply.github.com> Date: Wed, 3 Jul 2024 13:42:44 -0400 Subject: [PATCH 29/76] Add git hooks and setup (#2188) Automatically `cargo clippy` and others before you commit --- .hooks/pre-commit | 24 ++++++++++++++++++++++++ docs/intro.md | 5 +++++ setup_hooks.sh | 7 +++++++ 3 files changed, 36 insertions(+) create mode 100644 .hooks/pre-commit create mode 100644 setup_hooks.sh diff --git a/.hooks/pre-commit b/.hooks/pre-commit new file mode 100644 index 0000000000..218bdaf7c1 --- /dev/null +++ b/.hooks/pre-commit @@ -0,0 +1,24 @@ +#/bin/sh + +function check { + prog=$1 + shift + "$prog" "$@" + if [ $? -ne 0 ]; then + exit 1 + fi +} + +check cargo clippy + +staged_py_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$') + +if [ -n "$staged_py_files" ]; then + flake8_executable=$(which flake8 || which flake) + if [ -z "$flake8_executable" ]; then + echo "flake is not installed" + exit 1 + else + check "$flake8_executable" $staged_py_files + fi +fi diff --git a/docs/intro.md b/docs/intro.md index 5988c96758..447f2cd20c 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -56,6 +56,11 @@ cargo build # Builds the compiler ./target/debug/calyx --help # Executes the compiler binary ``` +We recommend installing the git hooks to run linting and formatting checks before each commit: +```shell +/bin/sh setup_hooks.sh +``` + ## Running Core Tests The core test suite tests the Calyx compiler's various passes. diff --git a/setup_hooks.sh b/setup_hooks.sh new file mode 100644 index 0000000000..a087a6e5df --- /dev/null +++ b/setup_hooks.sh @@ -0,0 +1,7 @@ +#/bin/sh + +for hook in .hooks/*; do + hook_name=$(basename "$hook") + cp "$hook" ".git/hooks/$hook_name" && chmod +x ".git/hooks/$hook_name" +done +echo "Done" From 75c5cb8d2c0bfbf6e19a0bda8a1c43208dc0849a Mon Sep 17 00:00:00 2001 From: csziklai <142637613+csziklai@users.noreply.github.com> Date: Wed, 3 Jul 2024 15:28:30 -0400 Subject: [PATCH 30/76] Strict PIFO oracle and eDSL implementation (#2189) This PR ties off the last half of #1810. It implements the python oracle and Calyx eDSL for strict PIFOs, which are generalized to n flows. Flows have a strict order of priority, which determines popping and peeking order. If the highest priority flow is silent when it is its turn, that flow simply skips its turn and the next flow is offered service. If that higher priority flow get pushed to in the interim, the next call to pop/peek will return from that flow. To re-generate the test files with 20000 commands and a max length of 16, type in the command line after navigating to the directory calyx/calyx-py/calyx ``` ./gen_queue_data_expect.sh ``` To run the runt tests on the eDSL implementation, type ``` runt -i "strict" ``` --------- Co-authored-by: Cassandra Nicole Sziklai Co-authored-by: Anshuman Mohan Co-authored-by: Anshuman Mohan <10830208+anshumanmohan@users.noreply.github.com> --- calyx-py/calyx/gen_queue_data_expect.sh | 9 + calyx-py/calyx/queues.py | 101 + calyx-py/calyx/strict_queue_oracle.py | 35 + .../queues/rr_queues/rr_queue_2flows.py | 6 - .../queues/rr_queues/rr_queue_3flows.py | 6 - .../queues/rr_queues/rr_queue_4flows.py | 6 - .../queues/rr_queues/rr_queue_5flows.py | 6 - .../queues/rr_queues/rr_queue_6flows.py | 6 - .../queues/rr_queues/rr_queue_7flows.py | 6 - .../gen_strict_or_rr.py} | 60 +- .../rr_queues/rr_queue_2flows.data | 0 .../rr_queues/rr_queue_2flows.expect | 0 .../rr_queues/rr_queue_2flows.py | 13 + .../rr_queues/rr_queue_3flows.data | 0 .../rr_queues/rr_queue_3flows.expect | 0 .../rr_queues/rr_queue_3flows.py | 13 + .../rr_queues/rr_queue_4flows.data | 0 .../rr_queues/rr_queue_4flows.expect | 0 .../rr_queues/rr_queue_4flows.py | 13 + .../rr_queues/rr_queue_5flows.data | 0 .../rr_queues/rr_queue_5flows.expect | 0 .../rr_queues/rr_queue_5flows.py | 13 + .../rr_queues/rr_queue_6flows.data | 0 .../rr_queues/rr_queue_6flows.expect | 0 .../rr_queues/rr_queue_6flows.py | 13 + .../rr_queues/rr_queue_7flows.data | 0 .../rr_queues/rr_queue_7flows.expect | 0 .../rr_queues/rr_queue_7flows.py | 13 + .../strict_queues/strict_2flows.data | 60029 ++++++++++++++++ .../strict_queues/strict_2flows.expect | 60008 +++++++++++++++ .../strict_queues/strict_2flows.py | 13 + .../strict_queues/strict_3flows.data | 60029 ++++++++++++++++ .../strict_queues/strict_3flows.expect | 60008 +++++++++++++++ .../strict_queues/strict_3flows.py | 13 + .../strict_queues/strict_4flows.data | 60029 ++++++++++++++++ .../strict_queues/strict_4flows.expect | 60008 +++++++++++++++ .../strict_queues/strict_4flows.py | 13 + .../strict_queues/strict_5flows.data | 60029 ++++++++++++++++ .../strict_queues/strict_5flows.expect | 60008 +++++++++++++++ .../strict_queues/strict_5flows.py | 13 + .../strict_queues/strict_6flows.data | 60029 ++++++++++++++++ .../strict_queues/strict_6flows.expect | 60008 +++++++++++++++ .../strict_queues/strict_6flows.py | 13 + runt.toml | 4 +- 44 files changed, 600516 insertions(+), 57 deletions(-) create mode 100644 calyx-py/calyx/strict_queue_oracle.py delete mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py delete mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py delete mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py delete mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py delete mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py delete mode 100644 calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py rename calyx-py/test/correctness/queues/{rr_queues/roundrobin.py => strict_and_rr_queues/gen_strict_or_rr.py} (79%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_2flows.data (100%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_2flows.expect (100%) create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.py rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_3flows.data (100%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_3flows.expect (100%) create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.py rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_4flows.data (100%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_4flows.expect (100%) create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.py rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_5flows.data (100%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_5flows.expect (100%) create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.py rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_6flows.data (100%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_6flows.expect (100%) create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.py rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_7flows.data (100%) rename calyx-py/test/correctness/queues/{ => strict_and_rr_queues}/rr_queues/rr_queue_7flows.expect (100%) create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.py create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.data create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.expect create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.py create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.data create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.expect create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.py create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.data create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.expect create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.py create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.data create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.expect create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.py create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.data create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.expect create mode 100644 calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.py diff --git a/calyx-py/calyx/gen_queue_data_expect.sh b/calyx-py/calyx/gen_queue_data_expect.sh index 85dc843cf5..4e944ed2f7 100755 --- a/calyx-py/calyx/gen_queue_data_expect.sh +++ b/calyx-py/calyx/gen_queue_data_expect.sh @@ -34,3 +34,12 @@ for n in {2..7}; do python3 queue_data_gen.py $num_cmds > ../test/correctness/queues/rr_queues/rr_queue_${n}flows.data cat ../test/correctness/queues/rr_queues/rr_queue_${n}flows.data | python3 rrqueue_oracle.py $num_cmds $queue_size $n --keepgoing > ../test/correctness/queues/rr_queues/rr_queue_${n}flows.expect done + +# For Strict queues, we use strict_queue_oracle.py to generate the expected output +# for queues with 2..6 flows, each with a different strict ordering. This generates 5 +# expect file pairs. + +for n in {2..6}; do + python3 queue_data_gen.py $num_cmds > ../test/correctness/queues/strict_queues/strict_${n}flows.data + cat ../test/correctness/queues/strict_queues/strict_${n}flows.data | python3 strict_queue_oracle.py $num_cmds $queue_size $n --keepgoing > ../test/correctness/queues/strict_queues/strict_${n}flows.expect +done diff --git a/calyx-py/calyx/queues.py b/calyx-py/calyx/queues.py index 46fc395dbd..6ec6cf54a1 100644 --- a/calyx-py/calyx/queues.py +++ b/calyx-py/calyx/queues.py @@ -40,6 +40,9 @@ def peek(self) -> Optional[int]: def __len__(self) -> int: return len(self.data) + def __str__(self): + return str(self.data) + @dataclass class Pifo: @@ -283,6 +286,104 @@ def __len__(self) -> int: return self.pifo_len +@dataclass +class StrictPifo: + """ + This is a version of a PIFO generalized to `n` flows, with a strict policy. + Flows have a strict order of priority, which determines popping and peeking + order. If the highest priority flow is silent when it is its turn, that flow + simply skips its turn and the next flow is offered service. If a higher + priority flow get pushed to in the interim, the next call to pop/peek will + return from that flow. + + Supports the operations `push`, `pop`, and `peek`. + It takes in a list `boundaries` that must be of length `n`, using which the + client can divide the incoming traffic into `n` flows. + For example, if n = 3 and the client passes boundaries [133, 266, 400], + packets will be divided into three flows: [0, 133], [134, 266], [267, 400]. + + It takes a list `order` that must be of length `n`, which specifies the order + of priority of the flows. For example, if n = 3 and the client passes order + [1, 2, 0], flow 1 (packets in range [134, 266]) is first priority, flow 2 + (packets in range [267, 400]) is second priority, and flow 0 (packets in range + [0, 133]) is last priority. + + - At push, we check the `boundaries` list to determine which flow to push to. + Take the boundaries example given earlier, [133, 266, 400]. + If we push the value 89, it will end up in flow 0 becuase 89 <= 133, + and 305 would end up in flow 2 since 266 <= 305 <= 400. + - Pop first tries to pop from `order[0]`. If this succeeds, great. If it fails, + it tries `order[1]`, etc. + - Peek allows the client to see which element is at the head of the queue + without removing it. Thus, peek works in a similar fashion to `pop`. Further, + nothing is actually dequeued. + """ + + def __init__(self, n, boundaries, order, max_len: int): + self.order = order + self.priority = 0 + self.n = n + self.pifo_len = 0 + self.boundaries = boundaries + self.data = [Fifo(max_len) for _ in range(n)] + + self.max_len = max_len + + def push(self, val: int): + """Works the same as in RRQueue. Pushes `val` to the PIFO.""" + if self.pifo_len == self.max_len: + raise QueueError("Cannot push to full PIFO.") + for b in range(self.n): + if val <= self.boundaries[b]: + idx = self.order.index(b) + self.data[idx].push(val) + self.pifo_len += 1 + break + + def next_priority(self): + """Increments priority, taking into account wrap around.""" + self.priority = 0 if self.priority == (self.n - 1) else self.priority + 1 + + def pop(self): + """Pops the PIFO.""" + if self.pifo_len == 0: + raise QueueError("Cannot pop from empty PIFO.") + + original_priority = self.priority + + while True: + try: + val = self.data[self.priority].pop() + if val is not None: + self.pifo_len -= 1 + self.priority = original_priority + return val + else: + self.next_priority() + except QueueError: + self.next_priority() + + def peek(self) -> Optional[int]: + """Peeks into the PIFO.""" + if self.pifo_len == 0: + raise QueueError("Cannot peek into empty PIFO.") + + original_priority = self.priority + while True: + try: + val = self.data[self.priority].peek() + if val is not None: + self.priority = original_priority + return val + else: + self.next_priority() + except QueueError: + self.next_priority() + + def __len__(self) -> int: + return self.pifo_len + + def operate_queue(queue, max_cmds, commands, values, ranks=None, keepgoing=False): """Given the two lists, one of commands and one of values. Feed these into our queue, and return the answer memory. diff --git a/calyx-py/calyx/strict_queue_oracle.py b/calyx-py/calyx/strict_queue_oracle.py new file mode 100644 index 0000000000..040dc99f5d --- /dev/null +++ b/calyx-py/calyx/strict_queue_oracle.py @@ -0,0 +1,35 @@ +import sys +import calyx.queues as queues +from calyx import queue_util + +if __name__ == "__main__": + num_cmds, len, numflows = int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]) + keepgoing = "--keepgoing" in sys.argv + commands, values, _ = queue_util.parse_json() + + if numflows == 2: + boundaries = [200, 400] + order = [1, 0] + elif numflows == 3: + boundaries = [133, 266, 400] + order = [1, 2, 0] + elif numflows == 4: + boundaries = [100, 200, 300, 400] + order = [3, 0, 2, 1] + elif numflows == 5: + boundaries = [80, 160, 240, 320, 400] + order = [0, 1, 2, 3, 4] + elif numflows == 6: + boundaries = [66, 100, 200, 220, 300, 400] + order = [3, 1, 5, 2, 4, 0] + else: + raise ValueError("Unsupported number of flows") + + # Our Strict queue orchestrates n FIFOs. It takes in a list of + # boundaries of length n, as well as a list `order` which specifies the ranked + # order of the flows. + pifo = queues.StrictPifo(numflows, boundaries, order, len) + + ans = queues.operate_queue(pifo, num_cmds, commands, values, keepgoing=keepgoing) + + queue_util.dump_json(ans, commands, values) \ No newline at end of file diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py deleted file mode 100644 index a79bd3c16e..0000000000 --- a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.py +++ /dev/null @@ -1,6 +0,0 @@ -from roundrobin import build - - -if __name__ == "__main__": - """Invoke the top-level function to build the program, with 2 flows.""" - build(2).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py deleted file mode 100644 index 01ae49c808..0000000000 --- a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.py +++ /dev/null @@ -1,6 +0,0 @@ -from roundrobin import build - - -if __name__ == "__main__": - """Invoke the top-level function to build the program, with 3 flows.""" - build(3).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py deleted file mode 100644 index 5c3ecb5cab..0000000000 --- a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.py +++ /dev/null @@ -1,6 +0,0 @@ -from roundrobin import build - - -if __name__ == "__main__": - """Invoke the top-level function to build the program, with 4 flows.""" - build(4).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py deleted file mode 100644 index 9566796ab4..0000000000 --- a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.py +++ /dev/null @@ -1,6 +0,0 @@ -from roundrobin import build - - -if __name__ == "__main__": - """Invoke the top-level function to build the program, with 5 flows.""" - build(5).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py deleted file mode 100644 index 997670ffc3..0000000000 --- a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.py +++ /dev/null @@ -1,6 +0,0 @@ -from roundrobin import build - - -if __name__ == "__main__": - """Invoke the top-level function to build the program, with 6 flows.""" - build(6).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py b/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py deleted file mode 100644 index 2943939481..0000000000 --- a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.py +++ /dev/null @@ -1,6 +0,0 @@ -from roundrobin import build - - -if __name__ == "__main__": - """Invoke the top-level function to build the program, with 7 flows.""" - build(7).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/roundrobin.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/gen_strict_or_rr.py similarity index 79% rename from calyx-py/test/correctness/queues/rr_queues/roundrobin.py rename to calyx-py/test/correctness/queues/strict_and_rr_queues/gen_strict_or_rr.py index 59aa2217a2..2743e3bf56 100644 --- a/calyx-py/test/correctness/queues/rr_queues/roundrobin.py +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/gen_strict_or_rr.py @@ -1,11 +1,8 @@ # pylint: disable=import-error -"""Common code factored out, to be imported by the different flow implementations.""" -# pylint: disable=import-error import os import sys import inspect -# Hackery to import `fifo` from the parent directory. currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) parentdir = os.path.dirname(currentdir) sys.path.insert(0, parentdir) @@ -13,7 +10,7 @@ import fifo import calyx.builder as cb import calyx.queue_call as qc - +import calyx.py_ast as ast # This determines the maximum possible length of the queue: # The max length of the queue will be 2^QUEUE_LEN_FACTOR. @@ -36,15 +33,18 @@ def invoke_subqueue(queue_cell, cmd, value, ans, err) -> cb.invoke: ) -def insert_rr_pifo( - prog, - name, - fifos, - boundaries, - numflows, - queue_len_factor=QUEUE_LEN_FACTOR, +def insert_queue( + prog, name, fifos, boundaries, numflows, order, round_robin, queue_len_factor=QUEUE_LEN_FACTOR ): - """Inserts the component `pifo` into the program.""" + """ + Inserts the component `pifo` into the program. If round_robin is true, it + inserts a round robin queue, otherwise it inserts a strict queue. `numflows` + is the number of flows, which must be an integer greater than 0. Boundaries + must be of length `numflows` + 1, where the first boundary is the smallest + number a value can take (eg. 0). `order` is used for strict queues to determine + the order of priority of the subqueues. `order` must be a list of length + `numflows`. + """ pifo: cb.ComponentBuilder = prog.component(name) cmd = pifo.input("cmd", 2) # the size in bits is 2 @@ -105,7 +105,16 @@ def insert_rr_pifo( invoke_subqueue(fifo_cells[b], cmd, value, ans, err) # In the specical case when b = 0, # we don't need to check the lower bound and we can just `invoke`. - if b == 0 + if b == 0 and round_robin + + else + invoke_subqueue(fifo_cells[order.index(b)], cmd, value, ans, err) + + if b == 0 and not round_robin + else cb.if_with( + pifo.gt_use(value, boundaries[b]), # value > boundaries[b] + invoke_subqueue(fifo_cells[order.index(b)], cmd, value, ans, err),) + if not round_robin # Otherwise, we need to check the lower bound and `invoke` # only if the value is in the interval. else cb.if_with( @@ -118,7 +127,7 @@ def insert_rr_pifo( ] invoke_subqueues_value_guard = cb.par( invoke_subqueues_value_guard_seq - ) # Execute the above in parallel. + ) # Execute in parallel. incr_hot_wraparound = cb.if_with( # If hot = numflows - 1, we need to wrap around to 0. Otherwise, we increment. @@ -131,6 +140,7 @@ def insert_rr_pifo( len_eq_0, raise_err, # The queue is empty: underflow. [ # The queue is not empty. Proceed. + copy_hot, # We remember `hot` so we can restore it later. raise_err, # We raise err so we enter the loop body at least once. cb.while_with( err_is_high, @@ -138,14 +148,17 @@ def insert_rr_pifo( # Either we are here for the first time, # or we are here because the previous iteration raised an error # and incremented `hot` for us. - # We'll try to pop from `fifo_cells[hot]`. + # We'll try to peek from `fifo_cells[hot]`. # We'll pass it a lowered `err`. lower_err, invoke_subqueues_hot_guard, - incr_hot_wraparound, # Increment hot - ], # Some pop succeeded. Its answer is our answer. + incr_hot_wraparound, # Increment hot: this will be used + # only if the current subqueue raised an error, + # and another iteration is needed. + ], ), len_decr, + restore_hot if not round_robin else ast.Empty ], ) @@ -203,30 +216,37 @@ def insert_rr_pifo( return pifo -def build(numflows): +def build(numflows, roundrobin): """Top-level function to build the program.""" if numflows == 2: boundaries = [0, 200, 400] + order = [1, 0] elif numflows == 3: boundaries = [0, 133, 266, 400] + order = [1, 2, 0] elif numflows == 4: boundaries = [0, 100, 200, 300, 400] + order = [3, 0, 2, 1] elif numflows == 5: boundaries = [0, 80, 160, 240, 320, 400] + order = [0, 1, 2, 3, 4] elif numflows == 6: boundaries = [0, 66, 100, 200, 220, 300, 400] + order = [3, 1, 5, 2, 4, 0] elif numflows == 7: boundaries = [0, 50, 100, 150, 200, 250, 300, 400] + order = [0, 1, 2, 3, 4, 5, 6] else: raise ValueError("Unsupported number of flows") num_cmds = int(sys.argv[1]) + keepgoing = "--keepgoing" in sys.argv prog = cb.Builder() sub_fifos = [ fifo.insert_fifo(prog, f"fifo{i}", QUEUE_LEN_FACTOR) for i in range(numflows) ] - pifo = insert_rr_pifo(prog, "pifo", sub_fifos, boundaries, numflows) - qc.insert_main(prog, pifo, num_cmds) + pifo = insert_queue(prog, "pifo", sub_fifos, boundaries, numflows, order, roundrobin) + qc.insert_main(prog, pifo, num_cmds, keepgoing=keepgoing) return prog.program diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.data similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.data rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.data diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.expect similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_2flows.expect rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.expect diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.py new file mode 100644 index 0000000000..db628b7a77 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_2flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 2 flows.""" + build(2, True).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.data similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.data rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.data diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.expect similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_3flows.expect rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.expect diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.py new file mode 100644 index 0000000000..8d4611eb6f --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_3flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 3 flows.""" + build(3, True).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.data similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.data rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.data diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.expect similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_4flows.expect rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.expect diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.py new file mode 100644 index 0000000000..1c04316ef3 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_4flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 4 flows.""" + build(4, True).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.data similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.data rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.data diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.expect similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_5flows.expect rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.expect diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.py new file mode 100644 index 0000000000..6decedad05 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_5flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 5 flows.""" + build(5, True).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.data similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.data rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.data diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.expect similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_6flows.expect rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.expect diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.py new file mode 100644 index 0000000000..9f25b7ee17 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_6flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 6 flows.""" + build(6, True).emit() diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.data similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.data rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.data diff --git a/calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.expect similarity index 100% rename from calyx-py/test/correctness/queues/rr_queues/rr_queue_7flows.expect rename to calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.expect diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.py new file mode 100644 index 0000000000..361833ba14 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/rr_queue_7flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 7 flows.""" + build(7, True).emit() diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.expect new file mode 100644 index 0000000000..7c0ad4e6f1 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 275, + 243, + 243, + 330, + 329, + 203, + 310, + 310, + 310, + 121, + 291, + 256, + 121, + 268, + 354, + 354, + 380, + 307, + 262, + 130, + 80, + 80, + 80, + 363, + 388, + 388, + 242, + 242, + 242, + 242, + 242, + 242, + 299, + 299, + 299, + 325, + 40, + 40, + 243, + 243, + 243, + 287, + 287, + 287, + 287, + 106, + 106, + 321, + 176, + 61, + 125, + 125, + 125, + 125, + 306, + 306, + 306, + 296, + 296, + 95, + 205, + 205, + 145, + 145, + 309, + 145, + 145, + 145, + 145, + 171, + 83, + 341, + 341, + 341, + 212, + 79, + 215, + 215, + 125, + 238, + 238, + 238, + 238, + 238, + 318, + 221, + 216, + 216, + 216, + 133, + 306, + 221, + 221, + 80, + 361, + 168, + 168, + 231, + 231, + 231, + 231, + 231, + 231, + 231, + 168, + 5, + 5, + 241, + 241, + 241, + 11, + 312, + 312, + 181, + 281, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 300, + 254, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 314, + 314, + 314, + 314, + 238, + 366, + 330, + 330, + 330, + 330, + 293, + 293, + 253, + 253, + 253, + 253, + 372, + 378, + 219, + 219, + 323, + 251, + 391, + 181, + 181, + 98, + 12, + 167, + 162, + 82, + 82, + 3, + 3, + 267, + 177, + 177, + 177, + 177, + 219, + 250, + 177, + 69, + 69, + 36, + 36, + 36, + 36, + 36, + 305, + 305, + 318, + 318, + 183, + 332, + 332, + 332, + 332, + 203, + 203, + 203, + 203, + 203, + 343, + 290, + 290, + 290, + 183, + 60, + 150, + 150, + 82, + 82, + 90, + 276, + 308, + 308, + 308, + 308, + 308, + 356, + 356, + 356, + 356, + 356, + 356, + 354, + 354, + 354, + 354, + 354, + 354, + 209, + 209, + 209, + 209, + 209, + 346, + 346, + 306, + 217, + 217, + 90, + 90, + 21, + 129, + 129, + 66, + 220, + 220, + 246, + 246, + 66, + 98, + 98, + 98, + 90, + 90, + 90, + 90, + 374, + 208, + 310, + 90, + 90, + 297, + 297, + 297, + 90, + 90, + 90, + 90, + 21, + 119, + 0, + 0, + 0, + 388, + 378, + 76, + 76, + 310, + 310, + 310, + 310, + 310, + 332, + 332, + 332, + 76, + 76, + 151, + 151, + 303, + 303, + 303, + 151, + 89, + 400, + 400, + 400, + 89, + 255, + 89, + 11, + 113, + 113, + 170, + 300, + 18, + 18, + 18, + 161, + 161, + 161, + 183, + 109, + 120, + 359, + 256, + 351, + 351, + 351, + 278, + 400, + 91, + 91, + 81, + 223, + 191, + 238, + 222, + 222, + 95, + 95, + 332, + 380, + 380, + 220, + 162, + 162, + 63, + 269, + 269, + 269, + 269, + 269, + 301, + 312, + 312, + 323, + 323, + 248, + 248, + 397, + 252, + 252, + 252, + 63, + 86, + 86, + 296, + 296, + 86, + 6, + 218, + 218, + 120, + 157, + 45, + 180, + 180, + 103, + 103, + 103, + 103, + 103, + 121, + 227, + 227, + 54, + 41, + 380, + 41, + 154, + 182, + 182, + 87, + 255, + 255, + 255, + 165, + 165, + 367, + 367, + 367, + 367, + 286, + 286, + 286, + 286, + 286, + 201, + 337, + 165, + 165, + 7, + 195, + 144, + 195, + 152, + 12, + 128, + 198, + 198, + 310, + 310, + 198, + 198, + 198, + 198, + 198, + 198, + 198, + 198, + 8, + 40, + 149, + 41, + 36, + 36, + 36, + 36, + 51, + 51, + 154, + 154, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 244, + 127, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 30, + 30, + 30, + 30, + 362, + 362, + 256, + 164, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 382, + 123, + 14, + 14, + 142, + 122, + 82, + 321, + 321, + 181, + 189, + 92, + 92, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 348, + 237, + 387, + 387, + 387, + 206, + 327, + 43, + 43, + 43, + 80, + 80, + 80, + 80, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 207, + 8, + 8, + 8, + 79, + 338, + 79, + 79, + 143, + 143, + 143, + 366, + 217, + 13, + 281, + 315, + 315, + 3, + 157, + 3, + 374, + 353, + 3, + 3, + 3, + 3, + 105, + 105, + 105, + 105, + 51, + 241, + 241, + 51, + 51, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 2, + 135, + 209, + 135, + 240, + 208, + 208, + 333, + 333, + 255, + 255, + 255, + 255, + 255, + 255, + 223, + 347, + 347, + 347, + 256, + 360, + 360, + 360, + 361, + 213, + 260, + 260, + 260, + 260, + 348, + 348, + 339, + 203, + 360, + 363, + 363, + 363, + 382, + 382, + 223, + 398, + 74, + 235, + 235, + 235, + 382, + 382, + 382, + 74, + 282, + 282, + 282, + 282, + 316, + 316, + 320, + 393, + 42, + 42, + 42, + 42, + 189, + 81, + 109, + 109, + 144, + 85, + 235, + 235, + 235, + 249, + 249, + 249, + 325, + 325, + 325, + 325, + 309, + 309, + 9, + 9, + 175, + 107, + 59, + 257, + 299, + 299, + 239, + 239, + 256, + 256, + 206, + 59, + 59, + 40, + 30, + 30, + 188, + 254, + 254, + 305, + 305, + 188, + 71, + 26, + 194, + 64, + 149, + 149, + 168, + 313, + 168, + 168, + 168, + 201, + 260, + 260, + 184, + 101, + 132, + 92, + 92, + 92, + 24, + 379, + 24, + 181, + 320, + 320, + 320, + 181, + 154, + 154, + 222, + 105, + 105, + 105, + 215, + 105, + 105, + 105, + 112, + 87, + 87, + 316, + 87, + 87, + 87, + 86, + 86, + 312, + 86, + 34, + 34, + 34, + 34, + 16, + 16, + 20, + 95, + 95, + 55, + 55, + 76, + 141, + 141, + 313, + 313, + 313, + 108, + 108, + 33, + 98, + 98, + 98, + 13, + 13, + 304, + 13, + 331, + 301, + 301, + 287, + 142, + 121, + 272, + 346, + 239, + 226, + 226, + 226, + 226, + 226, + 121, + 88, + 88, + 7, + 7, + 17, + 17, + 128, + 52, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 159, + 159, + 77, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 206, + 386, + 386, + 238, + 147, + 147, + 187, + 364, + 75, + 237, + 179, + 179, + 87, + 40, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 295, + 295, + 295, + 295, + 295, + 394, + 392, + 392, + 190, + 234, + 234, + 219, + 219, + 219, + 219, + 394, + 394, + 394, + 166, + 166, + 343, + 321, + 321, + 200, + 175, + 16, + 75, + 75, + 150, + 150, + 150, + 150, + 150, + 150, + 35, + 192, + 192, + 192, + 306, + 306, + 306, + 113, + 255, + 255, + 255, + 233, + 362, + 53, + 53, + 144, + 161, + 161, + 323, + 323, + 331, + 190, + 190, + 197, + 222, + 222, + 266, + 309, + 256, + 242, + 197, + 274, + 274, + 274, + 269, + 269, + 308, + 308, + 308, + 308, + 308, + 308, + 308, + 72, + 354, + 354, + 354, + 354, + 299, + 72, + 72, + 72, + 37, + 37, + 173, + 92, + 92, + 0, + 0, + 0, + 0, + 181, + 113, + 86, + 86, + 267, + 267, + 267, + 321, + 154, + 154, + 154, + 324, + 154, + 132, + 150, + 365, + 365, + 365, + 365, + 150, + 167, + 167, + 167, + 167, + 167, + 238, + 299, + 362, + 167, + 167, + 45, + 287, + 287, + 380, + 370, + 370, + 220, + 220, + 220, + 50, + 50, + 50, + 160, + 160, + 51, + 319, + 319, + 319, + 319, + 51, + 77, + 77, + 21, + 127, + 0, + 212, + 212, + 142, + 142, + 142, + 46, + 86, + 86, + 297, + 297, + 293, + 293, + 293, + 281, + 281, + 281, + 397, + 386, + 99, + 222, + 162, + 237, + 237, + 237, + 174, + 174, + 174, + 174, + 174, + 150, + 23, + 128, + 313, + 128, + 148, + 148, + 186, + 170, + 170, + 312, + 312, + 312, + 312, + 312, + 312, + 293, + 293, + 293, + 293, + 293, + 264, + 324, + 165, + 323, + 165, + 165, + 179, + 40, + 97, + 320, + 129, + 129, + 129, + 129, + 272, + 272, + 68, + 68, + 68, + 68, + 29, + 46, + 154, + 132, + 132, + 132, + 365, + 365, + 365, + 338, + 338, + 358, + 358, + 358, + 358, + 358, + 132, + 333, + 132, + 32, + 185, + 185, + 14, + 14, + 14, + 14, + 261, + 261, + 261, + 261, + 14, + 69, + 218, + 69, + 69, + 69, + 69, + 186, + 70, + 101, + 101, + 72, + 117, + 155, + 275, + 297, + 297, + 109, + 109, + 109, + 299, + 299, + 167, + 91, + 23, + 339, + 339, + 339, + 339, + 226, + 188, + 255, + 255, + 188, + 188, + 188, + 87, + 87, + 79, + 79, + 132, + 184, + 67, + 186, + 160, + 160, + 160, + 160, + 160, + 160, + 170, + 260, + 260, + 332, + 304, + 304, + 330, + 231, + 231, + 46, + 280, + 280, + 158, + 85, + 92, + 92, + 155, + 178, + 178, + 79, + 79, + 11, + 11, + 11, + 199, + 125, + 125, + 155, + 63, + 122, + 122, + 122, + 97, + 97, + 150, + 150, + 150, + 397, + 397, + 194, + 63, + 63, + 304, + 304, + 339, + 298, + 298, + 298, + 295, + 285, + 214, + 214, + 264, + 264, + 264, + 327, + 327, + 63, + 318, + 128, + 128, + 167, + 80, + 80, + 80, + 71, + 71, + 74, + 74, + 195, + 173, + 173, + 173, + 398, + 398, + 398, + 398, + 173, + 173, + 310, + 310, + 173, + 57, + 57, + 57, + 274, + 351, + 351, + 75, + 272, + 272, + 351, + 202, + 202, + 202, + 118, + 118, + 118, + 62, + 288, + 314, + 323, + 62, + 32, + 32, + 32, + 43, + 43, + 43, + 3, + 3, + 3, + 3, + 339, + 349, + 349, + 110, + 110, + 26, + 26, + 26, + 26, + 55, + 58, + 58, + 58, + 186, + 186, + 83, + 83, + 158, + 158, + 158, + 71, + 71, + 71, + 235, + 235, + 236, + 65, + 65, + 65, + 65, + 372, + 372, + 245, + 245, + 245, + 353, + 353, + 353, + 304, + 350, + 65, + 65, + 65, + 120, + 120, + 120, + 120, + 9, + 80, + 171, + 171, + 192, + 192, + 74, + 49, + 34, + 164, + 136, + 266, + 266, + 266, + 266, + 239, + 136, + 136, + 136, + 136, + 291, + 291, + 291, + 291, + 291, + 318, + 357, + 357, + 357, + 357, + 26, + 119, + 119, + 119, + 119, + 119, + 178, + 178, + 178, + 178, + 178, + 134, + 124, + 124, + 124, + 124, + 148, + 49, + 49, + 300, + 300, + 300, + 300, + 208, + 43, + 43, + 43, + 131, + 131, + 131, + 22, + 8, + 129, + 129, + 145, + 325, + 145, + 57, + 57, + 148, + 148, + 148, + 148, + 28, + 160, + 22, + 142, + 142, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 393, + 393, + 246, + 246, + 246, + 334, + 334, + 237, + 237, + 48, + 15, + 91, + 245, + 245, + 295, + 275, + 275, + 275, + 275, + 275, + 275, + 384, + 384, + 384, + 324, + 390, + 333, + 99, + 299, + 299, + 187, + 122, + 254, + 198, + 198, + 103, + 66, + 298, + 298, + 237, + 237, + 237, + 237, + 245, + 398, + 398, + 267, + 267, + 267, + 317, + 317, + 320, + 325, + 344, + 344, + 344, + 344, + 344, + 344, + 213, + 367, + 367, + 287, + 382, + 395, + 395, + 241, + 241, + 102, + 164, + 378, + 164, + 164, + 164, + 164, + 10, + 10, + 271, + 10, + 150, + 190, + 180, + 180, + 180, + 180, + 180, + 114, + 114, + 114, + 114, + 143, + 337, + 337, + 231, + 231, + 277, + 246, + 246, + 246, + 394, + 394, + 394, + 278, + 278, + 309, + 143, + 143, + 153, + 153, + 153, + 291, + 153, + 153, + 153, + 153, + 153, + 74, + 92, + 311, + 397, + 92, + 20, + 14, + 14, + 374, + 330, + 14, + 155, + 367, + 350, + 203, + 155, + 51, + 51, + 51, + 23, + 200, + 124, + 124, + 378, + 378, + 314, + 124, + 124, + 336, + 336, + 279, + 279, + 124, + 124, + 155, + 5, + 149, + 149, + 149, + 149, + 347, + 74, + 74, + 246, + 246, + 246, + 194, + 194, + 194, + 194, + 83, + 83, + 83, + 15, + 15, + 88, + 23, + 63, + 63, + 63, + 63, + 63, + 52, + 52, + 318, + 318, + 318, + 233, + 233, + 286, + 4, + 37, + 60, + 60, + 60, + 334, + 102, + 102, + 102, + 156, + 107, + 107, + 107, + 107, + 24, + 361, + 361, + 211, + 185, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 396, + 160, + 160, + 160, + 353, + 353, + 160, + 160, + 78, + 76, + 15, + 219, + 313, + 313, + 313, + 276, + 15, + 23, + 82, + 333, + 333, + 333, + 98, + 98, + 98, + 15, + 15, + 15, + 15, + 166, + 174, + 174, + 174, + 174, + 132, + 132, + 391, + 391, + 391, + 1, + 1, + 100, + 191, + 6, + 62, + 226, + 284, + 62, + 62, + 151, + 233, + 233, + 53, + 278, + 278, + 181, + 181, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 317, + 317, + 317, + 317, + 150, + 3, + 346, + 346, + 346, + 346, + 346, + 346, + 3, + 123, + 4, + 4, + 23, + 178, + 19, + 375, + 375, + 294, + 294, + 207, + 207, + 370, + 370, + 19, + 138, + 138, + 138, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 325, + 325, + 203, + 203, + 385, + 385, + 385, + 385, + 365, + 375, + 325, + 325, + 89, + 397, + 397, + 397, + 380, + 290, + 290, + 290, + 376, + 319, + 382, + 382, + 382, + 345, + 345, + 350, + 365, + 365, + 365, + 365, + 365, + 365, + 365, + 365, + 365, + 216, + 216, + 216, + 216, + 217, + 217, + 135, + 130, + 330, + 67, + 67, + 37, + 37, + 89, + 89, + 89, + 56, + 360, + 360, + 360, + 360, + 228, + 302, + 222, + 222, + 56, + 115, + 115, + 115, + 368, + 398, + 111, + 111, + 63, + 123, + 123, + 14, + 360, + 360, + 309, + 309, + 101, + 93, + 233, + 367, + 367, + 367, + 367, + 352, + 231, + 5, + 341, + 341, + 341, + 208, + 5, + 5, + 5, + 293, + 86, + 86, + 52, + 52, + 105, + 335, + 335, + 335, + 335, + 335, + 341, + 341, + 341, + 341, + 341, + 301, + 224, + 260, + 304, + 304, + 105, + 105, + 292, + 292, + 105, + 105, + 105, + 105, + 69, + 30, + 208, + 27, + 296, + 336, + 131, + 71, + 71, + 71, + 71, + 71, + 81, + 81, + 141, + 165, + 394, + 394, + 394, + 253, + 253, + 253, + 394, + 394, + 367, + 371, + 86, + 94, + 276, + 94, + 174, + 9, + 9, + 9, + 9, + 9, + 9, + 26, + 26, + 97, + 97, + 391, + 36, + 360, + 236, + 236, + 98, + 0, + 0, + 311, + 362, + 362, + 338, + 65, + 65, + 65, + 99, + 30, + 375, + 141, + 141, + 141, + 141, + 47, + 277, + 277, + 47, + 112, + 230, + 230, + 230, + 233, + 233, + 233, + 225, + 49, + 34, + 201, + 201, + 194, + 215, + 91, + 91, + 91, + 378, + 378, + 400, + 400, + 263, + 263, + 61, + 61, + 73, + 111, + 111, + 111, + 198, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 325, + 325, + 155, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 322, + 322, + 322, + 322, + 322, + 231, + 231, + 231, + 297, + 297, + 297, + 382, + 106, + 106, + 106, + 106, + 106, + 106, + 152, + 196, + 196, + 106, + 106, + 367, + 117, + 18, + 28, + 36, + 36, + 106, + 119, + 290, + 290, + 290, + 308, + 308, + 308, + 308, + 308, + 308, + 235, + 119, + 137, + 350, + 350, + 80, + 31, + 31, + 31, + 117, + 117, + 117, + 117, + 117, + 124, + 389, + 389, + 124, + 124, + 394, + 394, + 376, + 376, + 263, + 263, + 252, + 302, + 302, + 309, + 260, + 260, + 260, + 197, + 197, + 197, + 108, + 41, + 384, + 41, + 41, + 155, + 155, + 149, + 381, + 381, + 381, + 290, + 290, + 202, + 236, + 149, + 276, + 358, + 358, + 358, + 358, + 358, + 387, + 388, + 388, + 207, + 118, + 123, + 123, + 26, + 12, + 12, + 246, + 246, + 296, + 386, + 386, + 386, + 231, + 343, + 343, + 343, + 226, + 397, + 186, + 186, + 218, + 218, + 218, + 218, + 182, + 336, + 336, + 355, + 12, + 125, + 177, + 93, + 93, + 93, + 93, + 69, + 360, + 360, + 360, + 360, + 119, + 119, + 119, + 119, + 119, + 76, + 76, + 187, + 101, + 299, + 299, + 299, + 80, + 366, + 366, + 211, + 211, + 80, + 80, + 23, + 23, + 23, + 23, + 17, + 105, + 105, + 379, + 105, + 92, + 92, + 96, + 96, + 342, + 342, + 210, + 210, + 210, + 210, + 210, + 210, + 271, + 96, + 96, + 10, + 394, + 394, + 10, + 118, + 118, + 118, + 10, + 125, + 125, + 125, + 61, + 61, + 61, + 148, + 230, + 230, + 230, + 353, + 138, + 138, + 167, + 222, + 222, + 222, + 319, + 331, + 331, + 331, + 365, + 365, + 146, + 130, + 130, + 130, + 335, + 335, + 335, + 115, + 53, + 53, + 53, + 53, + 112, + 25, + 41, + 68, + 57, + 159, + 104, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 272, + 272, + 372, + 208, + 220, + 220, + 220, + 355, + 104, + 391, + 86, + 123, + 123, + 382, + 382, + 382, + 382, + 29, + 29, + 158, + 105, + 105, + 97, + 97, + 262, + 218, + 218, + 366, + 16, + 16, + 383, + 16, + 67, + 295, + 246, + 246, + 340, + 340, + 340, + 260, + 250, + 113, + 113, + 113, + 113, + 373, + 373, + 373, + 373, + 373, + 253, + 159, + 81, + 16, + 124, + 193, + 193, + 193, + 152, + 88, + 189, + 51, + 51, + 198, + 198, + 198, + 131, + 25, + 25, + 25, + 198, + 250, + 198, + 117, + 117, + 117, + 187, + 386, + 187, + 32, + 270, + 249, + 344, + 344, + 233, + 233, + 233, + 233, + 300, + 186, + 253, + 253, + 332, + 332, + 332, + 332, + 332, + 219, + 280, + 280, + 280, + 280, + 386, + 278, + 214, + 214, + 214, + 214, + 186, + 73, + 69, + 69, + 187, + 38, + 64, + 64, + 103, + 66, + 190, + 106, + 150, + 150, + 296, + 398, + 71, + 71, + 205, + 71, + 71, + 71, + 71, + 71, + 172, + 125, + 125, + 389, + 389, + 218, + 23, + 23, + 23, + 23, + 23, + 23, + 23, + 241, + 241, + 241, + 241, + 225, + 225, + 23, + 23, + 27, + 27, + 68, + 68, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 381, + 381, + 381, + 381, + 391, + 295, + 298, + 298, + 298, + 298, + 354, + 354, + 325, + 68, + 11, + 139, + 139, + 38, + 38, + 243, + 38, + 38, + 38, + 304, + 96, + 250, + 383, + 377, + 377, + 377, + 377, + 353, + 353, + 266, + 261, + 261, + 341, + 341, + 341, + 234, + 338, + 338, + 330, + 380, + 380, + 96, + 96, + 160, + 160, + 166, + 16, + 72, + 55, + 168, + 168, + 135, + 135, + 135, + 23, + 313, + 23, + 59, + 59, + 28, + 147, + 53, + 386, + 386, + 53, + 53, + 53, + 10, + 26, + 342, + 26, + 26, + 26, + 33, + 82, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 372, + 82, + 207, + 207, + 367, + 304, + 242, + 358, + 344, + 344, + 81, + 81, + 24, + 264, + 264, + 24, + 24, + 344, + 344, + 344, + 344, + 24, + 194, + 194, + 339, + 339, + 339, + 194, + 359, + 359, + 91, + 91, + 251, + 251, + 251, + 251, + 251, + 308, + 308, + 239, + 239, + 139, + 340, + 365, + 139, + 139, + 139, + 172, + 172, + 172, + 246, + 259, + 76, + 76, + 76, + 263, + 263, + 251, + 76, + 179, + 179, + 179, + 26, + 204, + 204, + 258, + 51, + 51, + 51, + 23, + 62, + 62, + 161, + 165, + 32, + 32, + 114, + 124, + 91, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 85, + 138, + 62, + 62, + 324, + 62, + 392, + 62, + 316, + 316, + 316, + 316, + 205, + 288, + 153, + 118, + 145, + 315, + 145, + 195, + 195, + 212, + 254, + 22, + 22, + 181, + 181, + 37, + 394, + 39, + 219, + 377, + 39, + 217, + 265, + 265, + 223, + 321, + 319, + 319, + 286, + 286, + 286, + 286, + 286, + 286, + 287, + 287, + 229, + 229, + 343, + 335, + 335, + 368, + 204, + 204, + 39, + 400, + 400, + 400, + 400, + 100, + 100, + 207, + 207, + 207, + 348, + 67, + 67, + 5, + 5, + 52, + 0, + 0, + 0, + 0, + 0, + 0, + 73, + 73, + 28, + 176, + 78, + 16, + 9, + 9, + 9, + 67, + 67, + 38, + 249, + 38, + 231, + 34, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 241, + 81, + 81, + 81, + 218, + 218, + 129, + 350, + 338, + 290, + 290, + 290, + 290, + 290, + 290, + 290, + 290, + 391, + 391, + 397, + 302, + 302, + 25, + 25, + 25, + 365, + 84, + 200, + 316, + 377, + 377, + 261, + 261, + 261, + 393, + 200, + 3, + 3, + 225, + 225, + 3, + 189, + 343, + 189, + 308, + 189, + 90, + 231, + 54, + 54, + 283, + 283, + 400, + 54, + 249, + 249, + 234, + 54, + 54, + 234, + 234, + 234, + 234, + 234, + 234, + 234, + 394, + 394, + 394, + 234, + 234, + 218, + 336, + 336, + 118, + 118, + 73, + 185, + 85, + 85, + 85, + 102, + 102, + 211, + 186, + 189, + 189, + 121, + 306, + 306, + 306, + 229, + 229, + 301, + 327, + 327, + 385, + 385, + 296, + 121, + 121, + 11, + 11, + 11, + 260, + 115, + 145, + 209, + 209, + 241, + 103, + 115, + 188, + 188, + 129, + 129, + 94, + 228, + 112, + 56, + 119, + 119, + 119, + 64, + 27, + 393, + 393, + 393, + 212, + 212, + 212, + 212, + 274, + 314, + 314, + 380, + 386, + 386, + 340, + 340, + 388, + 353, + 353, + 216, + 114, + 114, + 114, + 90, + 90, + 140, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 277, + 259, + 259, + 179, + 248, + 248, + 367, + 367, + 367, + 179, + 226, + 226, + 226, + 330, + 330, + 179, + 12, + 12, + 12, + 12, + 309, + 309, + 12, + 18, + 18, + 18, + 18, + 12, + 183, + 58, + 58, + 58, + 119, + 9, + 9, + 9, + 124, + 124, + 145, + 231, + 145, + 145, + 324, + 324, + 167, + 167, + 185, + 6, + 137, + 137, + 146, + 288, + 288, + 133, + 203, + 203, + 203, + 299, + 325, + 207, + 324, + 133, + 133, + 153, + 153, + 153, + 141, + 141, + 244, + 203, + 203, + 166, + 104, + 104, + 193, + 193, + 20, + 196, + 115, + 115, + 12, + 12, + 245, + 245, + 245, + 375, + 375, + 333, + 333, + 333, + 77, + 273, + 273, + 143, + 180, + 180, + 180, + 241, + 241, + 333, + 348, + 176, + 176, + 267, + 267, + 240, + 240, + 176, + 176, + 349, + 347, + 100, + 137, + 215, + 137, + 137, + 137, + 16, + 16, + 31, + 17, + 124, + 124, + 162, + 162, + 141, + 150, + 195, + 67, + 67, + 279, + 279, + 279, + 216, + 146, + 146, + 146, + 149, + 149, + 149, + 149, + 149, + 223, + 223, + 333, + 333, + 92, + 214, + 349, + 92, + 162, + 162, + 162, + 203, + 203, + 203, + 224, + 224, + 224, + 224, + 224, + 391, + 198, + 198, + 112, + 147, + 349, + 147, + 94, + 94, + 94, + 94, + 30, + 30, + 19, + 38, + 38, + 38, + 38, + 165, + 216, + 216, + 257, + 257, + 332, + 332, + 332, + 332, + 258, + 262, + 262, + 299, + 165, + 151, + 268, + 151, + 332, + 332, + 151, + 151, + 151, + 297, + 297, + 297, + 361, + 361, + 127, + 271, + 271, + 271, + 99, + 357, + 80, + 80, + 27, + 123, + 135, + 135, + 399, + 399, + 268, + 268, + 244, + 270, + 135, + 135, + 135, + 52, + 321, + 321, + 269, + 97, + 97, + 65, + 61, + 324, + 154, + 286, + 288, + 288, + 288, + 249, + 249, + 249, + 286, + 286, + 286, + 233, + 153, + 89, + 89, + 89, + 44, + 44, + 374, + 374, + 374, + 374, + 374, + 247, + 388, + 388, + 388, + 231, + 27, + 24, + 24, + 313, + 179, + 134, + 189, + 110, + 192, + 70, + 70, + 385, + 113, + 113, + 192, + 224, + 224, + 224, + 107, + 70, + 126, + 161, + 396, + 396, + 122, + 122, + 122, + 206, + 206, + 206, + 206, + 206, + 352, + 355, + 231, + 97, + 171, + 0, + 83, + 266, + 266, + 267, + 340, + 340, + 54, + 54, + 54, + 54, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 273, + 273, + 273, + 395, + 361, + 128, + 128, + 247, + 247, + 378, + 369, + 253, + 128, + 361, + 400, + 264, + 252, + 128, + 198, + 219, + 198, + 192, + 302, + 326, + 278, + 338, + 164, + 49, + 49, + 342, + 342, + 238, + 49, + 49, + 13, + 169, + 169, + 38, + 144, + 144, + 144, + 121, + 325, + 230, + 175, + 136, + 307, + 307, + 307, + 307, + 307, + 307, + 129, + 129, + 183, + 183, + 183, + 298, + 145, + 145, + 93, + 93, + 28, + 247, + 247, + 75, + 245, + 245, + 394, + 331, + 75, + 29, + 29, + 133, + 133, + 386, + 133, + 78, + 37, + 130, + 193, + 100, + 272, + 85, + 85, + 85, + 85, + 170, + 388, + 170, + 247, + 247, + 269, + 269, + 305, + 305, + 185, + 39, + 156, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 289, + 289, + 289, + 217, + 110, + 110, + 379, + 224, + 182, + 355, + 134, + 338, + 338, + 202, + 143, + 143, + 164, + 69, + 299, + 299, + 299, + 377, + 377, + 236, + 236, + 316, + 316, + 304, + 304, + 304, + 236, + 4, + 274, + 274, + 392, + 392, + 392, + 392, + 392, + 4, + 91, + 384, + 384, + 91, + 91, + 143, + 143, + 225, + 225, + 384, + 384, + 384, + 143, + 143, + 143, + 185, + 185, + 397, + 397, + 185, + 185, + 17, + 17, + 83, + 260, + 260, + 76, + 116, + 252, + 116, + 149, + 149, + 161, + 8, + 125, + 238, + 238, + 238, + 255, + 255, + 80, + 45, + 159, + 155, + 197, + 245, + 245, + 245, + 245, + 245, + 245, + 388, + 249, + 197, + 5, + 100, + 88, + 180, + 180, + 112, + 26, + 26, + 175, + 175, + 115, + 62, + 62, + 344, + 77, + 77, + 355, + 355, + 355, + 355, + 355, + 297, + 297, + 395, + 279, + 358, + 274, + 274, + 274, + 274, + 78, + 184, + 184, + 184, + 398, + 398, + 287, + 49, + 205, + 394, + 394, + 180, + 89, + 53, + 160, + 160, + 160, + 121, + 217, + 188, + 123, + 177, + 177, + 342, + 177, + 93, + 43, + 43, + 224, + 224, + 224, + 378, + 43, + 43, + 43, + 43, + 43, + 387, + 387, + 387, + 43, + 43, + 43, + 115, + 115, + 92, + 279, + 279, + 334, + 320, + 320, + 267, + 267, + 267, + 267, + 258, + 300, + 300, + 207, + 207, + 207, + 207, + 201, + 92, + 92, + 92, + 92, + 214, + 214, + 214, + 92, + 166, + 369, + 296, + 166, + 166, + 4, + 57, + 302, + 59, + 59, + 59, + 93, + 136, + 200, + 128, + 341, + 128, + 128, + 285, + 128, + 218, + 128, + 128, + 128, + 128, + 173, + 334, + 334, + 334, + 334, + 334, + 153, + 128, + 128, + 128, + 232, + 232, + 232, + 334, + 342, + 342, + 342, + 342, + 128, + 128, + 128, + 128, + 165, + 36, + 36, + 36, + 295, + 297, + 135, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 73, + 131, + 131, + 131, + 23, + 150, + 58, + 53, + 53, + 179, + 179, + 296, + 179, + 146, + 146, + 339, + 321, + 335, + 146, + 146, + 303, + 303, + 303, + 286, + 286, + 286, + 286, + 345, + 146, + 270, + 146, + 67, + 67, + 193, + 193, + 130, + 103, + 195, + 103, + 124, + 124, + 31, + 236, + 236, + 31, + 31, + 31, + 316, + 377, + 204, + 204, + 267, + 209, + 209, + 204, + 204, + 259, + 259, + 221, + 83, + 182, + 182, + 182, + 348, + 348, + 348, + 348, + 397, + 397, + 397, + 397, + 74, + 250, + 250, + 250, + 349, + 349, + 219, + 10, + 10, + 120, + 128, + 128, + 29, + 50, + 344, + 344, + 344, + 344, + 344, + 50, + 352, + 246, + 379, + 379, + 379, + 257, + 257, + 257, + 319, + 240, + 240, + 240, + 368, + 99, + 99, + 322, + 390, + 390, + 390, + 390, + 329, + 385, + 16, + 23, + 211, + 211, + 211, + 100, + 100, + 186, + 159, + 270, + 270, + 347, + 347, + 347, + 347, + 347, + 279, + 159, + 130, + 130, + 130, + 58, + 58, + 63, + 168, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 366, + 345, + 345, + 345, + 97, + 48, + 364, + 48, + 382, + 380, + 217, + 357, + 357, + 219, + 219, + 219, + 74, + 248, + 178, + 178, + 178, + 178, + 390, + 390, + 377, + 245, + 245, + 245, + 245, + 161, + 161, + 161, + 161, + 161, + 161, + 161, + 161, + 295, + 295, + 295, + 112, + 104, + 104, + 129, + 194, + 130, + 376, + 376, + 318, + 318, + 318, + 258, + 35, + 35, + 112, + 399, + 399, + 226, + 319, + 265, + 282, + 282, + 282, + 55, + 383, + 383, + 55, + 55, + 233, + 233, + 55, + 55, + 345, + 55, + 55, + 76, + 76, + 350, + 76, + 76, + 175, + 382, + 382, + 382, + 382, + 276, + 276, + 276, + 276, + 251, + 144, + 153, + 153, + 180, + 387, + 387, + 387, + 387, + 165, + 66, + 275, + 66, + 137, + 137, + 217, + 137, + 42, + 42, + 42, + 144, + 349, + 349, + 349, + 349, + 349, + 144, + 144, + 241, + 144, + 321, + 340, + 170, + 105, + 105, + 5, + 5, + 55, + 185, + 248, + 248, + 248, + 248, + 248, + 376, + 376, + 289, + 217, + 212, + 212, + 212, + 212, + 185, + 185, + 185, + 200, + 355, + 355, + 355, + 355, + 355, + 340, + 318, + 318, + 318, + 325, + 77, + 42, + 188, + 326, + 55, + 354, + 156, + 263, + 127, + 26, + 127, + 127, + 161, + 161, + 161, + 345, + 161, + 161, + 88, + 10, + 10, + 157, + 150, + 60, + 231, + 354, + 354, + 354, + 340, + 329, + 329, + 60, + 60, + 41, + 41, + 208, + 208, + 208, + 208, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 329, + 309, + 41, + 296, + 334, + 76, + 76, + 190, + 299, + 179, + 179, + 179, + 30, + 204, + 59, + 313, + 175, + 175, + 185, + 85, + 183, + 219, + 282, + 282, + 370, + 127, + 163, + 163, + 85, + 138, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 18, + 174, + 133, + 133, + 368, + 183, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 318, + 318, + 318, + 211, + 157, + 259, + 259, + 218, + 218, + 156, + 156, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 339, + 339, + 396, + 396, + 349, + 251, + 34, + 73, + 169, + 169, + 6, + 6, + 224, + 224, + 6, + 6, + 169, + 4, + 181, + 176, + 176, + 154, + 154, + 213, + 269, + 260, + 154, + 154, + 393, + 393, + 154, + 154, + 343, + 163, + 393, + 215, + 215, + 215, + 215, + 334, + 213, + 213, + 213, + 258, + 258, + 375, + 387, + 387, + 302, + 302, + 317, + 163, + 391, + 391, + 391, + 391, + 391, + 391, + 252, + 252, + 245, + 272, + 229, + 233, + 163, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 288, + 288, + 333, + 333, + 333, + 333, + 323, + 163, + 163, + 32, + 32, + 15, + 40, + 40, + 40, + 40, + 285, + 40, + 40, + 40, + 365, + 365, + 40, + 153, + 120, + 120, + 120, + 120, + 343, + 344, + 344, + 344, + 344, + 344, + 356, + 356, + 205, + 159, + 173, + 55, + 55, + 55, + 149, + 149, + 149, + 169, + 35, + 325, + 247, + 256, + 256, + 268, + 268, + 268, + 228, + 228, + 228, + 383, + 383, + 269, + 269, + 269, + 213, + 179, + 179, + 179, + 179, + 179, + 125, + 269, + 269, + 368, + 335, + 335, + 335, + 335, + 326, + 326, + 398, + 398, + 398, + 295, + 297, + 297, + 297, + 385, + 54, + 280, + 158, + 182, + 154, + 130, + 90, + 294, + 340, + 90, + 144, + 144, + 187, + 187, + 187, + 46, + 334, + 84, + 352, + 84, + 84, + 84, + 264, + 264, + 264, + 84, + 84, + 52, + 339, + 327, + 327, + 336, + 336, + 52, + 52, + 144, + 144, + 144, + 144, + 250, + 250, + 144, + 111, + 111, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 345, + 345, + 345, + 345, + 345, + 266, + 17, + 72, + 274, + 274, + 351, + 351, + 351, + 75, + 191, + 350, + 191, + 230, + 230, + 230, + 230, + 191, + 191, + 191, + 15, + 279, + 213, + 241, + 53, + 91, + 91, + 181, + 289, + 119, + 119, + 62, + 62, + 62, + 62, + 310, + 310, + 310, + 310, + 232, + 232, + 126, + 363, + 103, + 3, + 3, + 3, + 66, + 66, + 61, + 61, + 22, + 69, + 69, + 104, + 155, + 244, + 262, + 262, + 262, + 155, + 155, + 155, + 155, + 155, + 54, + 64, + 193, + 193, + 193, + 51, + 51, + 26, + 26, + 26, + 169, + 67, + 327, + 327, + 327, + 327, + 327, + 67, + 267, + 67, + 377, + 68, + 164, + 164, + 164, + 147, + 147, + 147, + 147, + 63, + 45, + 70, + 378, + 70, + 246, + 246, + 246, + 339, + 386, + 70, + 140, + 211, + 355, + 355, + 355, + 140, + 395, + 140, + 140, + 5, + 131, + 7, + 110, + 200, + 92, + 92, + 109, + 109, + 231, + 231, + 19, + 146, + 146, + 146, + 146, + 146, + 146, + 126, + 126, + 126, + 209, + 209, + 209, + 164, + 164, + 197, + 197, + 197, + 161, + 161, + 34, + 142, + 142, + 142, + 183, + 235, + 183, + 183, + 183, + 175, + 175, + 95, + 224, + 224, + 47, + 47, + 47, + 47, + 47, + 179, + 146, + 199, + 199, + 199, + 156, + 101, + 101, + 119, + 270, + 119, + 119, + 119, + 26, + 26, + 229, + 229, + 26, + 154, + 281, + 281, + 281, + 281, + 273, + 63, + 94, + 94, + 25, + 207, + 25, + 156, + 156, + 156, + 156, + 179, + 87, + 33, + 22, + 100, + 393, + 393, + 393, + 393, + 393, + 203, + 203, + 203, + 203, + 203, + 226, + 108, + 99, + 23, + 37, + 115, + 281, + 281, + 281, + 346, + 346, + 346, + 346, + 346, + 346, + 346, + 383, + 240, + 240, + 240, + 316, + 115, + 25, + 82, + 82, + 82, + 82, + 113, + 113, + 340, + 15, + 15, + 375, + 375, + 375, + 375, + 86, + 115, + 121, + 135, + 135, + 135, + 376, + 135, + 230, + 135, + 61, + 61, + 294, + 294, + 85, + 83, + 10, + 151, + 354, + 354, + 354, + 151, + 151, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 318, + 364, + 364, + 206, + 364, + 240, + 240, + 47, + 364, + 47, + 47, + 96, + 96, + 341, + 14, + 14, + 14, + 14, + 160, + 155, + 190, + 190, + 190, + 190, + 329, + 283, + 283, + 69, + 164, + 164, + 172, + 390, + 390, + 326, + 306, + 306, + 306, + 216, + 216, + 275, + 275, + 275, + 275, + 312, + 312, + 312, + 312, + 312, + 288, + 331, + 352, + 352, + 352, + 230, + 343, + 164, + 164, + 164, + 164, + 164, + 164, + 59, + 41, + 186, + 180, + 180, + 224, + 224, + 239, + 180, + 93, + 218, + 93, + 93, + 37, + 37, + 37, + 336, + 37, + 37, + 8, + 8, + 8, + 197, + 177, + 177, + 94, + 54, + 137, + 212, + 179, + 376, + 385, + 224, + 224, + 152, + 309, + 309, + 322, + 322, + 351, + 1, + 1, + 1, + 208, + 325, + 1, + 1, + 39, + 275, + 182, + 335, + 182, + 182, + 55, + 137, + 181, + 184, + 184, + 388, + 388, + 389, + 389, + 389, + 322, + 322, + 322, + 322, + 322, + 247, + 247, + 247, + 247, + 247, + 238, + 238, + 238, + 206, + 206, + 204, + 204, + 204, + 345, + 345, + 345, + 345, + 345, + 345, + 374, + 242, + 372, + 4, + 345, + 345, + 39, + 39, + 187, + 141, + 101, + 5, + 191, + 336, + 336, + 63, + 63, + 114, + 114, + 42, + 282, + 282, + 282, + 228, + 228, + 254, + 307, + 42, + 185, + 32, + 292, + 228, + 228, + 310, + 297, + 283, + 283, + 241, + 205, + 205, + 277, + 277, + 164, + 0, + 0, + 261, + 273, + 220, + 0, + 28, + 142, + 56, + 56, + 343, + 343, + 343, + 255, + 255, + 56, + 109, + 94, + 94, + 123, + 150, + 150, + 150, + 150, + 352, + 270, + 89, + 89, + 89, + 89, + 89, + 89, + 89, + 244, + 164, + 164, + 361, + 198, + 180, + 182, + 182, + 182, + 182, + 182, + 81, + 357, + 357, + 357, + 357, + 238, + 238, + 238, + 352, + 352, + 352, + 389, + 339, + 383, + 342, + 298, + 282, + 282, + 21, + 79, + 33, + 33, + 95, + 297, + 297, + 297, + 349, + 349, + 341, + 341, + 341, + 341, + 341, + 319, + 319, + 95, + 95, + 95, + 238, + 238, + 222, + 56, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 241, + 154, + 310, + 310, + 360, + 154, + 75, + 75, + 75, + 75, + 75, + 75, + 196, + 298, + 7, + 77, + 136, + 197, + 55, + 89, + 89, + 89, + 89, + 340, + 340, + 234, + 89, + 361, + 361, + 361, + 255, + 255, + 267, + 267, + 267, + 267, + 267, + 267, + 261, + 261, + 261, + 334, + 334, + 231, + 231, + 217, + 217, + 307, + 307, + 342, + 342, + 342, + 223, + 223, + 269, + 221, + 221, + 313, + 313, + 220, + 298, + 298, + 298, + 376, + 212, + 212, + 262, + 262, + 262, + 262, + 262, + 288, + 202, + 207, + 207, + 207, + 10, + 54, + 5, + 5, + 5, + 360, + 399, + 399, + 399, + 2, + 43, + 111, + 111, + 111, + 120, + 299, + 74, + 74, + 307, + 210, + 210, + 327, + 327, + 327, + 266, + 252, + 252, + 342, + 342, + 256, + 380, + 24, + 107, + 328, + 107, + 186, + 96, + 96, + 96, + 96, + 24, + 7, + 164, + 90, + 32, + 65, + 230, + 65, + 65, + 148, + 6, + 6, + 82, + 82, + 24, + 194, + 104, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 390, + 390, + 390, + 158, + 176, + 91, + 308, + 203, + 203, + 203, + 229, + 229, + 229, + 229, + 54, + 165, + 165, + 297, + 133, + 189, + 135, + 271, + 271, + 271, + 85, + 40, + 40, + 170, + 170, + 170, + 170, + 122, + 215, + 122, + 142, + 142, + 142, + 288, + 288, + 288, + 142, + 198, + 106, + 122, + 363, + 363, + 122, + 105, + 242, + 242, + 242, + 281, + 281, + 281, + 105, + 272, + 272, + 105, + 372, + 372, + 86, + 86, + 386, + 86, + 86, + 86, + 284, + 86, + 389, + 277, + 293, + 214, + 235, + 235, + 258, + 258, + 315, + 315, + 213, + 213, + 373, + 373, + 373, + 373, + 16, + 343, + 188, + 188, + 189, + 189, + 189, + 103, + 195, + 120, + 120, + 194, + 245, + 301, + 229, + 347, + 194, + 187, + 43, + 43, + 147, + 147, + 109, + 109, + 109, + 310, + 310, + 209, + 209, + 376, + 376, + 376, + 376, + 376, + 376, + 328, + 396, + 396, + 379, + 256, + 236, + 345, + 345, + 345, + 109, + 185, + 185, + 189, + 189, + 390, + 119, + 286, + 286, + 286, + 78, + 173, + 204, + 204, + 204, + 204, + 204, + 286, + 217, + 217, + 352, + 352, + 359, + 173, + 173, + 173, + 73, + 162, + 162, + 320, + 320, + 320, + 320, + 320, + 330, + 330, + 330, + 330, + 222, + 346, + 18, + 18, + 161, + 194, + 194, + 194, + 194, + 148, + 296, + 330, + 83, + 83, + 83, + 200, + 254, + 254, + 254, + 339, + 339, + 200, + 14, + 14, + 123, + 32, + 194, + 194, + 194, + 194, + 189, + 245, + 245, + 245, + 245, + 245, + 253, + 319, + 319, + 319, + 319, + 49, + 31, + 31, + 96, + 188, + 129, + 81, + 81, + 81, + 368, + 258, + 348, + 81, + 81, + 10, + 10, + 157, + 157, + 37, + 149, + 149, + 149, + 201, + 201, + 201, + 201, + 201, + 359, + 122, + 167, + 167, + 287, + 287, + 338, + 363, + 340, + 340, + 167, + 369, + 381, + 315, + 243, + 243, + 243, + 167, + 167, + 167, + 167, + 167, + 167, + 167, + 351, + 351, + 351, + 351, + 351, + 351, + 57, + 81, + 18, + 146, + 19, + 131, + 131, + 131, + 54, + 54, + 54, + 54, + 54, + 300, + 54, + 372, + 372, + 372, + 372, + 303, + 303, + 303, + 332, + 309, + 309, + 309, + 309, + 309, + 309, + 363, + 363, + 128, + 259, + 259, + 142, + 17, + 17, + 17, + 130, + 229, + 229, + 229, + 229, + 229, + 307, + 130, + 256, + 256, + 234, + 234, + 334, + 385, + 296, + 130, + 130, + 130, + 130, + 182, + 47, + 76, + 85, + 153, + 115, + 115, + 115, + 16, + 362, + 173, + 173, + 173, + 167, + 110, + 195, + 129, + 352, + 352, + 173, + 195, + 49, + 49, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 371, + 371, + 371, + 371, + 371, + 49, + 372, + 346, + 346, + 126, + 126, + 126, + 156, + 46, + 104, + 171, + 12, + 12, + 12, + 133, + 219, + 399, + 399, + 399, + 399, + 399, + 399, + 286, + 256, + 256, + 256, + 256, + 242, + 242, + 265, + 265, + 265, + 265, + 265, + 265, + 265, + 265, + 265, + 265, + 238, + 270, + 270, + 270, + 366, + 366, + 366, + 355, + 355, + 185, + 9, + 329, + 177, + 177, + 213, + 213, + 213, + 213, + 213, + 177, + 48, + 303, + 303, + 303, + 303, + 91, + 91, + 36, + 36, + 396, + 396, + 396, + 258, + 203, + 203, + 203, + 203, + 382, + 382, + 106, + 169, + 12, + 161, + 342, + 342, + 342, + 342, + 342, + 246, + 370, + 389, + 182, + 54, + 162, + 162, + 304, + 304, + 162, + 275, + 275, + 243, + 243, + 296, + 162, + 351, + 351, + 397, + 199, + 68, + 161, + 283, + 283, + 283, + 161, + 161, + 0, + 0, + 0, + 0, + 0, + 174, + 182, + 189, + 189, + 175, + 101, + 209, + 301, + 57, + 374, + 374, + 374, + 374, + 252, + 169, + 169, + 122, + 79, + 79, + 28, + 28, + 170, + 115, + 115, + 115, + 11, + 11, + 219, + 11, + 11, + 68, + 286, + 330, + 330, + 260, + 395, + 395, + 253, + 19, + 19, + 19, + 19, + 19, + 377, + 334, + 130, + 130, + 130, + 55, + 131, + 131, + 171, + 165, + 81, + 363, + 347, + 354, + 354, + 354, + 354, + 354, + 354, + 266, + 220, + 220, + 220, + 81, + 54, + 65, + 194, + 194, + 34, + 34, + 85, + 13, + 0, + 0, + 98, + 98, + 98, + 134, + 187, + 326, + 47, + 47, + 180, + 380, + 380, + 75, + 75, + 75, + 75, + 193, + 191, + 136, + 136, + 397, + 397, + 260, + 201, + 379, + 269, + 353, + 336, + 209, + 328, + 328, + 84, + 123, + 123, + 123, + 67, + 386, + 386, + 386, + 386, + 251, + 251, + 251, + 389, + 352, + 243, + 243, + 53, + 53, + 264, + 264, + 264, + 264, + 53, + 53, + 76, + 331, + 76, + 76, + 165, + 397, + 397, + 273, + 21, + 59, + 59, + 190, + 190, + 42, + 42, + 42, + 42, + 42, + 42, + 142, + 158, + 158, + 108, + 108, + 142, + 142, + 75, + 171, + 389, + 160, + 160, + 160, + 130, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 283, + 262, + 284, + 365, + 365, + 246, + 246, + 246, + 324, + 324, + 130, + 324, + 324, + 324, + 324, + 324, + 265, + 264, + 264, + 264, + 338, + 130, + 130, + 130, + 170, + 170, + 293, + 293, + 102, + 19, + 36, + 150, + 148, + 148, + 109, + 109, + 397, + 397, + 397, + 150, + 150, + 356, + 152, + 229, + 152, + 153, + 247, + 146, + 234, + 234, + 322, + 322, + 322, + 322, + 146, + 116, + 9, + 9, + 9, + 29, + 83, + 83, + 161, + 366, + 98, + 98, + 90, + 90, + 90, + 102, + 102, + 26, + 212, + 212, + 322, + 322, + 3, + 80, + 7, + 7, + 7, + 321, + 7, + 320, + 65, + 65, + 92, + 263, + 74, + 91, + 91, + 131, + 36, + 36, + 365, + 365, + 4, + 105, + 310, + 310, + 310, + 224, + 350, + 23, + 23, + 23, + 150, + 150, + 150, + 295, + 397, + 397, + 397, + 397, + 397, + 317, + 356, + 324, + 150, + 92, + 92, + 92, + 159, + 159, + 295, + 295, + 159, + 108, + 138, + 138, + 138, + 178, + 118, + 344, + 344, + 344, + 363, + 236, + 211, + 211, + 211, + 211, + 266, + 266, + 266, + 385, + 385, + 118, + 151, + 151, + 35, + 151, + 3, + 318, + 123, + 123, + 123, + 40, + 113, + 349, + 349, + 355, + 221, + 221, + 292, + 292, + 208, + 347, + 347, + 347, + 347, + 239, + 303, + 303, + 303, + 225, + 225, + 225, + 225, + 321, + 321, + 321, + 253, + 253, + 235, + 235, + 16, + 16, + 149, + 353, + 149, + 138, + 138, + 138, + 92, + 92, + 111, + 152, + 294, + 152, + 129, + 142, + 38, + 38, + 38, + 38, + 104, + 171, + 226, + 226, + 387, + 72, + 130, + 176, + 176, + 176, + 176, + 237, + 102, + 102, + 102, + 350, + 350, + 102, + 320, + 320, + 320, + 385, + 102, + 102, + 102, + 95, + 95, + 95, + 11, + 11, + 29, + 29, + 155, + 155, + 126, + 176, + 176, + 176, + 2, + 2, + 4, + 4, + 4, + 4, + 22, + 387, + 152, + 152, + 203, + 31, + 230, + 230, + 230, + 170, + 170, + 170, + 80, + 80, + 11, + 86, + 86, + 92, + 92, + 92, + 327, + 92, + 92, + 90, + 90, + 90, + 122, + 122, + 122, + 122, + 122, + 87, + 0, + 72, + 353, + 298, + 72, + 72, + 101, + 335, + 335, + 335, + 335, + 335, + 335, + 382, + 382, + 382, + 382, + 382, + 101, + 236, + 236, + 236, + 236, + 278, + 297, + 297, + 182, + 235, + 235, + 337, + 337, + 337, + 267, + 93, + 210, + 210, + 210, + 377, + 223, + 243, + 243, + 243, + 321, + 321, + 321, + 321, + 337, + 337, + 337, + 337, + 327, + 340, + 284, + 279, + 279, + 239, + 239, + 239, + 99, + 99, + 283, + 283, + 283, + 128, + 265, + 77, + 77, + 77, + 40, + 40, + 40, + 40, + 216, + 41, + 126, + 126, + 126, + 126, + 373, + 373, + 254, + 126, + 126, + 126, + 126, + 176, + 1, + 1, + 66, + 322, + 152, + 135, + 353, + 135, + 244, + 135, + 135, + 21, + 21, + 21, + 375, + 336, + 192, + 50, + 50, + 207, + 207, + 241, + 241, + 50, + 28, + 273, + 48, + 48, + 48, + 48, + 48, + 348, + 216, + 237, + 99, + 99, + 77, + 77, + 25, + 25, + 37, + 37, + 285, + 285, + 285, + 285, + 208, + 342, + 185, + 69, + 219, + 219, + 219, + 219, + 219, + 213, + 213, + 334, + 334, + 69, + 69, + 69, + 69, + 196, + 196, + 86, + 86, + 177, + 177, + 177, + 64, + 64, + 55, + 55, + 55, + 392, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 378, + 378, + 247, + 247, + 74, + 74, + 258, + 258, + 258, + 194, + 166, + 166, + 79, + 79, + 163, + 226, + 2, + 188, + 71, + 61, + 138, + 15, + 15, + 15, + 15, + 15, + 15, + 161, + 121, + 121, + 292, + 292, + 292, + 121, + 121, + 121, + 171, + 259, + 348, + 171, + 171, + 171, + 137, + 137, + 137, + 197, + 197, + 36, + 5, + 100, + 161, + 29, + 29, + 197, + 118, + 118, + 118, + 118, + 118, + 25, + 25, + 16, + 22, + 22, + 146, + 146, + 4, + 123, + 117, + 117, + 117, + 84, + 84, + 88, + 88, + 393, + 363, + 363, + 63, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 355, + 355, + 206, + 206, + 206, + 206, + 214, + 56, + 56, + 371, + 371, + 371, + 371, + 258, + 169, + 254, + 378, + 378, + 378, + 224, + 224, + 224, + 224, + 224, + 292, + 292, + 216, + 216, + 216, + 292, + 292, + 298, + 196, + 97, + 97, + 97, + 97, + 97, + 146, + 119, + 119, + 223, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 384, + 384, + 384, + 384, + 5, + 298, + 298, + 5, + 5, + 5, + 5, + 5, + 397, + 211, + 211, + 211, + 36, + 36, + 91, + 317, + 317, + 317, + 317, + 237, + 333, + 91, + 91, + 136, + 136, + 207, + 136, + 136, + 194, + 139, + 329, + 360, + 360, + 360, + 313, + 387, + 387, + 279, + 279, + 340, + 340, + 340, + 297, + 297, + 297, + 297, + 297, + 297, + 227, + 104, + 334, + 331, + 331, + 168, + 291, + 291, + 291, + 291, + 291, + 291, + 168, + 168, + 106, + 106, + 106, + 101, + 184, + 88, + 193, + 193, + 115, + 115, + 205, + 333, + 225, + 225, + 375, + 375, + 375, + 375, + 36, + 147, + 283, + 72, + 72, + 140, + 281, + 38, + 38, + 38, + 184, + 184, + 61, + 61, + 61, + 190, + 56, + 274, + 56, + 108, + 108, + 28, + 119, + 15, + 15, + 15, + 338, + 322, + 322, + 322, + 322, + 322, + 213, + 213, + 274, + 274, + 274, + 383, + 234, + 125, + 125, + 38, + 24, + 190, + 190, + 8, + 8, + 8, + 8, + 366, + 366, + 366, + 366, + 286, + 286, + 228, + 228, + 228, + 228, + 322, + 322, + 322, + 317, + 317, + 317, + 318, + 307, + 348, + 348, + 253, + 348, + 348, + 111, + 170, + 170, + 170, + 81, + 85, + 172, + 172, + 172, + 110, + 162, + 3, + 77, + 77, + 77, + 311, + 294, + 294, + 335, + 20, + 381, + 20, + 285, + 285, + 384, + 384, + 384, + 377, + 353, + 353, + 353, + 353, + 353, + 342, + 342, + 342, + 342, + 342, + 342, + 362, + 362, + 362, + 276, + 283, + 303, + 303, + 336, + 336, + 348, + 348, + 233, + 233, + 267, + 267, + 267, + 267, + 219, + 20, + 42, + 42, + 172, + 396, + 396, + 389, + 389, + 324, + 172, + 197, + 103, + 103, + 321, + 103, + 87, + 135, + 135, + 135, + 294, + 294, + 143, + 143, + 143, + 35, + 35, + 59, + 350, + 59, + 345, + 345, + 345, + 345, + 345, + 345, + 345, + 249, + 243, + 261, + 383, + 334, + 334, + 354, + 354, + 240, + 240, + 59, + 59, + 179, + 284, + 135, + 89, + 89, + 89, + 89, + 300, + 89, + 89, + 89, + 183, + 84, + 84, + 198, + 306, + 74, + 90, + 140, + 161, + 161, + 161, + 161, + 161, + 161, + 265, + 398, + 398, + 161, + 118, + 49, + 45, + 45, + 45, + 186, + 186, + 143, + 189, + 182, + 353, + 353, + 211, + 182, + 305, + 180, + 180, + 180, + 180, + 180, + 180, + 78, + 78, + 192, + 136, + 155, + 318, + 318, + 198, + 23, + 23, + 280, + 43, + 43, + 43, + 43, + 12, + 215, + 141, + 141, + 87, + 87, + 87, + 330, + 330, + 214, + 149, + 50, + 50, + 116, + 116, + 116, + 116, + 216, + 216, + 216, + 350, + 326, + 326, + 376, + 320, + 398, + 398, + 398, + 398, + 398, + 194, + 194, + 199, + 263, + 263, + 263, + 297, + 297, + 199, + 184, + 343, + 120, + 120, + 182, + 182, + 320, + 31, + 31, + 31, + 363, + 363, + 363, + 31, + 56, + 56, + 186, + 377, + 307, + 381, + 241, + 241, + 186, + 186, + 388, + 388, + 388, + 303, + 303, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 368, + 368, + 11, + 189, + 189, + 170, + 170, + 65, + 65, + 65, + 138, + 138, + 138, + 138, + 148, + 129, + 129, + 203, + 98, + 98, + 98, + 358, + 358, + 399, + 399, + 399, + 399, + 98, + 98, + 83, + 138, + 233, + 233, + 233, + 233, + 216, + 216, + 216, + 149, + 189, + 84, + 1, + 1, + 216, + 216, + 216, + 1, + 1, + 368, + 183, + 179, + 14, + 119, + 84, + 118, + 118, + 4, + 4, + 362, + 362, + 223, + 223, + 223, + 202, + 202, + 215, + 383, + 358, + 358, + 358, + 49, + 49, + 49, + 119, + 288, + 288, + 358, + 28, + 69, + 28, + 27, + 21, + 355, + 355, + 355, + 355, + 21, + 358, + 21, + 94, + 348, + 388, + 94, + 112, + 128, + 128, + 156, + 115, + 135, + 247, + 370, + 135, + 293, + 367, + 367, + 135, + 135, + 72, + 173, + 173, + 173, + 10, + 130, + 83, + 30, + 181, + 111, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 335, + 339, + 339, + 239, + 185, + 185, + 47, + 42, + 122, + 122, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 399, + 399, + 187, + 22, + 9, + 156, + 156, + 79, + 328, + 339, + 339, + 79, + 145, + 145, + 56, + 56, + 320, + 282, + 249, + 249, + 249, + 249, + 249, + 56, + 56, + 56, + 288, + 288, + 354, + 354, + 354, + 354, + 354, + 228, + 228, + 226, + 309, + 309, + 286, + 286, + 56, + 56, + 61, + 61, + 2, + 2, + 314, + 239, + 239, + 278, + 2, + 2, + 2, + 269, + 337, + 294, + 294, + 294, + 294, + 354, + 354, + 354, + 309, + 137, + 137, + 376, + 15, + 15, + 15, + 12, + 120, + 39, + 180, + 237, + 180, + 350, + 48, + 25, + 375, + 139, + 139, + 125, + 125, + 222, + 268, + 380, + 380, + 380, + 380, + 221, + 221, + 221, + 296, + 296, + 394, + 63, + 71, + 40, + 20, + 109, + 109, + 109, + 59, + 59, + 59, + 59, + 124, + 147, + 108, + 108, + 213, + 213, + 288, + 277, + 277, + 395, + 395, + 395, + 339, + 339, + 339, + 283, + 365, + 248, + 248, + 308, + 399, + 365, + 197, + 74, + 346, + 74, + 393, + 393, + 236, + 236, + 236, + 396, + 396, + 107, + 273, + 193, + 71, + 71, + 71, + 71, + 71, + 93, + 269, + 269, + 269, + 101, + 195, + 163, + 163, + 28, + 28, + 223, + 36, + 36, + 36, + 318, + 318, + 36, + 36, + 371, + 264, + 385, + 385, + 202, + 398, + 331, + 331, + 331, + 331, + 375, + 375, + 375, + 375, + 375, + 375, + 231, + 231, + 388, + 340, + 265, + 382, + 382, + 382, + 251, + 251, + 113, + 191, + 245, + 245, + 245, + 245, + 245, + 245, + 191, + 224, + 224, + 294, + 161, + 135, + 135, + 141, + 141, + 57, + 57, + 57, + 57, + 111, + 25, + 25, + 25, + 25, + 25, + 304, + 241, + 133, + 146, + 161, + 105, + 105, + 5, + 5, + 41, + 187, + 96, + 96, + 150, + 95, + 95, + 95, + 301, + 95, + 140, + 163, + 361, + 11, + 179, + 369, + 369, + 369, + 369, + 369, + 350, + 350, + 396, + 334, + 334, + 334, + 294, + 318, + 298, + 306, + 251, + 251, + 251, + 251, + 318, + 318, + 318, + 240, + 202, + 202, + 202, + 202, + 202, + 317, + 340, + 5, + 141, + 141, + 141, + 51, + 190, + 190, + 190, + 190, + 190, + 190, + 222, + 222, + 224, + 224, + 16, + 335, + 189, + 189, + 189, + 189, + 189, + 197, + 197, + 197, + 151, + 301, + 198, + 6, + 203, + 203, + 31, + 31, + 93, + 93, + 93, + 93, + 93, + 93, + 93, + 93, + 89, + 104, + 104, + 33, + 33, + 340, + 311, + 311, + 33, + 179, + 160, + 103, + 155, + 155, + 169, + 234, + 279, + 80, + 53, + 149, + 149, + 17, + 201, + 164, + 164, + 12, + 94, + 94, + 94, + 94, + 94, + 155, + 113, + 175, + 290, + 290, + 290, + 290, + 290, + 276, + 276, + 175, + 145, + 187, + 336, + 336, + 363, + 363, + 363, + 363, + 282, + 282, + 359, + 369, + 369, + 346, + 187, + 341, + 341, + 152, + 312, + 60, + 203, + 203, + 54, + 70, + 98, + 49, + 201, + 201, + 49, + 315, + 219, + 40, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 363, + 1, + 1, + 166, + 14, + 208, + 208, + 208, + 65, + 65, + 303, + 65, + 382, + 382, + 147, + 147, + 147, + 147, + 170, + 170, + 388, + 170, + 170, + 170, + 44, + 212, + 212, + 212, + 44, + 15, + 393, + 393, + 393, + 191, + 199, + 199, + 45, + 45, + 45, + 45, + 45, + 45, + 95, + 95, + 95, + 349, + 366, + 366, + 366, + 366, + 393, + 393, + 353, + 237, + 237, + 259, + 277, + 260, + 374, + 74, + 74, + 74, + 74, + 74, + 126, + 313, + 313, + 313, + 305, + 305, + 126, + 97, + 97, + 79, + 73, + 115, + 40, + 138, + 138, + 391, + 295, + 295, + 243, + 356, + 138, + 138, + 238, + 238, + 3, + 36, + 36, + 36, + 36, + 217, + 217, + 352, + 352, + 352, + 352, + 152, + 152, + 111, + 147, + 147, + 160, + 18, + 18, + 267, + 18, + 18, + 53, + 53, + 18, + 67, + 67, + 67, + 126, + 351, + 351, + 351, + 351, + 345, + 126, + 36, + 36, + 323, + 323, + 27, + 272, + 211, + 211, + 211, + 27, + 45, + 99, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 232, + 27, + 36, + 94, + 94, + 322, + 1, + 355, + 355, + 355, + 355, + 378, + 378, + 283, + 270, + 374, + 313, + 313, + 313, + 313, + 340, + 210, + 210, + 229, + 229, + 272, + 272, + 307, + 307, + 307, + 307, + 232, + 232, + 216, + 216, + 216, + 216, + 216, + 399, + 399, + 399, + 225, + 1, + 21, + 21, + 21, + 7, + 382, + 142, + 218, + 316, + 316, + 316, + 230, + 230, + 230, + 366, + 366, + 370, + 240, + 240, + 251, + 251, + 227, + 111, + 69, + 69, + 48, + 48, + 273, + 48, + 122, + 122, + 122, + 38, + 38, + 38, + 325, + 325, + 312, + 312, + 312, + 312, + 322, + 319, + 319, + 38, + 103, + 285, + 285, + 103, + 69, + 175, + 136, + 136, + 136, + 136, + 136, + 136, + 160, + 160, + 160, + 116, + 116, + 116, + 44, + 301, + 301, + 301, + 301, + 301, + 44, + 49, + 49, + 199, + 253, + 199, + 239, + 239, + 199, + 374, + 151, + 36, + 63, + 63, + 63, + 63, + 63, + 237, + 237, + 237, + 121, + 121, + 393, + 399, + 202, + 121, + 112, + 112, + 112, + 195, + 154, + 0, + 32, + 189, + 189, + 189, + 189, + 335, + 335, + 335, + 189, + 123, + 308, + 308, + 361, + 209, + 209, + 209, + 290, + 385, + 385, + 292, + 292, + 61, + 61, + 156, + 156, + 156, + 156, + 156, + 156, + 370, + 235, + 156, + 203, + 156, + 245, + 156, + 127, + 130, + 130, + 295, + 77, + 77, + 77, + 89, + 65, + 65, + 72, + 72, + 72, + 82, + 180, + 180, + 93, + 93, + 93, + 366, + 152, + 152, + 207, + 207, + 77, + 180, + 104, + 344, + 383, + 157, + 157, + 157, + 220, + 157, + 157, + 157, + 9, + 9, + 20, + 20, + 20, + 158, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 201, + 201, + 201, + 201, + 201, + 201, + 258, + 208, + 310, + 333, + 337, + 337, + 269, + 71, + 120, + 120, + 13, + 13, + 162, + 162, + 162, + 162, + 180, + 180, + 180, + 83, + 40, + 98, + 63, + 370, + 370, + 370, + 86, + 366, + 366, + 241, + 241, + 186, + 31, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 321, + 394, + 394, + 237, + 237, + 26, + 391, + 290, + 322, + 313, + 51, + 39, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 285, + 285, + 285, + 285, + 286, + 299, + 299, + 299, + 3, + 47, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 328, + 328, + 328, + 328, + 100, + 100, + 230, + 230, + 226, + 226, + 196, + 138, + 138, + 138, + 138, + 138, + 138, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 282, + 261, + 261, + 396, + 396, + 396, + 396, + 214, + 101, + 101, + 236, + 236, + 236, + 236, + 236, + 236, + 363, + 76, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 279, + 279, + 279, + 211, + 223, + 219, + 136, + 174, + 286, + 286, + 286, + 286, + 144, + 387, + 387, + 169, + 169, + 145, + 119, + 97, + 97, + 97, + 97, + 97, + 97, + 203, + 203, + 97, + 97, + 97, + 145, + 232, + 232, + 145, + 229, + 152, + 152, + 256, + 381, + 152, + 152, + 39, + 39, + 87, + 176, + 128, + 7, + 260, + 260, + 260, + 254, + 254, + 254, + 37, + 382, + 382, + 382, + 382, + 296, + 221, + 44, + 80, + 139, + 139, + 392, + 139, + 139, + 65, + 315, + 315, + 65, + 197, + 55, + 55, + 55, + 55, + 381, + 381, + 55, + 324, + 324, + 324, + 19, + 19, + 19, + 19, + 100, + 36, + 36, + 34, + 243, + 393, + 393, + 393, + 393, + 34, + 34, + 34, + 54, + 261, + 261, + 261, + 261, + 261, + 315, + 189, + 189, + 65, + 312, + 137, + 137, + 137, + 137, + 63, + 231, + 169, + 169, + 169, + 188, + 168, + 107, + 351, + 351, + 106, + 106, + 150, + 187, + 301, + 113, + 113, + 304, + 56, + 62, + 62, + 291, + 237, + 62, + 355, + 355, + 62, + 62, + 216, + 216, + 216, + 282, + 282, + 206, + 206, + 206, + 206, + 329, + 62, + 398, + 398, + 398, + 62, + 194, + 194, + 194, + 194, + 145, + 145, + 145, + 173, + 173, + 281, + 281, + 281, + 296, + 296, + 173, + 180, + 368, + 368, + 368, + 348, + 101, + 90, + 136, + 180, + 309, + 309, + 309, + 176, + 176, + 330, + 330, + 19, + 177, + 177, + 177, + 16, + 3, + 254, + 61, + 144, + 144, + 88, + 271, + 88, + 88, + 269, + 88, + 142, + 254, + 142, + 322, + 141, + 141, + 151, + 151, + 21, + 36, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 306, + 306, + 344, + 260, + 72, + 13, + 62, + 56, + 56, + 26, + 170, + 170, + 170, + 2, + 86, + 86, + 86, + 202, + 362, + 289, + 289, + 86, + 151, + 151, + 172, + 172, + 66, + 66, + 154, + 21, + 148, + 22, + 22, + 134, + 134, + 162, + 389, + 250, + 250, + 346, + 34, + 146, + 390, + 390, + 200, + 200, + 200, + 200, + 200, + 200, + 110, + 136, + 136, + 282, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 320, + 320, + 158, + 158, + 253, + 240, + 210, + 210, + 210, + 210, + 268, + 220, + 46, + 27, + 27, + 300, + 300, + 252, + 27, + 236, + 307, + 307, + 27, + 27, + 165, + 279, + 279, + 279, + 279, + 114, + 114, + 262, + 262, + 262, + 114, + 114, + 393, + 393, + 393, + 114, + 114, + 39, + 39, + 39, + 39, + 74, + 61, + 283, + 283, + 61, + 354, + 354, + 321, + 321, + 321, + 321, + 24, + 24, + 24, + 314, + 314, + 24, + 24, + 66, + 66, + 140, + 140, + 1, + 1, + 100, + 90, + 286, + 90, + 309, + 99, + 99, + 82, + 86, + 86, + 116, + 116, + 116, + 161, + 161, + 161, + 161, + 161, + 16, + 76, + 151, + 180, + 180, + 180, + 180, + 180, + 129, + 113, + 330, + 152, + 152, + 152, + 152, + 107, + 354, + 107, + 107, + 107, + 13, + 394, + 13, + 13, + 13, + 13, + 41, + 188, + 189, + 148, + 361, + 361, + 361, + 145, + 112, + 106, + 370, + 370, + 279, + 229, + 229, + 391, + 283, + 283, + 283, + 283, + 400, + 400, + 275, + 275, + 106, + 300, + 300, + 106, + 62, + 62, + 334, + 62, + 62, + 62, + 62, + 252, + 379, + 114, + 114, + 114, + 114, + 114, + 206, + 206, + 90, + 90, + 59, + 41, + 41, + 337, + 253, + 89, + 89, + 84, + 194, + 111, + 254, + 254, + 254, + 306, + 270, + 270, + 264, + 264, + 264, + 264, + 264, + 139, + 148, + 181, + 17, + 17, + 17, + 17, + 17, + 396, + 140, + 209, + 342, + 342, + 99, + 81, + 202, + 202, + 81, + 81, + 81, + 81, + 313, + 357, + 357, + 357, + 357, + 357, + 212, + 202, + 346, + 200, + 200, + 72, + 72, + 67, + 67, + 67, + 144, + 308, + 144, + 162, + 24, + 206, + 206, + 206, + 206, + 335, + 256, + 380, + 380, + 303, + 264, + 264, + 242, + 242, + 242, + 242, + 242, + 242, + 260, + 260, + 255, + 255, + 393, + 393, + 251, + 331, + 148, + 162, + 377, + 162, + 35, + 35, + 35, + 154, + 101, + 348, + 101, + 101, + 371, + 379, + 122, + 133, + 67, + 67, + 88, + 88, + 88, + 319, + 319, + 319, + 88, + 88, + 164, + 358, + 164, + 164, + 164, + 164, + 164, + 289, + 49, + 49, + 390, + 390, + 390, + 52, + 52, + 288, + 288, + 147, + 36, + 34, + 34, + 34, + 29, + 355, + 279, + 279, + 279, + 279, + 279, + 241, + 29, + 363, + 29, + 75, + 75, + 91, + 91, + 166, + 102, + 102, + 387, + 240, + 240, + 102, + 216, + 216, + 216, + 356, + 390, + 219, + 95, + 97, + 97, + 174, + 174, + 174, + 174, + 207, + 174, + 298, + 174, + 174, + 174, + 256, + 373, + 355, + 355, + 174, + 229, + 174, + 326, + 326, + 174, + 174, + 99, + 85, + 164, + 23, + 287, + 287, + 253, + 253, + 253, + 253, + 253, + 253, + 253, + 253, + 287, + 287, + 287, + 23, + 23, + 120, + 331, + 120, + 116, + 116, + 275, + 275, + 180, + 47, + 47, + 120, + 323, + 323, + 323, + 323, + 323, + 384, + 120, + 120, + 125, + 187, + 116, + 62, + 62, + 305, + 305, + 62, + 62, + 199, + 367, + 367, + 367, + 367, + 115, + 211, + 211, + 0, + 291, + 291, + 54, + 54, + 382, + 382, + 382, + 39, + 24, + 24, + 24, + 199, + 199, + 189, + 104, + 184, + 47, + 47, + 47, + 142, + 149, + 95, + 186, + 37, + 37, + 98, + 269, + 98, + 257, + 301, + 301, + 335, + 335, + 335, + 335, + 260, + 372, + 280, + 280, + 320, + 98, + 162, + 162, + 394, + 162, + 263, + 234, + 302, + 302, + 302, + 302, + 135, + 3, + 3, + 213, + 213, + 213, + 216, + 229, + 229, + 229, + 229, + 263, + 278, + 397, + 85, + 336, + 85, + 85, + 362, + 362, + 96, + 57, + 81, + 102, + 102, + 245, + 243, + 243, + 130, + 163, + 163, + 211, + 211, + 179, + 314, + 314, + 314, + 336, + 82, + 29, + 21, + 21, + 21, + 21, + 319, + 319, + 21, + 21, + 142, + 142, + 16, + 136, + 209, + 209, + 209, + 136, + 136, + 130, + 173, + 379, + 379, + 379, + 173, + 173, + 109, + 109, + 109, + 189, + 189, + 86, + 369, + 369, + 369, + 369, + 383, + 383, + 383, + 383, + 383, + 383, + 383, + 383, + 253, + 238, + 326, + 188, + 15, + 140, + 106, + 120, + 82, + 82, + 334, + 334, + 82, + 149, + 198, + 198, + 327, + 327, + 267, + 330, + 330, + 207, + 198, + 170, + 151, + 151, + 151, + 151, + 151, + 195, + 195, + 195, + 195, + 255, + 255, + 255, + 63, + 63, + 63, + 239, + 63, + 142, + 19, + 29, + 276, + 276, + 29, + 10, + 10, + 10, + 199, + 50, + 50, + 50, + 50, + 58, + 58, + 58, + 213, + 364, + 364, + 392, + 58, + 381, + 381, + 381, + 381, + 381, + 230, + 335, + 335, + 78, + 78, + 12, + 161, + 161, + 161, + 109, + 180, + 367, + 198, + 198, + 198, + 92, + 39, + 209, + 209, + 106, + 106, + 164, + 191, + 358, + 191, + 195, + 140, + 174, + 253, + 252, + 252, + 174, + 174, + 279, + 279, + 241, + 241, + 241, + 240, + 328, + 328, + 56, + 56, + 56, + 86, + 271, + 271, + 271, + 239, + 239, + 87, + 87, + 194, + 194, + 194, + 4, + 4, + 4, + 176, + 176, + 378, + 378, + 378, + 321, + 257, + 323, + 96, + 139, + 70, + 370, + 370, + 370, + 260, + 217, + 236, + 236, + 228, + 228, + 292, + 292, + 292, + 292, + 292, + 20, + 130, + 73, + 57, + 390, + 390, + 390, + 390, + 374, + 302, + 288, + 288, + 266, + 57, + 17, + 304, + 150, + 150, + 150, + 182, + 123, + 123, + 29, + 57, + 57, + 384, + 24, + 172, + 92, + 2, + 254, + 2, + 2, + 207, + 207, + 207, + 207, + 207, + 207, + 153, + 301, + 301, + 301, + 156, + 394, + 394, + 332, + 332, + 332, + 332, + 354, + 45, + 45, + 45, + 45, + 167, + 268, + 167, + 1, + 151, + 151, + 199, + 9, + 9, + 149, + 149, + 149, + 149, + 149, + 149, + 302, + 302, + 232, + 149, + 149, + 149, + 330, + 330, + 269, + 269, + 330, + 330, + 330, + 339, + 339, + 339, + 339, + 238, + 238, + 323, + 149, + 149, + 155, + 316, + 316, + 331, + 331, + 155, + 270, + 155, + 155, + 26, + 17, + 17, + 17, + 187, + 186, + 28, + 50, + 217, + 217, + 199, + 21, + 379, + 21, + 114, + 371, + 371, + 397, + 342, + 64, + 144, + 144, + 147, + 147, + 210, + 315, + 147, + 147, + 147, + 183, + 0, + 377, + 0, + 293, + 293, + 227, + 127, + 140, + 285, + 330, + 330, + 330, + 140, + 85, + 85, + 85, + 85, + 398, + 398, + 48, + 48, + 48, + 142, + 142, + 142, + 165, + 165, + 101, + 5, + 5, + 5, + 255, + 239, + 339, + 339, + 265, + 265, + 342, + 342, + 175, + 12, + 388, + 388, + 92, + 92, + 92, + 297, + 395, + 92, + 194, + 34, + 34, + 34, + 281, + 281, + 34, + 282, + 282, + 282, + 255, + 384, + 400, + 400, + 400, + 400, + 363, + 363, + 380, + 380, + 346, + 346, + 317, + 263, + 263, + 263, + 263, + 34, + 34, + 192, + 31, + 31, + 215, + 31, + 66, + 51, + 51, + 51, + 84, + 353, + 182, + 279, + 287, + 287, + 333, + 182, + 119, + 119, + 366, + 392, + 392, + 132, + 200, + 255, + 342, + 342, + 342, + 323, + 264, + 200, + 68, + 43, + 43, + 43, + 76, + 235, + 126, + 126, + 371, + 126, + 126, + 172, + 188, + 388, + 188, + 64, + 139, + 139, + 139, + 359, + 359, + 255, + 139, + 168, + 168, + 168, + 327, + 327, + 327, + 168, + 86, + 69, + 274, + 310, + 310, + 310, + 310, + 19, + 19, + 149, + 364, + 149, + 149, + 250, + 123, + 123, + 123, + 123, + 57, + 361, + 361, + 57, + 181, + 56, + 56, + 56, + 34, + 34, + 376, + 357, + 400, + 400, + 212, + 214, + 266, + 266, + 116, + 54, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 251, + 215, + 32, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 388, + 244, + 148, + 148, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 204, + 204, + 281, + 281, + 281, + 334, + 334, + 121, + 338, + 338, + 121, + 121, + 121, + 121, + 145, + 145, + 211, + 145, + 232, + 232, + 144, + 217, + 26, + 295, + 130, + 130, + 130, + 130, + 347, + 244, + 130, + 299, + 130, + 130, + 130, + 197, + 40, + 39, + 254, + 254, + 254, + 253, + 253, + 253, + 253, + 253, + 253, + 232, + 315, + 315, + 204, + 322, + 322, + 322, + 322, + 397, + 397, + 132, + 8, + 8, + 131, + 131, + 42, + 42, + 395, + 395, + 395, + 108, + 5, + 76, + 76, + 65, + 71, + 71, + 71, + 71, + 286, + 71, + 71, + 71, + 71, + 68, + 330, + 330, + 97, + 31, + 75, + 249, + 183, + 398, + 398, + 398, + 398, + 183, + 355, + 355, + 355, + 355, + 355, + 355, + 295, + 295, + 295, + 349, + 349, + 349, + 349, + 349, + 183, + 108, + 12, + 23, + 23, + 274, + 274, + 217, + 217, + 217, + 341, + 341, + 341, + 341, + 212, + 386, + 273, + 273, + 206, + 206, + 201, + 201, + 201, + 336, + 336, + 339, + 168, + 168, + 168, + 166, + 325, + 325, + 367, + 367, + 367, + 166, + 166, + 182, + 150, + 150, + 150, + 175, + 175, + 125, + 125, + 246, + 246, + 246, + 246, + 146, + 146, + 33, + 334, + 330, + 209, + 209, + 242, + 242, + 398, + 166, + 340, + 340, + 340, + 340, + 194, + 194, + 37, + 37, + 40, + 49, + 24, + 24, + 140, + 314, + 314, + 140, + 100, + 100, + 131, + 131, + 131, + 72, + 131, + 67, + 248, + 248, + 248, + 372, + 315, + 111, + 194, + 269, + 194, + 224, + 194, + 73, + 366, + 366, + 273, + 388, + 240, + 240, + 249, + 365, + 192, + 354, + 346, + 346, + 0, + 0, + 324, + 324, + 186, + 268, + 268, + 319, + 319, + 186, + 186, + 140, + 6, + 345, + 345, + 345, + 394, + 340, + 340, + 340, + 316, + 363, + 247, + 247, + 6, + 6, + 249, + 249, + 249, + 361, + 6, + 24, + 24, + 145, + 145, + 145, + 145, + 371, + 138, + 167, + 157, + 157, + 78, + 283, + 283, + 78, + 174, + 263, + 263, + 210, + 210, + 202, + 174, + 174, + 174, + 174, + 375, + 179, + 179, + 179, + 87, + 87, + 203, + 177, + 177, + 91, + 91, + 16, + 152, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 256, + 295, + 385, + 385, + 385, + 385, + 309, + 152, + 152, + 152, + 152, + 148, + 148, + 148, + 148, + 148, + 16, + 212, + 30, + 60, + 60, + 237, + 237, + 237, + 237, + 237, + 237, + 237, + 237, + 237, + 257, + 257, + 132, + 132, + 132, + 382, + 132, + 146, + 308, + 308, + 231, + 343, + 343, + 343, + 343, + 294, + 379, + 379, + 379, + 224, + 224, + 224, + 224, + 224, + 187, + 187, + 187, + 25, + 25, + 245, + 25, + 385, + 385, + 385, + 385, + 385, + 25, + 144, + 144, + 329, + 329, + 131, + 131, + 38, + 38, + 38, + 38, + 355, + 96, + 96, + 34, + 0, + 0, + 0, + 188, + 188, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 188, + 76, + 142, + 142, + 142, + 142, + 142, + 251, + 251, + 323, + 323, + 142, + 142, + 142, + 142, + 216, + 216, + 216, + 216, + 288, + 288, + 288, + 288, + 288, + 225, + 113, + 59, + 311, + 265, + 224, + 224, + 59, + 392, + 314, + 314, + 310, + 310, + 310, + 310, + 310, + 310, + 310, + 77, + 149, + 149, + 385, + 149, + 143, + 143, + 143, + 143, + 143, + 66, + 66, + 364, + 364, + 400, + 216, + 119, + 380, + 119, + 119, + 119, + 119, + 356, + 119, + 119, + 119, + 199, + 166, + 55, + 55, + 358, + 55, + 55, + 25, + 25, + 25, + 167, + 169, + 312, + 312, + 312, + 48, + 48, + 124, + 221, + 367, + 242, + 229, + 229, + 319, + 307, + 307, + 278, + 278, + 346, + 346, + 261, + 263, + 263, + 263, + 60, + 139, + 317, + 317, + 139, + 254, + 254, + 254, + 254, + 254, + 280, + 280, + 256, + 256, + 216, + 216, + 216, + 216, + 260, + 260, + 277, + 277, + 199, + 14, + 14, + 329, + 329, + 329, + 329, + 14, + 14, + 193, + 193, + 193, + 5, + 331, + 331, + 331, + 232, + 316, + 24, + 243, + 24, + 26, + 319, + 26, + 26, + 364, + 364, + 79, + 79, + 113, + 360, + 227, + 113, + 113, + 72, + 99, + 99, + 99, + 99, + 144, + 58, + 155, + 45, + 45, + 214, + 266, + 333, + 333, + 333, + 45, + 45, + 336, + 202, + 393, + 393, + 393, + 166, + 385, + 389, + 56, + 56, + 384, + 384, + 56, + 307, + 259, + 259, + 259, + 384, + 266, + 56, + 56, + 56, + 56, + 56, + 36, + 178, + 178, + 60, + 18, + 18, + 352, + 51, + 349, + 51, + 92, + 379, + 379, + 92, + 92, + 22, + 148, + 148, + 148, + 202, + 333, + 148, + 304, + 304, + 304, + 304, + 304, + 304, + 304, + 254, + 254, + 254, + 316, + 400, + 400, + 201, + 23, + 23, + 23, + 23, + 376, + 376, + 376, + 376, + 376, + 254, + 341, + 247, + 302, + 302, + 373, + 373, + 373, + 373, + 373, + 373, + 373, + 286, + 286, + 296, + 76, + 76, + 76, + 76, + 76, + 76, + 76, + 76, + 76, + 76, + 76, + 44, + 44, + 120, + 120, + 120, + 120, + 125, + 125, + 125, + 83, + 83, + 83, + 160, + 194, + 182, + 182, + 372, + 267, + 182, + 182, + 182, + 15, + 15, + 72, + 72, + 262, + 262, + 72, + 150, + 291, + 291, + 291, + 291, + 284, + 266, + 266, + 266, + 222, + 216, + 150, + 245, + 245, + 245, + 245, + 116, + 372, + 372, + 309, + 309, + 309, + 111, + 369, + 369, + 369, + 193, + 17, + 33, + 178, + 178, + 246, + 246, + 383, + 169, + 136, + 136, + 21, + 21, + 21, + 198, + 198, + 198, + 198, + 114, + 100, + 200, + 282, + 268, + 268, + 283, + 200, + 141, + 370, + 139, + 114, + 82, + 82, + 377, + 377, + 377, + 82, + 82, + 73, + 73, + 193, + 312, + 193, + 169, + 29, + 200, + 397, + 397, + 200, + 392, + 392, + 46, + 46, + 46, + 344, + 344, + 193, + 15, + 15, + 15, + 22, + 246, + 246, + 396, + 22, + 62, + 201, + 104, + 104, + 259, + 104, + 104, + 162, + 275, + 275, + 323, + 323, + 323, + 374, + 319, + 319, + 319, + 319, + 339, + 212, + 222, + 222, + 222, + 222, + 22, + 15, + 171, + 19, + 19, + 19, + 19, + 19, + 251, + 251, + 254, + 254, + 254, + 372, + 372, + 372, + 19, + 19, + 161, + 301, + 301, + 49, + 49, + 89, + 89, + 190, + 283, + 283, + 283, + 283, + 276, + 276, + 279, + 279, + 281, + 281, + 281, + 281, + 340, + 340, + 298, + 249, + 99, + 354, + 354, + 237, + 289, + 99, + 391, + 131, + 42, + 169, + 169, + 344, + 13, + 228, + 228, + 228, + 13, + 225, + 225, + 225, + 13, + 153, + 153, + 153, + 153, + 359, + 359, + 98, + 326, + 326, + 98, + 325, + 325, + 98, + 98, + 319, + 38, + 38, + 13, + 131, + 234, + 234, + 158, + 158, + 239, + 158, + 137, + 28, + 28, + 28, + 28, + 28, + 17, + 17, + 345, + 345, + 17, + 157, + 215, + 215, + 157, + 157, + 396, + 23, + 159, + 159, + 181, + 53, + 53, + 83, + 100, + 100, + 227, + 181, + 181, + 142, + 19, + 0, + 0, + 141, + 272, + 297, + 297, + 297, + 64, + 64, + 64, + 153, + 382, + 117, + 81, + 81, + 81, + 81, + 117, + 117, + 17, + 6, + 6, + 285, + 285, + 329, + 319, + 252, + 250, + 250, + 367, + 367, + 367, + 40, + 40, + 56, + 278, + 278, + 234, + 4, + 4, + 4, + 220, + 4, + 9, + 220, + 220, + 220, + 194, + 194, + 361, + 361, + 128, + 260, + 101, + 55, + 55, + 24, + 24, + 24, + 24, + 24, + 354, + 71, + 71, + 71, + 204, + 217, + 267, + 267, + 71, + 71, + 30, + 30, + 29, + 294, + 294, + 294, + 29, + 29, + 15, + 15, + 15, + 278, + 278, + 278, + 278, + 278, + 278, + 278, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 230, + 230, + 318, + 318, + 318, + 357, + 270, + 282, + 282, + 181, + 93, + 352, + 93, + 93, + 93, + 107, + 9, + 133, + 154, + 154, + 154, + 85, + 85, + 169, + 194, + 194, + 5, + 5, + 253, + 5, + 217, + 217, + 217, + 5, + 92, + 57, + 57, + 334, + 38, + 38, + 127, + 206, + 206, + 206, + 94, + 94, + 163, + 163, + 237, + 22, + 73, + 73, + 188, + 188, + 331, + 331, + 55, + 339, + 339, + 125, + 125, + 111, + 111, + 235, + 235, + 235, + 235, + 324, + 254, + 163, + 145, + 145, + 189, + 189, + 239, + 189, + 78, + 111, + 315, + 315, + 315, + 365, + 111, + 111, + 111, + 161, + 46, + 46, + 90, + 274, + 274, + 154, + 2, + 2, + 291, + 291, + 2, + 2, + 2, + 186, + 119, + 336, + 340, + 340, + 238, + 102, + 116, + 116, + 116, + 116, + 31, + 31, + 350, + 31, + 31, + 31, + 376, + 376, + 88, + 159, + 323, + 308, + 262, + 159, + 260, + 260, + 286, + 147, + 112, + 94, + 138, + 221, + 138, + 138, + 241, + 320, + 320, + 320, + 352, + 352, + 213, + 367, + 297, + 319, + 319, + 319, + 49, + 95, + 284, + 284, + 284, + 284, + 284, + 284, + 247, + 247, + 224, + 224, + 304, + 304, + 332, + 332, + 332, + 246, + 296, + 296, + 296, + 296, + 296, + 296, + 372, + 372, + 372, + 127, + 257, + 257, + 257, + 257, + 70, + 151, + 8, + 395, + 395, + 395, + 395, + 395, + 8, + 8, + 163, + 171, + 188, + 23, + 34, + 24, + 24, + 110, + 49, + 23, + 23, + 23, + 23, + 181, + 318, + 318, + 181, + 125, + 270, + 385, + 333, + 333, + 333, + 165, + 165, + 165, + 145, + 112, + 174, + 174, + 174, + 249, + 174, + 148, + 148, + 148, + 110, + 110, + 110, + 110, + 111, + 86, + 38, + 90, + 373, + 258, + 134, + 134, + 243, + 296, + 296, + 296, + 296, + 296, + 262, + 326, + 171, + 171, + 171, + 324, + 324, + 324, + 378, + 376, + 376, + 179, + 3, + 3, + 177, + 177, + 297, + 297, + 297, + 177, + 1, + 1, + 77, + 187, + 81, + 81, + 95, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 341, + 341, + 341, + 342, + 342, + 342, + 322, + 100, + 100, + 100, + 100, + 100, + 37, + 149, + 80, + 325, + 325, + 253, + 253, + 253, + 360, + 150, + 150, + 219, + 219, + 150, + 137, + 121, + 172, + 215, + 172, + 172, + 212, + 212, + 212, + 172, + 172, + 221, + 383, + 383, + 383, + 326, + 190, + 61, + 61, + 356, + 257, + 370, + 370, + 288, + 288, + 288, + 288, + 288, + 236, + 236, + 236, + 236, + 236, + 236, + 61, + 7, + 101, + 68, + 127, + 33, + 33, + 213, + 213, + 33, + 128, + 137, + 60, + 60, + 60, + 193, + 130, + 208, + 208, + 276, + 130, + 130, + 130, + 54, + 239, + 270, + 314, + 314, + 389, + 54, + 389, + 389, + 389, + 370, + 370, + 370, + 370, + 370, + 70, + 70, + 70, + 111, + 198, + 198, + 108, + 33, + 33, + 107, + 208, + 56, + 374, + 374, + 25, + 25, + 25, + 119, + 105, + 374, + 374, + 105, + 105, + 387, + 318, + 318, + 318, + 318, + 318, + 241, + 241, + 373, + 250, + 250, + 250, + 250, + 242, + 242, + 242, + 242, + 242, + 323, + 385, + 385, + 385, + 385, + 229, + 105, + 271, + 271, + 271, + 105, + 14, + 296, + 14, + 90, + 94, + 94, + 51, + 335, + 335, + 51, + 97, + 58, + 58, + 258, + 38, + 38, + 30, + 30, + 189, + 191, + 191, + 72, + 72, + 72, + 211, + 211, + 211, + 211, + 211, + 133, + 47, + 47, + 209, + 47, + 47, + 361, + 361, + 47, + 161, + 143, + 2, + 153, + 153, + 153, + 396, + 153, + 153, + 163, + 163, + 67, + 164, + 154, + 313, + 227, + 227, + 169, + 169, + 271, + 271, + 271, + 271, + 330, + 347, + 319, + 169, + 169, + 169, + 285, + 300, + 300, + 300, + 300, + 299, + 288, + 164, + 163, + 163, + 163, + 163, + 107, + 222, + 397, + 397, + 397, + 397, + 397, + 397, + 107, + 107, + 204, + 204, + 107, + 79, + 130, + 107, + 108, + 327, + 35, + 336, + 323, + 323, + 323, + 323, + 262, + 244, + 283, + 224, + 371, + 371, + 257, + 129, + 129, + 192, + 192, + 192, + 154, + 334, + 144, + 115, + 213, + 213, + 301, + 276, + 276, + 115, + 175, + 175, + 175, + 84, + 84, + 171, + 171, + 51, + 117, + 290, + 290, + 117, + 233, + 363, + 181, + 181, + 295, + 295, + 380, + 380, + 336, + 181, + 34, + 149, + 149, + 195, + 121, + 190, + 133, + 35, + 48, + 88, + 88, + 88, + 88, + 186, + 367, + 367, + 363, + 363, + 124, + 124, + 100, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 268, + 268, + 268, + 306, + 306, + 71, + 71, + 222, + 222, + 222, + 298, + 298, + 298, + 298, + 384, + 195, + 195, + 83, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 203, + 219, + 219, + 379, + 243, + 269, + 128, + 39, + 23, + 23, + 46, + 15, + 278, + 144, + 218, + 304, + 304, + 271, + 375, + 375, + 144, + 57, + 57, + 16, + 42, + 397, + 327, + 318, + 318, + 377, + 244, + 25, + 25, + 25, + 25, + 25, + 129, + 129, + 129, + 34, + 196, + 68, + 283, + 68, + 201, + 201, + 201, + 201, + 201, + 201, + 364, + 264, + 264, + 68, + 234, + 130, + 207, + 207, + 30, + 26, + 26, + 26, + 19, + 19, + 338, + 18, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 123, + 284, + 376, + 245, + 266, + 266, + 123, + 304, + 15, + 68, + 68, + 68, + 68, + 199, + 199, + 199, + 303, + 303, + 303, + 203, + 301, + 301, + 353, + 353, + 238, + 207, + 207, + 318, + 318, + 318, + 318, + 318, + 78, + 307, + 287, + 240, + 240, + 240, + 373, + 373, + 78, + 153, + 153, + 153, + 153, + 298, + 102, + 180, + 119, + 32, + 121, + 369, + 369, + 121, + 121, + 121, + 153, + 191, + 183, + 61, + 1, + 1, + 182, + 182, + 182, + 285, + 285, + 285, + 285, + 285, + 228, + 182, + 197, + 316, + 177, + 177, + 32, + 276, + 344, + 344, + 344, + 344, + 344, + 344, + 260, + 260, + 351, + 351, + 32, + 103, + 73, + 73, + 73, + 73, + 73, + 189, + 189, + 252, + 183, + 80, + 110, + 110, + 110, + 156, + 65, + 107, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 291, + 291, + 291, + 284, + 284, + 284, + 77, + 77, + 54, + 54, + 116, + 116, + 300, + 300, + 194, + 34, + 392, + 194, + 194, + 307, + 194, + 194, + 194, + 96, + 161, + 79, + 92, + 155, + 290, + 290, + 326, + 326, + 171, + 63, + 306, + 306, + 306, + 306, + 262, + 262, + 262, + 230, + 230, + 269, + 97, + 159, + 159, + 25, + 358, + 358, + 32, + 32, + 266, + 80, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 312, + 368, + 368, + 368, + 368, + 368, + 367, + 367, + 367, + 391, + 391, + 102, + 278, + 278, + 278, + 278, + 278, + 124, + 124, + 124, + 124, + 225, + 225, + 225, + 207, + 124, + 123, + 123, + 123, + 123, + 73, + 201, + 73, + 73, + 387, + 387, + 344, + 344, + 77, + 210, + 210, + 210, + 210, + 210, + 210, + 210, + 210, + 47, + 123, + 177, + 177, + 102, + 32, + 7, + 22, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 234, + 233, + 387, + 363, + 77, + 77, + 77, + 38, + 38, + 84, + 143, + 143, + 128, + 79, + 14, + 14, + 14, + 22, + 22, + 203, + 203, + 310, + 222, + 22, + 188, + 118, + 361, + 118, + 118, + 118, + 118, + 314, + 314, + 314, + 314, + 118, + 196, + 391, + 391, + 391, + 391, + 391, + 385, + 196, + 196, + 49, + 49, + 346, + 346, + 54, + 54, + 164, + 164, + 164, + 84, + 127, + 82, + 82, + 363, + 82, + 281, + 281, + 281, + 281, + 281, + 292, + 292, + 289, + 314, + 314, + 399, + 399, + 399, + 82, + 82, + 179, + 165, + 165, + 321, + 321, + 373, + 236, + 236, + 324, + 221, + 382, + 224, + 224, + 308, + 298, + 298, + 298, + 298, + 47, + 47, + 47, + 59, + 59, + 59, + 293, + 97, + 261, + 38, + 99, + 75, + 98, + 98, + 172, + 172, + 26, + 26, + 98, + 98, + 309, + 309, + 309, + 98, + 123, + 123, + 285, + 356, + 314, + 389, + 236, + 236, + 236, + 282, + 123, + 123, + 123, + 7, + 15, + 168, + 168, + 357, + 93, + 93, + 192, + 24, + 169, + 0, + 0, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 393, + 393, + 393, + 393, + 207, + 384, + 300, + 319, + 22, + 62, + 62, + 62, + 25, + 267, + 267, + 267, + 25, + 296, + 296, + 25, + 25, + 353, + 25, + 395, + 53, + 206, + 206, + 206, + 316, + 316, + 224, + 224, + 224, + 343, + 270, + 238, + 8, + 8, + 8, + 8, + 8, + 257, + 257, + 334, + 334, + 37, + 37, + 130, + 109, + 109, + 43, + 348, + 223, + 223, + 43, + 96, + 169, + 169, + 169, + 195, + 195, + 32, + 354, + 354, + 354, + 354, + 354, + 397, + 240, + 240, + 240, + 240, + 230, + 230, + 230, + 230, + 397, + 258, + 258, + 258, + 207, + 232, + 232, + 209, + 209, + 391, + 306, + 203, + 32, + 32, + 32, + 56, + 126, + 367, + 126, + 257, + 257, + 155, + 61, + 370, + 370, + 303, + 303, + 231, + 61, + 186, + 14, + 14, + 14, + 62, + 62, + 250, + 250, + 62, + 211, + 211, + 291, + 130, + 130, + 130, + 161, + 161, + 161, + 386, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 375, + 375, + 161, + 189, + 104, + 104, + 104, + 104, + 104, + 104, + 214, + 214, + 214, + 214, + 392, + 392, + 392, + 254, + 391, + 265, + 265, + 178, + 178, + 50, + 50, + 50, + 66, + 194, + 194, + 194, + 230, + 230, + 230, + 230, + 152, + 152, + 55, + 229, + 229, + 292, + 55, + 95, + 95, + 95, + 95, + 121, + 121, + 121, + 69, + 69, + 69, + 38, + 38, + 38, + 38, + 38, + 7, + 197, + 197, + 187, + 346, + 187, + 187, + 199, + 157, + 157, + 157, + 157, + 394, + 316, + 316, + 157, + 157, + 63, + 63, + 116, + 180, + 194, + 36, + 36, + 65, + 348, + 348, + 348, + 27, + 378, + 378, + 378, + 343, + 185, + 382, + 185, + 93, + 295, + 211, + 211, + 211, + 211, + 211, + 211, + 363, + 369, + 6, + 76, + 367, + 227, + 227, + 21, + 256, + 256, + 256, + 393, + 393, + 102, + 102, + 163, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 183, + 183, + 183, + 156, + 93, + 192, + 192, + 261, + 261, + 261, + 294, + 391, + 347, + 256, + 286, + 286, + 286, + 286, + 114, + 130, + 298, + 267, + 267, + 267, + 87, + 35, + 35, + 35, + 165, + 165, + 165, + 353, + 353, + 295, + 295, + 295, + 295, + 295, + 165, + 273, + 165, + 2, + 348, + 348, + 348, + 348, + 348, + 348, + 348, + 245, + 245, + 245, + 277, + 277, + 284, + 2, + 2, + 252, + 2, + 157, + 194, + 50, + 50, + 32, + 384, + 384, + 384, + 32, + 257, + 84, + 84, + 84, + 84, + 48, + 144, + 84, + 328, + 328, + 84, + 71, + 213, + 213, + 213, + 213, + 336, + 198, + 324, + 324, + 81, + 286, + 286, + 286, + 397, + 81, + 81, + 259, + 81, + 223, + 223, + 81, + 81, + 192, + 208, + 150, + 109, + 0, + 0, + 0, + 336, + 336, + 0, + 0, + 273, + 175, + 175, + 127, + 7, + 14, + 14, + 14, + 14, + 51, + 51, + 51, + 51, + 51, + 351, + 351, + 51, + 374, + 374, + 374, + 374, + 374, + 374, + 201, + 201, + 51, + 131, + 131, + 57, + 57, + 350, + 350, + 138, + 82, + 152, + 152, + 204, + 204, + 218, + 218, + 223, + 223, + 223, + 223, + 175, + 9, + 97, + 393, + 393, + 23, + 23, + 23, + 23, + 43, + 64, + 47, + 160, + 8, + 300, + 244, + 361, + 361, + 304, + 344, + 305, + 360, + 360, + 360, + 360, + 227, + 296, + 246, + 310, + 231, + 231, + 246, + 246, + 254, + 254, + 368, + 310, + 211, + 178, + 178, + 133, + 0, + 74, + 74, + 289, + 258, + 258, + 246, + 246, + 246, + 246, + 246, + 246, + 256, + 248, + 248, + 356, + 228, + 228, + 362, + 242, + 242, + 242, + 242, + 242, + 204, + 204, + 173, + 173, + 173, + 105, + 105, + 105, + 105, + 105, + 2, + 2, + 359, + 58, + 58, + 153, + 81, + 223, + 386, + 62, + 322, + 322, + 62, + 62, + 62, + 62, + 62, + 62, + 126, + 126, + 346, + 346, + 288, + 126, + 126, + 126, + 126, + 187, + 243, + 128, + 128, + 128, + 128, + 182, + 9, + 161, + 378, + 378, + 378, + 332, + 332, + 125, + 205, + 384, + 277, + 277, + 277, + 277, + 277, + 303, + 11, + 170, + 170, + 294, + 294, + 294, + 170, + 287, + 287, + 58, + 130, + 130, + 166, + 0, + 0, + 386, + 0, + 16, + 16, + 20, + 302, + 20, + 208, + 208, + 208, + 208, + 238, + 109, + 147, + 147, + 395, + 395, + 395, + 395, + 375, + 376, + 373, + 86, + 86, + 341, + 341, + 341, + 263, + 263, + 333, + 22, + 41, + 137, + 137, + 137, + 137, + 137, + 137, + 57, + 216, + 216, + 141, + 185, + 185, + 44, + 44, + 44, + 274, + 274, + 47, + 341, + 341, + 341, + 341, + 47, + 47, + 47, + 245, + 245, + 348, + 348, + 348, + 348, + 47, + 279, + 47, + 325, + 14, + 180, + 175, + 175, + 384, + 106, + 106, + 132, + 132, + 125, + 125, + 125, + 125, + 193, + 156, + 0, + 252, + 253, + 253, + 253, + 246, + 246, + 252, + 0, + 72, + 373, + 373, + 103, + 27, + 163, + 141, + 206, + 206, + 141, + 141, + 141, + 141, + 370, + 370, + 370, + 370, + 260, + 149, + 76, + 76, + 292, + 292, + 292, + 292, + 227, + 368, + 368, + 368, + 368, + 330, + 330, + 330, + 330, + 266, + 266, + 266, + 375, + 297, + 76, + 192, + 14, + 149, + 149, + 28, + 28, + 216, + 216, + 201, + 201, + 358, + 358, + 260, + 260, + 260, + 400, + 400, + 400, + 400, + 28, + 28, + 76, + 76, + 59, + 59, + 59, + 10, + 138, + 138, + 157, + 157, + 8, + 215, + 159, + 156, + 7, + 7, + 352, + 140, + 353, + 140, + 0, + 0, + 81, + 81, + 108, + 9, + 161, + 161, + 36, + 308, + 308, + 390, + 12, + 12, + 12, + 136, + 200, + 200, + 389, + 389, + 389, + 224, + 226, + 155, + 261, + 335, + 131, + 207, + 215, + 6, + 352, + 154, + 38, + 359, + 38, + 38, + 38, + 38, + 38, + 98, + 98, + 98, + 188, + 289, + 139, + 139, + 382, + 382, + 381, + 381, + 289, + 289, + 397, + 397, + 247, + 247, + 247, + 253, + 213, + 213, + 228, + 228, + 244, + 244, + 352, + 352, + 352, + 139, + 139, + 139, + 82, + 199, + 199, + 199, + 199, + 16, + 174, + 52, + 52, + 52, + 130, + 130, + 156, + 273, + 273, + 273, + 75, + 124, + 124, + 77, + 77, + 338, + 145, + 145, + 135, + 141, + 33, + 14, + 395, + 14, + 380, + 125, + 131, + 131, + 131, + 49, + 49, + 49, + 49, + 123, + 145, + 145, + 125, + 125, + 83, + 142, + 142, + 142, + 109, + 109, + 134, + 134, + 180, + 86, + 82, + 82, + 82, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 381, + 271, + 279, + 279, + 42, + 42, + 49, + 163, + 168, + 233, + 380, + 343, + 343, + 343, + 343, + 168, + 168, + 135, + 246, + 246, + 234, + 232, + 232, + 250, + 22, + 165, + 165, + 15, + 51, + 115, + 115, + 203, + 203, + 247, + 247, + 318, + 318, + 318, + 318, + 276, + 286, + 286, + 262, + 262, + 272, + 235, + 115, + 32, + 165, + 22, + 357, + 357, + 141, + 141, + 91, + 91, + 91, + 234, + 91, + 79, + 79, + 103, + 103, + 103, + 103, + 103, + 144, + 144, + 204, + 46, + 46, + 46, + 46, + 46, + 277, + 180, + 114, + 114, + 68, + 226, + 226, + 65, + 65, + 144, + 144, + 121, + 121, + 121, + 43, + 43, + 333, + 333, + 333, + 333, + 271, + 283, + 283, + 196, + 108, + 108, + 114, + 114, + 21, + 368, + 368, + 354, + 354, + 208, + 21, + 21, + 99, + 102, + 323, + 360, + 360, + 360, + 360, + 360, + 258, + 258, + 258, + 258, + 341, + 390, + 400, + 400, + 400, + 400, + 400, + 400, + 400, + 218, + 218, + 312, + 250, + 250, + 317, + 320, + 320, + 162, + 187, + 145, + 145, + 66, + 375, + 151, + 151, + 151, + 151, + 49, + 186, + 186, + 30, + 30, + 30, + 30, + 30, + 7, + 242, + 200, + 348, + 348, + 200, + 2, + 154, + 154, + 109, + 303, + 303, + 303, + 203, + 203, + 203, + 358, + 312, + 242, + 364, + 376, + 376, + 376, + 376, + 376, + 376, + 343, + 318, + 257, + 257, + 257, + 397, + 397, + 109, + 400, + 400, + 400, + 200, + 146, + 146, + 146, + 65, + 65, + 65, + 65, + 182, + 38, + 38, + 102, + 299, + 299, + 337, + 337, + 337, + 339, + 339, + 274, + 262, + 223, + 51, + 51, + 51, + 61, + 86, + 84, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 241, + 241, + 241, + 241, + 246, + 58, + 58, + 58, + 191, + 191, + 365, + 365, + 79, + 79, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 88, + 5, + 161, + 161, + 161, + 161, + 161, + 161, + 350, + 350, + 247, + 247, + 331, + 331, + 331, + 314, + 380, + 36, + 221, + 221, + 36, + 36, + 36, + 36, + 192, + 257, + 257, + 257, + 385, + 385, + 192, + 69, + 69, + 73, + 73, + 278, + 278, + 278, + 278, + 278, + 278, + 278, + 278, + 204, + 341, + 341, + 90, + 90, + 197, + 15, + 3, + 3, + 60, + 163, + 163, + 163, + 151, + 239, + 291, + 291, + 81, + 81, + 125, + 15, + 125, + 125, + 125, + 209, + 209, + 209, + 213, + 365, + 125, + 96, + 122, + 122, + 253, + 134, + 134, + 134, + 134, + 174, + 290, + 290, + 290, + 369, + 369, + 369, + 262, + 262, + 174, + 244, + 147, + 163, + 163, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 395, + 213, + 213, + 65, + 17, + 17, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 58, + 379, + 58, + 58, + 58, + 62, + 62, + 12, + 150, + 289, + 150, + 150, + 373, + 150, + 62, + 140, + 23, + 302, + 302, + 111, + 154, + 1, + 1, + 47, + 90, + 308, + 308, + 308, + 233, + 218, + 218, + 218, + 218, + 218, + 272, + 272, + 293, + 293, + 90, + 290, + 290, + 57, + 110, + 137, + 393, + 352, + 352, + 352, + 352, + 350, + 350, + 350, + 350, + 227, + 227, + 28, + 191, + 191, + 320, + 154, + 154, + 154, + 154, + 154, + 227, + 227, + 154, + 154, + 239, + 239, + 239, + 195, + 195, + 195, + 89, + 55, + 55, + 71, + 170, + 315, + 315, + 315, + 170, + 170, + 170, + 170, + 311, + 311, + 311, + 311, + 311, + 311, + 311, + 264, + 264, + 264, + 321, + 302, + 266, + 373, + 226, + 10, + 10, + 10, + 10, + 10, + 270, + 270, + 270, + 253, + 200, + 200, + 227, + 227, + 227, + 227, + 180, + 256, + 256, + 399, + 295, + 295, + 327, + 327, + 330, + 342, + 342, + 342, + 342, + 180, + 81, + 81, + 81, + 81, + 138, + 282, + 282, + 282, + 104, + 104, + 111, + 111, + 125, + 353, + 125, + 125, + 125, + 125, + 125, + 125, + 155, + 15, + 103, + 103, + 103, + 103, + 103, + 99, + 259, + 312, + 194, + 247, + 194, + 199, + 84, + 80, + 86, + 384, + 384, + 350, + 350, + 378, + 378, + 378, + 86, + 274, + 245, + 245, + 245, + 245, + 245, + 53, + 53, + 41, + 41, + 41, + 352, + 352, + 41, + 41, + 41, + 117, + 215, + 154, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.py new file mode 100644 index 0000000000..e0b8e4ee84 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_2flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 2 flows.""" + build(2, False).emit() diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.expect new file mode 100644 index 0000000000..eb9df46ee2 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 243, + 243, + 203, + 203, + 275, + 330, + 329, + 310, + 310, + 310, + 121, + 291, + 256, + 121, + 268, + 354, + 354, + 380, + 262, + 307, + 130, + 80, + 80, + 80, + 363, + 242, + 242, + 388, + 388, + 388, + 388, + 388, + 388, + 299, + 299, + 299, + 325, + 40, + 40, + 243, + 243, + 243, + 287, + 287, + 287, + 176, + 287, + 287, + 321, + 106, + 61, + 125, + 125, + 125, + 125, + 306, + 306, + 306, + 296, + 296, + 95, + 145, + 145, + 205, + 205, + 205, + 171, + 171, + 171, + 171, + 309, + 83, + 341, + 341, + 341, + 212, + 79, + 215, + 215, + 125, + 238, + 238, + 238, + 238, + 238, + 221, + 216, + 318, + 318, + 318, + 133, + 306, + 221, + 221, + 80, + 361, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 231, + 5, + 5, + 241, + 241, + 241, + 11, + 181, + 181, + 312, + 312, + 281, + 281, + 167, + 167, + 167, + 167, + 167, + 167, + 254, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 216, + 238, + 238, + 238, + 238, + 162, + 177, + 253, + 253, + 253, + 253, + 183, + 183, + 219, + 219, + 219, + 219, + 281, + 300, + 314, + 150, + 314, + 251, + 366, + 330, + 330, + 293, + 372, + 378, + 323, + 391, + 391, + 98, + 98, + 267, + 12, + 12, + 12, + 12, + 219, + 250, + 12, + 82, + 82, + 3, + 3, + 3, + 3, + 3, + 305, + 305, + 318, + 318, + 69, + 332, + 203, + 203, + 203, + 332, + 332, + 332, + 332, + 332, + 343, + 290, + 290, + 290, + 69, + 36, + 60, + 151, + 60, + 60, + 82, + 276, + 308, + 209, + 209, + 209, + 209, + 308, + 308, + 308, + 308, + 308, + 308, + 356, + 356, + 356, + 356, + 356, + 356, + 354, + 354, + 354, + 354, + 354, + 346, + 346, + 306, + 217, + 217, + 82, + 82, + 90, + 21, + 21, + 129, + 220, + 220, + 246, + 246, + 129, + 66, + 66, + 66, + 98, + 98, + 98, + 170, + 170, + 208, + 374, + 310, + 310, + 161, + 161, + 161, + 183, + 183, + 183, + 183, + 310, + 297, + 98, + 98, + 191, + 388, + 378, + 98, + 98, + 310, + 310, + 310, + 310, + 310, + 332, + 332, + 332, + 98, + 98, + 90, + 162, + 162, + 162, + 162, + 303, + 90, + 400, + 400, + 400, + 90, + 255, + 90, + 21, + 119, + 119, + 0, + 300, + 76, + 76, + 76, + 89, + 89, + 89, + 11, + 113, + 18, + 256, + 359, + 351, + 351, + 351, + 278, + 400, + 109, + 109, + 120, + 223, + 91, + 238, + 222, + 222, + 157, + 157, + 332, + 380, + 220, + 380, + 81, + 81, + 95, + 269, + 269, + 269, + 180, + 180, + 269, + 301, + 301, + 248, + 248, + 312, + 312, + 252, + 323, + 323, + 154, + 323, + 397, + 397, + 397, + 397, + 296, + 182, + 218, + 218, + 165, + 95, + 63, + 195, + 195, + 86, + 86, + 86, + 86, + 86, + 144, + 227, + 227, + 195, + 6, + 380, + 152, + 6, + 120, + 120, + 45, + 255, + 255, + 255, + 103, + 103, + 198, + 198, + 198, + 198, + 367, + 201, + 201, + 201, + 201, + 149, + 367, + 286, + 286, + 337, + 103, + 121, + 54, + 41, + 87, + 7, + 12, + 12, + 310, + 310, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 128, + 8, + 40, + 41, + 36, + 36, + 36, + 36, + 154, + 154, + 51, + 51, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 244, + 127, + 101, + 240, + 83, + 165, + 256, + 256, + 256, + 256, + 164, + 164, + 164, + 164, + 256, + 256, + 362, + 30, + 234, + 137, + 137, + 137, + 192, + 192, + 374, + 176, + 176, + 374, + 314, + 314, + 382, + 123, + 14, + 14, + 142, + 122, + 82, + 181, + 181, + 189, + 321, + 92, + 92, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 237, + 206, + 348, + 348, + 348, + 387, + 327, + 43, + 43, + 43, + 80, + 80, + 80, + 80, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 207, + 8, + 8, + 8, + 79, + 338, + 79, + 79, + 143, + 143, + 143, + 217, + 366, + 13, + 281, + 315, + 315, + 157, + 3, + 3, + 374, + 353, + 3, + 3, + 3, + 3, + 105, + 105, + 105, + 105, + 51, + 241, + 241, + 51, + 51, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 135, + 119, + 2, + 209, + 2, + 240, + 208, + 208, + 255, + 255, + 223, + 223, + 223, + 223, + 223, + 223, + 256, + 189, + 189, + 189, + 213, + 260, + 260, + 260, + 203, + 333, + 347, + 144, + 144, + 144, + 347, + 347, + 360, + 361, + 348, + 339, + 339, + 175, + 223, + 223, + 339, + 360, + 363, + 235, + 235, + 235, + 363, + 363, + 363, + 382, + 188, + 188, + 188, + 188, + 398, + 398, + 382, + 282, + 316, + 316, + 316, + 316, + 320, + 393, + 74, + 74, + 42, + 194, + 235, + 235, + 235, + 249, + 249, + 249, + 149, + 149, + 149, + 149, + 168, + 168, + 184, + 184, + 325, + 309, + 81, + 257, + 239, + 239, + 256, + 256, + 299, + 206, + 299, + 81, + 81, + 109, + 85, + 85, + 9, + 254, + 254, + 181, + 181, + 305, + 9, + 154, + 107, + 59, + 40, + 40, + 30, + 313, + 30, + 30, + 30, + 201, + 260, + 260, + 71, + 26, + 64, + 101, + 101, + 101, + 132, + 379, + 132, + 92, + 320, + 320, + 320, + 92, + 24, + 24, + 222, + 105, + 105, + 105, + 215, + 105, + 105, + 105, + 112, + 87, + 87, + 316, + 87, + 87, + 87, + 86, + 86, + 312, + 86, + 34, + 34, + 34, + 34, + 141, + 141, + 16, + 20, + 20, + 95, + 95, + 55, + 76, + 76, + 313, + 313, + 313, + 108, + 108, + 33, + 98, + 98, + 98, + 13, + 13, + 304, + 13, + 331, + 142, + 142, + 301, + 287, + 121, + 239, + 226, + 272, + 346, + 346, + 346, + 346, + 346, + 121, + 88, + 88, + 7, + 7, + 17, + 17, + 128, + 52, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 159, + 159, + 77, + 292, + 292, + 292, + 292, + 292, + 206, + 206, + 147, + 292, + 292, + 238, + 187, + 187, + 386, + 364, + 75, + 179, + 237, + 237, + 87, + 40, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 190, + 190, + 190, + 190, + 190, + 166, + 200, + 200, + 175, + 234, + 234, + 219, + 219, + 219, + 219, + 150, + 150, + 150, + 295, + 295, + 394, + 392, + 392, + 394, + 192, + 343, + 321, + 321, + 16, + 16, + 16, + 16, + 16, + 16, + 75, + 35, + 35, + 35, + 306, + 306, + 306, + 113, + 255, + 255, + 255, + 144, + 233, + 161, + 161, + 190, + 362, + 362, + 323, + 197, + 323, + 331, + 331, + 53, + 222, + 222, + 266, + 173, + 256, + 242, + 181, + 309, + 309, + 154, + 150, + 150, + 167, + 167, + 167, + 167, + 167, + 167, + 167, + 309, + 309, + 309, + 309, + 309, + 274, + 269, + 269, + 269, + 308, + 308, + 354, + 299, + 299, + 160, + 160, + 160, + 160, + 53, + 72, + 37, + 37, + 267, + 267, + 267, + 321, + 92, + 92, + 92, + 142, + 324, + 92, + 0, + 365, + 365, + 365, + 365, + 0, + 113, + 113, + 113, + 162, + 162, + 162, + 238, + 299, + 362, + 362, + 113, + 287, + 287, + 380, + 370, + 370, + 220, + 220, + 220, + 174, + 174, + 174, + 86, + 86, + 132, + 319, + 319, + 319, + 319, + 132, + 45, + 45, + 50, + 51, + 77, + 212, + 212, + 150, + 150, + 150, + 21, + 127, + 127, + 297, + 297, + 293, + 293, + 293, + 281, + 281, + 281, + 397, + 386, + 0, + 222, + 46, + 237, + 237, + 237, + 148, + 148, + 148, + 148, + 148, + 186, + 170, + 86, + 165, + 313, + 86, + 179, + 86, + 99, + 99, + 312, + 312, + 312, + 264, + 264, + 264, + 312, + 312, + 312, + 312, + 312, + 293, + 154, + 324, + 324, + 323, + 323, + 23, + 128, + 40, + 320, + 97, + 97, + 185, + 185, + 272, + 272, + 97, + 97, + 186, + 186, + 97, + 129, + 68, + 29, + 155, + 155, + 155, + 155, + 155, + 167, + 167, + 365, + 365, + 365, + 365, + 365, + 338, + 338, + 358, + 333, + 29, + 29, + 46, + 46, + 188, + 188, + 188, + 188, + 188, + 188, + 261, + 188, + 188, + 218, + 218, + 218, + 218, + 46, + 184, + 132, + 132, + 32, + 14, + 69, + 275, + 297, + 186, + 297, + 297, + 160, + 297, + 297, + 299, + 170, + 70, + 158, + 158, + 158, + 158, + 226, + 339, + 255, + 255, + 155, + 155, + 178, + 339, + 339, + 101, + 101, + 72, + 117, + 109, + 91, + 23, + 23, + 23, + 23, + 23, + 23, + 87, + 260, + 260, + 199, + 155, + 155, + 332, + 231, + 231, + 304, + 330, + 330, + 280, + 79, + 132, + 132, + 67, + 46, + 46, + 85, + 85, + 92, + 92, + 92, + 79, + 11, + 150, + 11, + 125, + 63, + 63, + 63, + 122, + 122, + 97, + 97, + 194, + 397, + 397, + 97, + 63, + 63, + 167, + 167, + 304, + 339, + 339, + 214, + 339, + 264, + 298, + 298, + 195, + 195, + 195, + 173, + 173, + 295, + 285, + 327, + 327, + 318, + 63, + 63, + 63, + 128, + 128, + 80, + 80, + 71, + 74, + 74, + 74, + 398, + 398, + 398, + 398, + 74, + 74, + 310, + 310, + 74, + 57, + 57, + 57, + 274, + 351, + 351, + 75, + 272, + 272, + 351, + 202, + 202, + 202, + 118, + 118, + 118, + 62, + 288, + 314, + 186, + 323, + 62, + 158, + 158, + 62, + 62, + 62, + 32, + 32, + 32, + 32, + 339, + 349, + 349, + 43, + 43, + 3, + 3, + 3, + 3, + 110, + 26, + 26, + 26, + 55, + 55, + 58, + 58, + 83, + 83, + 83, + 71, + 71, + 71, + 235, + 235, + 171, + 236, + 236, + 236, + 236, + 236, + 236, + 192, + 192, + 192, + 245, + 245, + 245, + 372, + 353, + 304, + 304, + 304, + 350, + 350, + 350, + 164, + 136, + 350, + 65, + 65, + 120, + 120, + 9, + 178, + 134, + 80, + 74, + 266, + 266, + 266, + 266, + 239, + 74, + 74, + 74, + 74, + 291, + 148, + 148, + 148, + 148, + 291, + 318, + 318, + 318, + 318, + 357, + 49, + 49, + 49, + 49, + 49, + 34, + 34, + 34, + 34, + 34, + 26, + 119, + 119, + 119, + 119, + 124, + 49, + 49, + 300, + 300, + 300, + 300, + 208, + 43, + 145, + 145, + 43, + 43, + 43, + 131, + 22, + 148, + 148, + 8, + 160, + 325, + 142, + 142, + 8, + 8, + 8, + 8, + 129, + 57, + 28, + 22, + 22, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 393, + 246, + 393, + 393, + 393, + 237, + 237, + 334, + 334, + 48, + 15, + 91, + 245, + 245, + 295, + 275, + 275, + 275, + 275, + 275, + 275, + 384, + 384, + 384, + 324, + 187, + 390, + 333, + 299, + 299, + 99, + 122, + 198, + 254, + 254, + 103, + 66, + 164, + 164, + 237, + 237, + 237, + 237, + 150, + 245, + 245, + 190, + 190, + 190, + 180, + 180, + 143, + 213, + 153, + 153, + 153, + 153, + 153, + 153, + 298, + 398, + 398, + 267, + 241, + 317, + 317, + 320, + 155, + 320, + 325, + 325, + 344, + 344, + 344, + 344, + 367, + 367, + 367, + 287, + 382, + 200, + 395, + 395, + 395, + 395, + 395, + 378, + 378, + 378, + 378, + 271, + 231, + 231, + 271, + 246, + 271, + 155, + 155, + 155, + 337, + 337, + 149, + 337, + 337, + 277, + 394, + 394, + 278, + 278, + 278, + 194, + 278, + 278, + 278, + 278, + 278, + 309, + 291, + 291, + 311, + 397, + 102, + 10, + 10, + 374, + 330, + 10, + 114, + 203, + 367, + 350, + 114, + 74, + 74, + 74, + 92, + 20, + 14, + 14, + 378, + 378, + 314, + 14, + 14, + 336, + 336, + 279, + 279, + 14, + 14, + 51, + 23, + 124, + 124, + 124, + 124, + 347, + 5, + 5, + 246, + 246, + 246, + 74, + 74, + 74, + 74, + 83, + 83, + 83, + 15, + 15, + 88, + 23, + 63, + 63, + 63, + 63, + 63, + 52, + 52, + 318, + 318, + 318, + 233, + 233, + 156, + 286, + 4, + 37, + 37, + 37, + 334, + 60, + 60, + 60, + 102, + 107, + 107, + 107, + 107, + 24, + 185, + 185, + 211, + 361, + 64, + 64, + 174, + 160, + 160, + 160, + 160, + 377, + 377, + 377, + 396, + 396, + 396, + 396, + 396, + 353, + 353, + 78, + 76, + 15, + 219, + 313, + 166, + 166, + 313, + 174, + 276, + 15, + 333, + 333, + 333, + 23, + 23, + 23, + 82, + 82, + 82, + 82, + 98, + 15, + 15, + 15, + 15, + 132, + 132, + 191, + 191, + 191, + 391, + 391, + 151, + 1, + 100, + 6, + 226, + 284, + 6, + 6, + 62, + 233, + 233, + 53, + 278, + 181, + 278, + 278, + 133, + 152, + 150, + 384, + 384, + 384, + 384, + 317, + 317, + 317, + 317, + 133, + 3, + 346, + 346, + 178, + 178, + 178, + 178, + 346, + 138, + 3, + 3, + 123, + 4, + 23, + 375, + 207, + 375, + 375, + 294, + 294, + 370, + 370, + 23, + 19, + 19, + 19, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 203, + 203, + 325, + 325, + 385, + 385, + 385, + 135, + 385, + 365, + 375, + 375, + 325, + 397, + 397, + 397, + 380, + 290, + 290, + 290, + 376, + 319, + 382, + 382, + 382, + 345, + 216, + 345, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 350, + 350, + 350, + 350, + 365, + 365, + 89, + 130, + 330, + 67, + 67, + 37, + 37, + 89, + 89, + 89, + 56, + 360, + 360, + 228, + 228, + 222, + 360, + 302, + 302, + 56, + 115, + 115, + 115, + 368, + 398, + 111, + 111, + 63, + 123, + 123, + 14, + 360, + 360, + 309, + 309, + 101, + 141, + 233, + 165, + 165, + 165, + 165, + 231, + 367, + 352, + 352, + 174, + 174, + 208, + 352, + 352, + 352, + 341, + 293, + 293, + 93, + 93, + 5, + 335, + 335, + 335, + 335, + 335, + 341, + 341, + 341, + 341, + 341, + 224, + 260, + 301, + 304, + 304, + 5, + 5, + 292, + 292, + 5, + 5, + 5, + 5, + 86, + 52, + 208, + 105, + 296, + 336, + 69, + 30, + 30, + 30, + 30, + 30, + 27, + 27, + 131, + 71, + 394, + 394, + 394, + 253, + 253, + 253, + 394, + 394, + 367, + 371, + 81, + 86, + 276, + 86, + 94, + 9, + 9, + 9, + 9, + 9, + 9, + 26, + 26, + 97, + 97, + 141, + 391, + 360, + 236, + 236, + 36, + 98, + 98, + 311, + 362, + 362, + 338, + 0, + 0, + 0, + 65, + 99, + 375, + 30, + 30, + 30, + 30, + 47, + 277, + 277, + 47, + 112, + 230, + 230, + 230, + 233, + 233, + 233, + 225, + 49, + 34, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 378, + 378, + 400, + 263, + 400, + 400, + 61, + 61, + 73, + 198, + 198, + 198, + 111, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 155, + 325, + 325, + 89, + 87, + 87, + 87, + 87, + 120, + 106, + 222, + 222, + 152, + 152, + 152, + 152, + 152, + 196, + 196, + 196, + 231, + 231, + 231, + 322, + 297, + 297, + 297, + 297, + 297, + 297, + 382, + 106, + 106, + 106, + 106, + 367, + 117, + 18, + 28, + 36, + 36, + 106, + 137, + 137, + 137, + 137, + 290, + 290, + 290, + 290, + 290, + 290, + 235, + 308, + 119, + 350, + 350, + 197, + 80, + 80, + 80, + 31, + 31, + 31, + 31, + 31, + 117, + 389, + 389, + 117, + 117, + 394, + 394, + 263, + 263, + 155, + 155, + 252, + 149, + 149, + 260, + 376, + 376, + 376, + 302, + 302, + 302, + 309, + 186, + 186, + 384, + 384, + 124, + 124, + 108, + 381, + 182, + 182, + 202, + 202, + 236, + 381, + 290, + 276, + 358, + 358, + 358, + 358, + 358, + 387, + 388, + 207, + 388, + 108, + 41, + 177, + 41, + 118, + 118, + 246, + 246, + 231, + 296, + 296, + 296, + 386, + 226, + 226, + 226, + 343, + 397, + 187, + 187, + 218, + 218, + 218, + 218, + 123, + 336, + 336, + 355, + 26, + 12, + 12, + 125, + 125, + 125, + 125, + 93, + 360, + 360, + 360, + 360, + 69, + 69, + 69, + 69, + 69, + 119, + 119, + 76, + 101, + 299, + 299, + 299, + 80, + 211, + 211, + 366, + 366, + 80, + 80, + 23, + 23, + 23, + 23, + 17, + 105, + 105, + 379, + 105, + 92, + 92, + 96, + 148, + 148, + 148, + 138, + 138, + 138, + 138, + 138, + 138, + 210, + 167, + 167, + 146, + 146, + 146, + 342, + 271, + 271, + 271, + 394, + 96, + 96, + 96, + 10, + 10, + 10, + 118, + 230, + 230, + 230, + 353, + 10, + 10, + 125, + 222, + 222, + 222, + 319, + 331, + 331, + 331, + 365, + 365, + 159, + 61, + 61, + 61, + 335, + 335, + 335, + 130, + 115, + 115, + 115, + 115, + 53, + 112, + 25, + 41, + 68, + 57, + 104, + 379, + 379, + 379, + 208, + 208, + 208, + 208, + 379, + 220, + 379, + 272, + 372, + 372, + 158, + 372, + 355, + 391, + 104, + 86, + 86, + 382, + 382, + 382, + 382, + 123, + 123, + 29, + 105, + 105, + 97, + 97, + 262, + 218, + 218, + 366, + 159, + 159, + 159, + 383, + 16, + 295, + 246, + 246, + 260, + 260, + 260, + 193, + 250, + 152, + 152, + 152, + 152, + 340, + 253, + 253, + 253, + 253, + 189, + 340, + 198, + 373, + 67, + 113, + 113, + 113, + 81, + 16, + 124, + 88, + 88, + 51, + 51, + 51, + 131, + 198, + 198, + 198, + 187, + 187, + 250, + 186, + 186, + 186, + 25, + 386, + 25, + 117, + 249, + 187, + 233, + 233, + 270, + 270, + 270, + 270, + 344, + 300, + 253, + 253, + 300, + 300, + 219, + 219, + 219, + 300, + 332, + 332, + 332, + 332, + 280, + 386, + 214, + 214, + 214, + 214, + 278, + 32, + 73, + 73, + 69, + 190, + 38, + 38, + 64, + 103, + 66, + 106, + 150, + 150, + 172, + 296, + 398, + 398, + 205, + 398, + 398, + 398, + 398, + 398, + 71, + 125, + 125, + 389, + 389, + 218, + 23, + 23, + 23, + 23, + 23, + 139, + 139, + 139, + 139, + 139, + 139, + 241, + 241, + 225, + 225, + 160, + 160, + 166, + 166, + 166, + 166, + 166, + 166, + 166, + 166, + 166, + 166, + 166, + 168, + 168, + 168, + 168, + 135, + 374, + 381, + 381, + 381, + 381, + 391, + 391, + 295, + 298, + 354, + 325, + 325, + 23, + 23, + 243, + 23, + 23, + 23, + 304, + 27, + 250, + 383, + 266, + 266, + 266, + 266, + 261, + 261, + 147, + 377, + 377, + 234, + 234, + 234, + 353, + 341, + 341, + 338, + 330, + 330, + 380, + 380, + 27, + 27, + 68, + 11, + 38, + 96, + 16, + 16, + 72, + 72, + 72, + 55, + 313, + 55, + 23, + 23, + 59, + 28, + 53, + 386, + 386, + 53, + 53, + 194, + 139, + 172, + 172, + 179, + 179, + 179, + 342, + 53, + 274, + 274, + 274, + 274, + 274, + 161, + 161, + 274, + 372, + 165, + 165, + 207, + 367, + 242, + 304, + 358, + 358, + 344, + 344, + 53, + 264, + 264, + 53, + 53, + 344, + 344, + 344, + 344, + 53, + 10, + 10, + 339, + 339, + 339, + 10, + 359, + 359, + 26, + 26, + 251, + 251, + 251, + 251, + 251, + 239, + 239, + 308, + 308, + 33, + 340, + 365, + 33, + 33, + 33, + 82, + 82, + 82, + 246, + 259, + 81, + 81, + 81, + 263, + 263, + 251, + 81, + 24, + 24, + 24, + 91, + 204, + 204, + 258, + 76, + 76, + 76, + 26, + 51, + 51, + 23, + 62, + 32, + 32, + 114, + 124, + 91, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 138, + 85, + 62, + 62, + 324, + 62, + 392, + 62, + 316, + 205, + 205, + 205, + 153, + 145, + 195, + 316, + 181, + 181, + 288, + 315, + 315, + 212, + 254, + 118, + 118, + 22, + 22, + 37, + 394, + 39, + 219, + 377, + 39, + 217, + 265, + 265, + 223, + 321, + 319, + 319, + 286, + 229, + 229, + 229, + 229, + 229, + 176, + 176, + 286, + 286, + 287, + 343, + 343, + 335, + 204, + 204, + 368, + 400, + 400, + 400, + 400, + 39, + 39, + 207, + 207, + 207, + 348, + 100, + 100, + 67, + 67, + 5, + 52, + 52, + 52, + 52, + 52, + 52, + 0, + 0, + 73, + 28, + 78, + 16, + 9, + 9, + 9, + 67, + 67, + 38, + 249, + 38, + 231, + 34, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 241, + 81, + 81, + 81, + 218, + 218, + 129, + 350, + 200, + 338, + 338, + 338, + 189, + 189, + 189, + 189, + 189, + 338, + 338, + 290, + 391, + 391, + 397, + 397, + 397, + 302, + 365, + 25, + 185, + 261, + 261, + 316, + 316, + 316, + 377, + 393, + 25, + 25, + 225, + 225, + 25, + 84, + 343, + 84, + 308, + 84, + 3, + 231, + 186, + 186, + 186, + 186, + 189, + 283, + 249, + 249, + 234, + 145, + 145, + 234, + 234, + 234, + 234, + 234, + 234, + 234, + 188, + 188, + 188, + 234, + 234, + 218, + 283, + 283, + 400, + 400, + 394, + 336, + 90, + 90, + 90, + 54, + 54, + 211, + 118, + 73, + 73, + 85, + 306, + 229, + 229, + 306, + 306, + 301, + 327, + 327, + 385, + 385, + 296, + 85, + 85, + 102, + 102, + 102, + 260, + 121, + 11, + 209, + 209, + 241, + 115, + 103, + 115, + 115, + 129, + 129, + 94, + 228, + 140, + 112, + 56, + 179, + 179, + 56, + 119, + 183, + 183, + 183, + 212, + 212, + 212, + 212, + 393, + 274, + 274, + 314, + 380, + 380, + 386, + 386, + 340, + 216, + 216, + 145, + 167, + 167, + 167, + 185, + 185, + 388, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 137, + 259, + 259, + 353, + 248, + 248, + 353, + 353, + 146, + 353, + 226, + 226, + 226, + 353, + 353, + 277, + 367, + 367, + 367, + 367, + 367, + 367, + 330, + 153, + 153, + 153, + 153, + 309, + 64, + 27, + 141, + 141, + 166, + 193, + 193, + 193, + 27, + 27, + 114, + 231, + 114, + 196, + 324, + 324, + 114, + 114, + 90, + 12, + 18, + 18, + 12, + 288, + 288, + 58, + 203, + 203, + 203, + 207, + 143, + 180, + 299, + 325, + 325, + 324, + 324, + 324, + 58, + 58, + 244, + 203, + 203, + 176, + 137, + 137, + 119, + 119, + 9, + 124, + 6, + 6, + 133, + 133, + 245, + 245, + 245, + 375, + 375, + 333, + 333, + 162, + 141, + 333, + 333, + 273, + 104, + 104, + 104, + 241, + 241, + 150, + 195, + 333, + 146, + 146, + 146, + 240, + 240, + 149, + 149, + 333, + 162, + 198, + 348, + 215, + 348, + 348, + 348, + 267, + 267, + 349, + 147, + 347, + 347, + 20, + 20, + 115, + 12, + 77, + 100, + 100, + 279, + 279, + 279, + 216, + 16, + 16, + 16, + 31, + 31, + 31, + 31, + 31, + 165, + 165, + 151, + 151, + 223, + 223, + 214, + 333, + 349, + 349, + 349, + 203, + 203, + 203, + 224, + 224, + 224, + 224, + 224, + 391, + 17, + 17, + 124, + 67, + 349, + 67, + 92, + 92, + 92, + 92, + 112, + 112, + 94, + 30, + 135, + 135, + 135, + 30, + 216, + 216, + 257, + 257, + 258, + 258, + 258, + 258, + 154, + 262, + 262, + 153, + 332, + 299, + 299, + 268, + 268, + 268, + 332, + 332, + 332, + 297, + 297, + 297, + 361, + 361, + 30, + 271, + 271, + 271, + 179, + 357, + 19, + 19, + 38, + 127, + 134, + 134, + 134, + 134, + 244, + 244, + 399, + 189, + 268, + 268, + 268, + 270, + 321, + 321, + 269, + 99, + 99, + 80, + 27, + 324, + 192, + 286, + 288, + 288, + 249, + 288, + 233, + 233, + 288, + 288, + 288, + 286, + 192, + 123, + 123, + 123, + 52, + 52, + 374, + 374, + 374, + 374, + 374, + 247, + 388, + 388, + 161, + 231, + 388, + 97, + 97, + 313, + 65, + 61, + 89, + 44, + 27, + 24, + 24, + 385, + 110, + 110, + 70, + 224, + 224, + 224, + 113, + 107, + 70, + 126, + 396, + 396, + 122, + 122, + 122, + 206, + 206, + 206, + 206, + 206, + 171, + 231, + 352, + 355, + 97, + 0, + 83, + 266, + 266, + 267, + 340, + 340, + 54, + 54, + 54, + 54, + 183, + 183, + 370, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 273, + 273, + 273, + 395, + 198, + 192, + 192, + 192, + 192, + 164, + 247, + 169, + 253, + 253, + 144, + 264, + 252, + 361, + 378, + 219, + 378, + 369, + 175, + 361, + 400, + 302, + 326, + 278, + 278, + 278, + 238, + 278, + 136, + 136, + 338, + 342, + 342, + 128, + 49, + 49, + 183, + 49, + 325, + 145, + 230, + 13, + 307, + 307, + 307, + 307, + 307, + 307, + 38, + 38, + 121, + 121, + 121, + 298, + 129, + 129, + 93, + 93, + 28, + 247, + 247, + 193, + 193, + 193, + 245, + 394, + 331, + 170, + 170, + 75, + 75, + 386, + 185, + 75, + 29, + 133, + 78, + 37, + 272, + 130, + 130, + 130, + 130, + 100, + 388, + 100, + 247, + 247, + 269, + 269, + 305, + 305, + 156, + 85, + 39, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 217, + 217, + 217, + 289, + 110, + 110, + 182, + 134, + 224, + 143, + 379, + 164, + 164, + 202, + 355, + 355, + 338, + 69, + 299, + 299, + 299, + 377, + 377, + 236, + 236, + 316, + 236, + 143, + 143, + 143, + 185, + 316, + 316, + 316, + 304, + 304, + 304, + 304, + 304, + 274, + 392, + 149, + 149, + 161, + 392, + 384, + 384, + 225, + 225, + 384, + 384, + 384, + 384, + 384, + 384, + 4, + 4, + 159, + 159, + 397, + 155, + 397, + 397, + 4, + 260, + 260, + 91, + 91, + 252, + 91, + 17, + 197, + 17, + 83, + 76, + 238, + 238, + 238, + 255, + 255, + 116, + 8, + 125, + 80, + 45, + 180, + 180, + 180, + 180, + 180, + 180, + 245, + 175, + 249, + 388, + 45, + 5, + 100, + 100, + 88, + 112, + 112, + 26, + 26, + 115, + 62, + 62, + 344, + 77, + 77, + 355, + 355, + 355, + 355, + 355, + 184, + 184, + 297, + 395, + 279, + 358, + 180, + 180, + 180, + 358, + 274, + 274, + 274, + 398, + 160, + 398, + 287, + 205, + 394, + 394, + 78, + 49, + 188, + 89, + 89, + 89, + 53, + 217, + 121, + 123, + 177, + 177, + 177, + 342, + 93, + 43, + 43, + 224, + 224, + 224, + 166, + 378, + 378, + 378, + 378, + 378, + 136, + 136, + 136, + 378, + 378, + 378, + 387, + 200, + 387, + 173, + 173, + 387, + 279, + 258, + 279, + 153, + 153, + 153, + 207, + 279, + 201, + 165, + 165, + 165, + 165, + 279, + 334, + 334, + 320, + 320, + 214, + 214, + 214, + 320, + 267, + 267, + 300, + 369, + 369, + 296, + 43, + 302, + 115, + 115, + 115, + 92, + 92, + 4, + 57, + 341, + 57, + 57, + 135, + 285, + 218, + 285, + 285, + 285, + 285, + 57, + 334, + 334, + 334, + 334, + 334, + 59, + 93, + 93, + 93, + 232, + 232, + 232, + 150, + 179, + 179, + 179, + 179, + 146, + 146, + 146, + 146, + 193, + 334, + 334, + 334, + 342, + 295, + 297, + 93, + 93, + 93, + 93, + 93, + 93, + 93, + 128, + 128, + 128, + 128, + 36, + 195, + 15, + 73, + 73, + 131, + 131, + 296, + 131, + 23, + 23, + 339, + 321, + 335, + 23, + 23, + 303, + 303, + 303, + 286, + 182, + 182, + 182, + 286, + 345, + 345, + 270, + 23, + 23, + 58, + 58, + 53, + 67, + 130, + 103, + 103, + 103, + 124, + 236, + 236, + 124, + 124, + 124, + 316, + 204, + 377, + 377, + 267, + 209, + 209, + 186, + 186, + 204, + 204, + 259, + 221, + 159, + 159, + 159, + 348, + 348, + 348, + 348, + 397, + 397, + 397, + 397, + 31, + 250, + 250, + 250, + 349, + 349, + 219, + 83, + 83, + 74, + 10, + 10, + 120, + 128, + 344, + 168, + 168, + 168, + 168, + 344, + 246, + 352, + 257, + 257, + 257, + 379, + 379, + 379, + 240, + 319, + 319, + 319, + 368, + 128, + 128, + 322, + 390, + 390, + 390, + 390, + 178, + 329, + 385, + 29, + 211, + 211, + 211, + 50, + 161, + 50, + 99, + 270, + 270, + 194, + 194, + 194, + 194, + 194, + 347, + 279, + 99, + 99, + 99, + 16, + 16, + 23, + 100, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 266, + 366, + 345, + 345, + 345, + 130, + 58, + 364, + 58, + 382, + 217, + 175, + 380, + 219, + 380, + 380, + 144, + 153, + 248, + 180, + 180, + 180, + 180, + 165, + 165, + 380, + 245, + 245, + 245, + 245, + 357, + 357, + 357, + 357, + 357, + 357, + 357, + 357, + 390, + 390, + 390, + 137, + 377, + 377, + 295, + 63, + 97, + 376, + 376, + 318, + 318, + 258, + 144, + 318, + 318, + 48, + 226, + 226, + 265, + 170, + 399, + 319, + 319, + 319, + 282, + 282, + 282, + 383, + 383, + 233, + 233, + 383, + 383, + 383, + 345, + 185, + 345, + 345, + 345, + 350, + 350, + 74, + 200, + 200, + 200, + 200, + 251, + 251, + 251, + 251, + 382, + 276, + 112, + 112, + 104, + 387, + 387, + 387, + 387, + 129, + 130, + 275, + 130, + 35, + 35, + 217, + 35, + 112, + 112, + 112, + 55, + 349, + 349, + 349, + 349, + 349, + 188, + 188, + 188, + 241, + 321, + 340, + 156, + 55, + 55, + 76, + 76, + 66, + 42, + 248, + 248, + 248, + 248, + 248, + 217, + 217, + 212, + 376, + 289, + 289, + 289, + 289, + 42, + 42, + 42, + 105, + 355, + 355, + 161, + 161, + 161, + 355, + 340, + 340, + 340, + 318, + 325, + 5, + 55, + 326, + 77, + 157, + 354, + 263, + 42, + 150, + 55, + 55, + 127, + 127, + 127, + 345, + 127, + 127, + 26, + 127, + 127, + 88, + 10, + 60, + 231, + 354, + 354, + 190, + 179, + 354, + 354, + 340, + 340, + 329, + 329, + 208, + 208, + 208, + 208, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 175, + 329, + 329, + 309, + 296, + 334, + 334, + 60, + 299, + 185, + 185, + 185, + 41, + 204, + 76, + 313, + 30, + 30, + 59, + 85, + 183, + 219, + 282, + 282, + 370, + 127, + 163, + 163, + 138, + 85, + 70, + 70, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 174, + 183, + 18, + 18, + 368, + 133, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 211, + 211, + 211, + 157, + 318, + 259, + 259, + 156, + 156, + 218, + 218, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 57, + 86, + 86, + 86, + 86, + 86, + 86, + 86, + 9, + 9, + 9, + 102, + 102, + 364, + 169, + 169, + 251, + 251, + 169, + 339, + 396, + 181, + 349, + 349, + 34, + 34, + 224, + 224, + 34, + 34, + 176, + 73, + 6, + 4, + 4, + 154, + 154, + 154, + 213, + 163, + 260, + 260, + 260, + 260, + 269, + 269, + 393, + 343, + 215, + 343, + 213, + 213, + 213, + 258, + 343, + 343, + 343, + 393, + 393, + 334, + 375, + 375, + 387, + 387, + 302, + 317, + 317, + 252, + 252, + 252, + 252, + 252, + 245, + 245, + 229, + 153, + 233, + 159, + 173, + 173, + 173, + 173, + 173, + 173, + 173, + 173, + 259, + 259, + 149, + 149, + 149, + 149, + 169, + 179, + 179, + 317, + 317, + 391, + 272, + 272, + 272, + 272, + 272, + 288, + 333, + 333, + 333, + 158, + 333, + 323, + 285, + 285, + 285, + 285, + 365, + 343, + 343, + 343, + 343, + 205, + 343, + 343, + 344, + 356, + 32, + 15, + 15, + 15, + 40, + 40, + 40, + 182, + 40, + 325, + 154, + 247, + 247, + 256, + 256, + 256, + 228, + 228, + 228, + 144, + 144, + 213, + 213, + 213, + 268, + 383, + 383, + 383, + 383, + 383, + 187, + 269, + 269, + 269, + 368, + 368, + 368, + 368, + 335, + 335, + 144, + 144, + 144, + 326, + 398, + 398, + 398, + 295, + 297, + 385, + 280, + 120, + 55, + 191, + 35, + 294, + 340, + 35, + 125, + 125, + 54, + 181, + 181, + 54, + 334, + 130, + 352, + 130, + 130, + 130, + 264, + 264, + 264, + 130, + 130, + 90, + 339, + 327, + 327, + 336, + 336, + 90, + 90, + 46, + 46, + 46, + 46, + 250, + 250, + 46, + 84, + 84, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 266, + 266, + 266, + 266, + 266, + 345, + 52, + 111, + 274, + 274, + 351, + 351, + 351, + 17, + 72, + 350, + 72, + 230, + 230, + 230, + 230, + 72, + 72, + 72, + 75, + 213, + 241, + 155, + 279, + 15, + 15, + 53, + 289, + 193, + 193, + 91, + 91, + 91, + 91, + 310, + 232, + 232, + 232, + 169, + 169, + 310, + 363, + 119, + 62, + 62, + 62, + 126, + 126, + 164, + 164, + 103, + 3, + 147, + 3, + 66, + 244, + 262, + 262, + 262, + 66, + 66, + 140, + 140, + 140, + 66, + 61, + 22, + 22, + 22, + 200, + 200, + 69, + 69, + 69, + 104, + 54, + 327, + 327, + 327, + 327, + 327, + 54, + 267, + 54, + 377, + 64, + 51, + 51, + 146, + 51, + 51, + 51, + 51, + 26, + 67, + 164, + 164, + 378, + 246, + 246, + 246, + 378, + 339, + 197, + 161, + 161, + 211, + 211, + 211, + 386, + 386, + 355, + 355, + 395, + 68, + 63, + 142, + 45, + 70, + 70, + 5, + 5, + 183, + 183, + 231, + 175, + 175, + 175, + 175, + 175, + 175, + 179, + 179, + 179, + 146, + 146, + 146, + 199, + 199, + 156, + 156, + 156, + 209, + 209, + 154, + 131, + 131, + 131, + 7, + 235, + 7, + 7, + 7, + 110, + 110, + 92, + 224, + 224, + 109, + 109, + 109, + 109, + 109, + 19, + 126, + 156, + 156, + 156, + 34, + 95, + 95, + 47, + 270, + 179, + 179, + 179, + 47, + 47, + 229, + 229, + 47, + 101, + 281, + 281, + 281, + 281, + 273, + 119, + 26, + 26, + 63, + 207, + 63, + 94, + 94, + 94, + 94, + 25, + 87, + 33, + 22, + 100, + 393, + 393, + 203, + 203, + 203, + 393, + 393, + 393, + 226, + 226, + 393, + 108, + 99, + 23, + 37, + 115, + 281, + 281, + 281, + 346, + 346, + 346, + 346, + 346, + 346, + 346, + 383, + 240, + 240, + 240, + 316, + 115, + 25, + 82, + 82, + 82, + 82, + 113, + 113, + 340, + 135, + 135, + 375, + 375, + 375, + 375, + 15, + 86, + 115, + 121, + 121, + 121, + 376, + 121, + 230, + 121, + 61, + 61, + 294, + 294, + 85, + 83, + 10, + 151, + 151, + 151, + 151, + 354, + 354, + 83, + 97, + 317, + 97, + 97, + 97, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 206, + 318, + 318, + 364, + 240, + 364, + 364, + 47, + 160, + 155, + 155, + 364, + 364, + 341, + 47, + 47, + 47, + 47, + 96, + 14, + 190, + 190, + 190, + 190, + 329, + 164, + 164, + 283, + 69, + 69, + 172, + 164, + 164, + 186, + 216, + 216, + 216, + 390, + 390, + 180, + 180, + 180, + 180, + 326, + 326, + 326, + 326, + 326, + 230, + 306, + 275, + 275, + 275, + 312, + 288, + 331, + 331, + 197, + 197, + 197, + 197, + 331, + 352, + 343, + 59, + 59, + 224, + 224, + 239, + 59, + 41, + 218, + 41, + 41, + 93, + 93, + 93, + 336, + 93, + 177, + 93, + 93, + 93, + 37, + 137, + 137, + 179, + 152, + 8, + 212, + 182, + 376, + 385, + 224, + 224, + 94, + 137, + 137, + 181, + 181, + 184, + 309, + 187, + 187, + 187, + 208, + 309, + 141, + 309, + 322, + 351, + 191, + 351, + 351, + 325, + 275, + 335, + 54, + 54, + 388, + 388, + 389, + 389, + 389, + 322, + 322, + 322, + 322, + 247, + 322, + 238, + 238, + 238, + 238, + 322, + 322, + 322, + 206, + 206, + 204, + 204, + 204, + 345, + 345, + 345, + 345, + 345, + 345, + 242, + 374, + 372, + 1, + 345, + 345, + 39, + 39, + 185, + 55, + 4, + 39, + 164, + 336, + 336, + 101, + 5, + 63, + 63, + 63, + 142, + 142, + 142, + 228, + 228, + 254, + 282, + 307, + 63, + 114, + 228, + 292, + 292, + 241, + 205, + 150, + 150, + 310, + 297, + 297, + 283, + 283, + 277, + 42, + 42, + 261, + 220, + 273, + 42, + 32, + 0, + 28, + 28, + 343, + 255, + 255, + 343, + 343, + 28, + 164, + 198, + 198, + 56, + 109, + 109, + 109, + 109, + 352, + 270, + 94, + 94, + 94, + 94, + 94, + 94, + 94, + 244, + 180, + 180, + 361, + 123, + 89, + 182, + 182, + 182, + 182, + 182, + 81, + 238, + 238, + 238, + 238, + 357, + 357, + 357, + 352, + 352, + 352, + 389, + 339, + 383, + 342, + 298, + 282, + 282, + 21, + 79, + 33, + 33, + 95, + 297, + 297, + 297, + 349, + 154, + 349, + 349, + 349, + 349, + 196, + 349, + 349, + 341, + 341, + 341, + 238, + 238, + 222, + 319, + 339, + 241, + 241, + 241, + 241, + 241, + 241, + 339, + 95, + 310, + 310, + 136, + 197, + 360, + 360, + 360, + 360, + 360, + 360, + 95, + 298, + 56, + 75, + 7, + 77, + 55, + 89, + 89, + 89, + 89, + 340, + 340, + 234, + 89, + 255, + 255, + 255, + 261, + 261, + 231, + 231, + 231, + 231, + 231, + 231, + 217, + 217, + 217, + 223, + 223, + 221, + 221, + 361, + 361, + 220, + 220, + 267, + 267, + 267, + 334, + 334, + 307, + 342, + 342, + 212, + 212, + 269, + 262, + 262, + 262, + 202, + 313, + 313, + 298, + 298, + 298, + 298, + 298, + 207, + 186, + 376, + 376, + 376, + 288, + 10, + 54, + 54, + 54, + 360, + 399, + 399, + 399, + 5, + 2, + 43, + 43, + 43, + 111, + 164, + 299, + 299, + 307, + 210, + 210, + 266, + 266, + 266, + 252, + 148, + 148, + 256, + 256, + 327, + 342, + 380, + 120, + 328, + 120, + 74, + 24, + 24, + 24, + 24, + 107, + 96, + 24, + 7, + 90, + 32, + 230, + 194, + 194, + 32, + 65, + 65, + 6, + 6, + 82, + 24, + 104, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 158, + 158, + 158, + 176, + 390, + 91, + 308, + 203, + 203, + 203, + 229, + 229, + 229, + 229, + 165, + 189, + 189, + 135, + 297, + 54, + 133, + 170, + 170, + 170, + 142, + 198, + 198, + 271, + 271, + 271, + 271, + 85, + 215, + 85, + 40, + 40, + 40, + 288, + 288, + 288, + 40, + 122, + 106, + 122, + 363, + 363, + 122, + 105, + 188, + 188, + 188, + 242, + 242, + 242, + 189, + 189, + 189, + 281, + 272, + 272, + 372, + 372, + 195, + 372, + 372, + 372, + 372, + 386, + 284, + 194, + 214, + 187, + 235, + 235, + 258, + 258, + 147, + 147, + 213, + 213, + 185, + 185, + 185, + 185, + 189, + 389, + 277, + 277, + 293, + 293, + 293, + 315, + 373, + 343, + 343, + 105, + 245, + 229, + 301, + 347, + 173, + 105, + 86, + 86, + 16, + 16, + 162, + 162, + 162, + 162, + 162, + 161, + 161, + 209, + 209, + 209, + 209, + 209, + 209, + 194, + 148, + 148, + 200, + 256, + 236, + 310, + 310, + 310, + 376, + 328, + 328, + 396, + 396, + 379, + 345, + 390, + 390, + 390, + 286, + 103, + 204, + 204, + 204, + 204, + 204, + 217, + 286, + 194, + 189, + 189, + 286, + 352, + 352, + 352, + 359, + 103, + 103, + 320, + 320, + 320, + 320, + 320, + 330, + 330, + 330, + 222, + 330, + 346, + 120, + 120, + 43, + 109, + 109, + 109, + 109, + 119, + 296, + 330, + 78, + 78, + 188, + 78, + 254, + 254, + 254, + 339, + 339, + 78, + 73, + 73, + 18, + 83, + 14, + 14, + 157, + 157, + 14, + 245, + 245, + 245, + 245, + 245, + 149, + 253, + 253, + 253, + 253, + 319, + 123, + 123, + 32, + 49, + 31, + 167, + 167, + 167, + 167, + 167, + 258, + 146, + 146, + 368, + 368, + 348, + 348, + 96, + 129, + 129, + 129, + 201, + 201, + 201, + 201, + 201, + 142, + 359, + 81, + 10, + 287, + 287, + 338, + 363, + 340, + 340, + 10, + 369, + 243, + 381, + 315, + 315, + 315, + 10, + 182, + 182, + 182, + 182, + 182, + 182, + 351, + 351, + 351, + 351, + 351, + 351, + 10, + 37, + 122, + 153, + 57, + 81, + 81, + 81, + 18, + 18, + 18, + 18, + 18, + 173, + 300, + 372, + 372, + 372, + 372, + 303, + 303, + 303, + 332, + 309, + 309, + 167, + 167, + 167, + 167, + 309, + 309, + 363, + 259, + 259, + 18, + 19, + 19, + 19, + 131, + 229, + 229, + 229, + 229, + 229, + 307, + 131, + 256, + 256, + 234, + 234, + 195, + 334, + 385, + 296, + 296, + 173, + 173, + 296, + 195, + 131, + 54, + 128, + 17, + 17, + 17, + 130, + 362, + 47, + 47, + 47, + 76, + 85, + 115, + 16, + 352, + 352, + 110, + 156, + 129, + 129, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 171, + 171, + 171, + 171, + 171, + 185, + 177, + 371, + 371, + 372, + 372, + 372, + 346, + 129, + 169, + 49, + 126, + 126, + 126, + 46, + 161, + 219, + 219, + 219, + 219, + 219, + 219, + 399, + 256, + 256, + 256, + 256, + 182, + 182, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 242, + 265, + 238, + 238, + 238, + 162, + 162, + 162, + 199, + 199, + 286, + 270, + 366, + 355, + 355, + 213, + 213, + 213, + 213, + 213, + 161, + 174, + 355, + 355, + 182, + 182, + 355, + 189, + 355, + 355, + 258, + 258, + 258, + 203, + 329, + 329, + 329, + 329, + 303, + 303, + 396, + 382, + 104, + 12, + 246, + 246, + 246, + 246, + 246, + 175, + 342, + 370, + 389, + 169, + 133, + 133, + 304, + 304, + 133, + 243, + 243, + 275, + 275, + 296, + 133, + 351, + 351, + 170, + 397, + 9, + 48, + 283, + 283, + 283, + 48, + 48, + 91, + 91, + 91, + 91, + 91, + 36, + 106, + 12, + 12, + 54, + 68, + 209, + 301, + 0, + 374, + 374, + 252, + 252, + 374, + 101, + 101, + 171, + 165, + 165, + 57, + 57, + 122, + 79, + 79, + 79, + 28, + 28, + 219, + 28, + 28, + 194, + 286, + 330, + 330, + 260, + 395, + 395, + 253, + 115, + 115, + 115, + 115, + 115, + 377, + 334, + 11, + 11, + 11, + 68, + 19, + 134, + 187, + 19, + 130, + 363, + 347, + 354, + 354, + 180, + 180, + 180, + 180, + 266, + 220, + 220, + 220, + 193, + 191, + 354, + 130, + 130, + 136, + 136, + 55, + 131, + 81, + 81, + 54, + 54, + 54, + 65, + 34, + 326, + 85, + 85, + 13, + 380, + 165, + 380, + 380, + 380, + 380, + 0, + 98, + 47, + 190, + 260, + 260, + 201, + 397, + 142, + 158, + 379, + 269, + 209, + 353, + 353, + 142, + 336, + 336, + 336, + 328, + 386, + 251, + 251, + 251, + 243, + 243, + 243, + 386, + 171, + 160, + 160, + 389, + 389, + 264, + 264, + 264, + 264, + 170, + 170, + 389, + 389, + 352, + 352, + 331, + 397, + 397, + 273, + 47, + 75, + 75, + 84, + 84, + 123, + 123, + 123, + 123, + 123, + 123, + 150, + 67, + 67, + 53, + 53, + 76, + 76, + 21, + 59, + 389, + 42, + 42, + 42, + 108, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 262, + 283, + 284, + 246, + 284, + 284, + 284, + 150, + 150, + 365, + 152, + 152, + 152, + 152, + 152, + 265, + 153, + 153, + 153, + 146, + 264, + 264, + 264, + 365, + 365, + 324, + 324, + 161, + 324, + 338, + 293, + 108, + 108, + 75, + 75, + 397, + 397, + 397, + 130, + 130, + 356, + 102, + 229, + 102, + 19, + 247, + 36, + 234, + 234, + 322, + 322, + 322, + 322, + 36, + 109, + 116, + 116, + 116, + 9, + 29, + 29, + 83, + 366, + 98, + 98, + 90, + 90, + 90, + 102, + 102, + 26, + 212, + 212, + 322, + 322, + 3, + 80, + 7, + 7, + 7, + 321, + 7, + 320, + 65, + 65, + 92, + 263, + 74, + 91, + 91, + 150, + 131, + 131, + 365, + 365, + 36, + 4, + 224, + 224, + 224, + 310, + 350, + 105, + 105, + 105, + 23, + 23, + 159, + 159, + 138, + 138, + 138, + 138, + 138, + 178, + 295, + 397, + 317, + 356, + 356, + 356, + 324, + 324, + 324, + 324, + 295, + 23, + 151, + 151, + 151, + 92, + 108, + 344, + 236, + 236, + 344, + 363, + 211, + 211, + 211, + 211, + 266, + 266, + 266, + 151, + 151, + 385, + 108, + 108, + 118, + 35, + 3, + 318, + 123, + 123, + 123, + 40, + 113, + 349, + 349, + 221, + 355, + 355, + 208, + 208, + 149, + 138, + 138, + 138, + 138, + 239, + 225, + 225, + 225, + 152, + 152, + 152, + 152, + 292, + 253, + 253, + 292, + 235, + 142, + 142, + 292, + 292, + 347, + 347, + 303, + 171, + 171, + 171, + 321, + 321, + 353, + 16, + 294, + 16, + 92, + 111, + 129, + 129, + 129, + 129, + 38, + 104, + 226, + 226, + 176, + 387, + 72, + 130, + 130, + 130, + 130, + 237, + 102, + 102, + 155, + 155, + 155, + 176, + 176, + 176, + 176, + 350, + 320, + 320, + 320, + 385, + 385, + 385, + 102, + 102, + 95, + 95, + 11, + 11, + 29, + 126, + 126, + 152, + 126, + 126, + 2, + 2, + 2, + 2, + 170, + 387, + 4, + 4, + 203, + 22, + 230, + 230, + 230, + 31, + 31, + 31, + 80, + 80, + 11, + 86, + 86, + 92, + 92, + 92, + 327, + 92, + 92, + 90, + 90, + 90, + 122, + 122, + 122, + 122, + 182, + 122, + 87, + 0, + 353, + 298, + 0, + 0, + 72, + 335, + 335, + 335, + 335, + 335, + 335, + 382, + 382, + 382, + 382, + 382, + 72, + 236, + 236, + 236, + 236, + 278, + 297, + 297, + 101, + 235, + 235, + 337, + 337, + 337, + 267, + 93, + 210, + 210, + 210, + 223, + 243, + 377, + 176, + 176, + 377, + 377, + 377, + 377, + 321, + 321, + 321, + 321, + 152, + 135, + 239, + 337, + 337, + 327, + 327, + 327, + 340, + 340, + 284, + 284, + 284, + 279, + 265, + 283, + 283, + 283, + 192, + 192, + 192, + 192, + 216, + 99, + 128, + 128, + 128, + 128, + 254, + 254, + 373, + 128, + 128, + 128, + 128, + 77, + 40, + 40, + 41, + 322, + 185, + 126, + 196, + 353, + 244, + 353, + 353, + 126, + 126, + 126, + 375, + 177, + 336, + 1, + 1, + 207, + 207, + 241, + 241, + 1, + 194, + 166, + 273, + 273, + 273, + 273, + 273, + 348, + 216, + 237, + 163, + 163, + 66, + 66, + 21, + 21, + 50, + 50, + 285, + 208, + 208, + 208, + 285, + 342, + 188, + 28, + 219, + 219, + 219, + 219, + 219, + 213, + 213, + 334, + 334, + 138, + 138, + 138, + 138, + 28, + 28, + 48, + 48, + 99, + 99, + 161, + 99, + 99, + 77, + 77, + 77, + 392, + 349, + 349, + 171, + 171, + 171, + 171, + 171, + 349, + 247, + 349, + 137, + 349, + 349, + 258, + 258, + 258, + 378, + 25, + 25, + 37, + 37, + 69, + 226, + 197, + 86, + 64, + 55, + 74, + 79, + 79, + 79, + 161, + 161, + 161, + 197, + 79, + 79, + 292, + 292, + 292, + 79, + 79, + 79, + 2, + 259, + 348, + 2, + 2, + 2, + 71, + 71, + 71, + 61, + 61, + 15, + 121, + 36, + 5, + 100, + 100, + 29, + 118, + 118, + 146, + 146, + 146, + 118, + 118, + 25, + 16, + 16, + 22, + 22, + 4, + 123, + 117, + 117, + 117, + 84, + 84, + 88, + 88, + 393, + 363, + 363, + 63, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 206, + 206, + 355, + 355, + 214, + 214, + 169, + 355, + 355, + 371, + 371, + 258, + 258, + 371, + 56, + 254, + 196, + 196, + 196, + 224, + 224, + 224, + 224, + 224, + 216, + 216, + 378, + 378, + 146, + 378, + 378, + 292, + 292, + 298, + 298, + 298, + 298, + 298, + 97, + 136, + 136, + 223, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 194, + 194, + 194, + 194, + 139, + 139, + 139, + 384, + 384, + 384, + 168, + 168, + 211, + 184, + 184, + 184, + 384, + 384, + 298, + 193, + 193, + 193, + 193, + 147, + 237, + 298, + 298, + 397, + 397, + 207, + 397, + 397, + 317, + 333, + 329, + 140, + 140, + 140, + 360, + 313, + 184, + 313, + 313, + 387, + 387, + 387, + 279, + 279, + 279, + 279, + 279, + 279, + 227, + 340, + 297, + 334, + 334, + 331, + 190, + 190, + 190, + 190, + 190, + 190, + 331, + 331, + 291, + 291, + 291, + 119, + 5, + 36, + 91, + 91, + 104, + 104, + 205, + 225, + 333, + 333, + 375, + 375, + 375, + 375, + 106, + 101, + 283, + 88, + 88, + 115, + 281, + 36, + 36, + 36, + 72, + 72, + 38, + 38, + 38, + 61, + 56, + 190, + 274, + 56, + 56, + 108, + 28, + 119, + 119, + 119, + 338, + 322, + 213, + 213, + 213, + 213, + 322, + 322, + 274, + 274, + 274, + 234, + 383, + 15, + 15, + 125, + 38, + 24, + 24, + 8, + 170, + 170, + 170, + 366, + 366, + 228, + 228, + 366, + 366, + 286, + 286, + 286, + 286, + 322, + 322, + 322, + 172, + 172, + 172, + 253, + 317, + 318, + 318, + 307, + 162, + 162, + 348, + 348, + 348, + 348, + 8, + 111, + 81, + 81, + 81, + 85, + 110, + 3, + 77, + 77, + 77, + 311, + 294, + 294, + 335, + 20, + 381, + 20, + 172, + 172, + 285, + 197, + 197, + 285, + 384, + 384, + 384, + 384, + 384, + 377, + 377, + 377, + 377, + 377, + 377, + 353, + 353, + 353, + 342, + 362, + 276, + 276, + 283, + 283, + 303, + 233, + 303, + 303, + 336, + 336, + 135, + 135, + 143, + 219, + 336, + 336, + 348, + 348, + 348, + 267, + 267, + 396, + 389, + 324, + 20, + 20, + 321, + 20, + 42, + 103, + 103, + 103, + 179, + 179, + 294, + 135, + 135, + 294, + 294, + 183, + 350, + 87, + 345, + 198, + 198, + 198, + 198, + 198, + 198, + 249, + 243, + 261, + 345, + 240, + 240, + 383, + 383, + 334, + 334, + 140, + 140, + 354, + 161, + 284, + 87, + 87, + 87, + 87, + 300, + 87, + 87, + 87, + 35, + 59, + 59, + 59, + 306, + 186, + 143, + 189, + 89, + 182, + 182, + 182, + 182, + 182, + 182, + 180, + 180, + 265, + 192, + 398, + 89, + 136, + 136, + 155, + 155, + 89, + 84, + 74, + 353, + 211, + 198, + 353, + 305, + 74, + 74, + 74, + 74, + 74, + 74, + 90, + 90, + 118, + 49, + 45, + 318, + 318, + 78, + 23, + 23, + 280, + 141, + 141, + 141, + 141, + 43, + 215, + 12, + 12, + 149, + 149, + 149, + 214, + 214, + 194, + 330, + 87, + 87, + 50, + 199, + 199, + 199, + 216, + 216, + 216, + 184, + 350, + 182, + 350, + 326, + 376, + 376, + 376, + 376, + 186, + 376, + 376, + 320, + 263, + 263, + 263, + 320, + 320, + 398, + 297, + 343, + 189, + 189, + 170, + 170, + 320, + 50, + 50, + 138, + 138, + 138, + 138, + 148, + 363, + 363, + 50, + 377, + 307, + 381, + 241, + 241, + 138, + 138, + 149, + 149, + 149, + 189, + 189, + 388, + 388, + 388, + 388, + 388, + 388, + 388, + 388, + 303, + 303, + 368, + 50, + 50, + 116, + 116, + 120, + 120, + 120, + 31, + 31, + 31, + 31, + 56, + 1, + 1, + 203, + 11, + 11, + 11, + 183, + 183, + 179, + 179, + 179, + 179, + 358, + 358, + 399, + 11, + 233, + 233, + 233, + 233, + 216, + 216, + 216, + 65, + 129, + 98, + 83, + 83, + 216, + 216, + 216, + 83, + 83, + 368, + 84, + 1, + 14, + 119, + 84, + 118, + 118, + 4, + 4, + 362, + 223, + 202, + 202, + 202, + 215, + 215, + 362, + 383, + 358, + 156, + 156, + 358, + 49, + 49, + 49, + 288, + 288, + 358, + 119, + 28, + 69, + 135, + 28, + 355, + 355, + 355, + 355, + 28, + 358, + 173, + 28, + 348, + 388, + 28, + 27, + 21, + 21, + 94, + 112, + 128, + 247, + 181, + 370, + 370, + 293, + 293, + 367, + 367, + 128, + 115, + 115, + 115, + 72, + 10, + 130, + 83, + 30, + 111, + 185, + 185, + 185, + 185, + 185, + 185, + 185, + 185, + 241, + 239, + 239, + 335, + 339, + 339, + 187, + 47, + 156, + 156, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 399, + 399, + 42, + 122, + 22, + 9, + 9, + 145, + 145, + 328, + 328, + 339, + 79, + 79, + 56, + 56, + 137, + 249, + 320, + 320, + 320, + 320, + 320, + 282, + 282, + 282, + 282, + 282, + 288, + 288, + 288, + 288, + 228, + 288, + 288, + 226, + 180, + 180, + 354, + 354, + 309, + 309, + 286, + 286, + 56, + 56, + 239, + 314, + 314, + 278, + 56, + 56, + 56, + 269, + 337, + 294, + 294, + 294, + 294, + 354, + 354, + 354, + 309, + 61, + 61, + 376, + 2, + 2, + 139, + 2, + 15, + 12, + 120, + 237, + 120, + 350, + 39, + 48, + 375, + 25, + 25, + 125, + 125, + 222, + 221, + 268, + 268, + 268, + 268, + 380, + 380, + 380, + 296, + 296, + 394, + 63, + 71, + 40, + 20, + 109, + 109, + 147, + 109, + 109, + 109, + 109, + 59, + 124, + 108, + 108, + 213, + 213, + 197, + 288, + 288, + 277, + 248, + 248, + 277, + 277, + 193, + 277, + 395, + 339, + 339, + 283, + 365, + 308, + 399, + 365, + 365, + 346, + 393, + 236, + 393, + 393, + 393, + 396, + 396, + 74, + 273, + 107, + 195, + 195, + 195, + 195, + 195, + 163, + 269, + 269, + 269, + 71, + 191, + 161, + 161, + 93, + 135, + 223, + 93, + 93, + 93, + 318, + 318, + 141, + 141, + 264, + 202, + 371, + 371, + 385, + 398, + 331, + 331, + 331, + 331, + 375, + 375, + 231, + 231, + 231, + 231, + 146, + 146, + 265, + 161, + 375, + 388, + 388, + 251, + 388, + 388, + 340, + 382, + 245, + 245, + 245, + 245, + 245, + 245, + 382, + 224, + 224, + 187, + 294, + 93, + 93, + 150, + 150, + 101, + 101, + 140, + 140, + 163, + 101, + 101, + 101, + 101, + 101, + 304, + 241, + 179, + 28, + 36, + 113, + 113, + 57, + 57, + 111, + 25, + 133, + 141, + 133, + 105, + 105, + 105, + 190, + 189, + 301, + 105, + 197, + 151, + 361, + 198, + 198, + 198, + 198, + 198, + 369, + 369, + 350, + 396, + 396, + 396, + 334, + 294, + 318, + 298, + 251, + 251, + 251, + 251, + 240, + 240, + 240, + 202, + 306, + 306, + 306, + 306, + 306, + 318, + 317, + 179, + 160, + 160, + 160, + 340, + 5, + 5, + 5, + 5, + 5, + 5, + 155, + 155, + 222, + 222, + 224, + 335, + 41, + 169, + 169, + 169, + 169, + 41, + 41, + 41, + 96, + 149, + 301, + 95, + 164, + 164, + 203, + 203, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 5, + 51, + 51, + 16, + 16, + 340, + 311, + 311, + 16, + 6, + 31, + 155, + 93, + 93, + 89, + 234, + 279, + 104, + 33, + 103, + 175, + 103, + 201, + 80, + 80, + 53, + 17, + 17, + 17, + 17, + 17, + 145, + 12, + 94, + 290, + 290, + 290, + 290, + 290, + 276, + 276, + 94, + 113, + 187, + 187, + 187, + 152, + 152, + 152, + 152, + 336, + 336, + 363, + 282, + 282, + 359, + 369, + 346, + 346, + 341, + 312, + 60, + 203, + 203, + 54, + 70, + 98, + 49, + 201, + 201, + 49, + 315, + 219, + 40, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 166, + 363, + 363, + 147, + 1, + 208, + 208, + 208, + 14, + 170, + 170, + 303, + 382, + 382, + 14, + 14, + 14, + 191, + 14, + 199, + 199, + 388, + 388, + 388, + 14, + 212, + 212, + 212, + 14, + 65, + 393, + 393, + 393, + 44, + 15, + 15, + 45, + 45, + 45, + 45, + 45, + 45, + 95, + 95, + 95, + 349, + 366, + 366, + 237, + 237, + 259, + 259, + 260, + 366, + 366, + 393, + 353, + 277, + 374, + 74, + 138, + 138, + 138, + 138, + 74, + 313, + 313, + 313, + 305, + 305, + 74, + 126, + 126, + 97, + 79, + 73, + 115, + 40, + 40, + 243, + 391, + 391, + 295, + 356, + 152, + 152, + 238, + 238, + 40, + 147, + 147, + 147, + 147, + 217, + 217, + 352, + 352, + 352, + 160, + 352, + 352, + 3, + 36, + 36, + 111, + 18, + 18, + 267, + 18, + 18, + 53, + 53, + 18, + 67, + 67, + 67, + 126, + 351, + 351, + 351, + 351, + 345, + 126, + 36, + 36, + 323, + 323, + 27, + 272, + 211, + 211, + 211, + 27, + 45, + 99, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 232, + 27, + 36, + 94, + 94, + 322, + 1, + 355, + 355, + 355, + 355, + 378, + 378, + 283, + 270, + 374, + 142, + 142, + 142, + 142, + 210, + 229, + 229, + 313, + 313, + 340, + 340, + 232, + 232, + 232, + 232, + 216, + 216, + 272, + 272, + 272, + 272, + 225, + 272, + 175, + 175, + 136, + 160, + 272, + 272, + 272, + 307, + 399, + 382, + 218, + 316, + 316, + 230, + 316, + 316, + 316, + 366, + 366, + 240, + 370, + 251, + 227, + 227, + 199, + 370, + 1, + 1, + 21, + 21, + 273, + 21, + 151, + 151, + 151, + 7, + 7, + 7, + 325, + 325, + 312, + 312, + 312, + 312, + 322, + 319, + 319, + 7, + 111, + 285, + 195, + 285, + 154, + 111, + 69, + 189, + 189, + 189, + 189, + 189, + 69, + 69, + 69, + 48, + 48, + 48, + 122, + 301, + 301, + 301, + 301, + 301, + 122, + 38, + 38, + 103, + 253, + 103, + 239, + 239, + 103, + 374, + 69, + 116, + 44, + 44, + 44, + 156, + 156, + 237, + 237, + 237, + 44, + 44, + 393, + 399, + 202, + 44, + 49, + 49, + 49, + 36, + 63, + 121, + 112, + 0, + 0, + 0, + 0, + 335, + 335, + 335, + 0, + 32, + 308, + 308, + 361, + 209, + 209, + 209, + 290, + 385, + 385, + 292, + 292, + 123, + 123, + 61, + 61, + 61, + 61, + 61, + 61, + 370, + 235, + 61, + 203, + 61, + 245, + 61, + 127, + 130, + 130, + 295, + 77, + 77, + 77, + 89, + 180, + 180, + 65, + 65, + 65, + 72, + 82, + 82, + 93, + 93, + 93, + 366, + 152, + 152, + 207, + 207, + 77, + 180, + 104, + 157, + 344, + 383, + 383, + 383, + 220, + 383, + 383, + 383, + 9, + 9, + 158, + 158, + 158, + 20, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 171, + 145, + 145, + 145, + 145, + 302, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 162, + 162, + 162, + 162, + 162, + 162, + 201, + 258, + 208, + 310, + 333, + 333, + 337, + 269, + 71, + 71, + 120, + 120, + 13, + 13, + 13, + 180, + 13, + 13, + 13, + 83, + 40, + 98, + 63, + 370, + 370, + 370, + 86, + 186, + 186, + 241, + 241, + 176, + 366, + 31, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 321, + 237, + 237, + 394, + 394, + 26, + 391, + 290, + 322, + 313, + 51, + 39, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 285, + 285, + 285, + 285, + 286, + 299, + 299, + 299, + 3, + 47, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 196, + 328, + 328, + 328, + 138, + 328, + 328, + 230, + 230, + 226, + 226, + 57, + 100, + 100, + 100, + 100, + 100, + 100, + 204, + 192, + 192, + 397, + 39, + 10, + 10, + 101, + 261, + 282, + 282, + 396, + 396, + 214, + 214, + 396, + 101, + 101, + 236, + 236, + 236, + 236, + 236, + 236, + 363, + 76, + 199, + 199, + 199, + 199, + 135, + 0, + 168, + 168, + 68, + 68, + 136, + 136, + 136, + 211, + 223, + 219, + 174, + 279, + 286, + 144, + 144, + 144, + 169, + 145, + 145, + 286, + 145, + 286, + 152, + 387, + 387, + 387, + 387, + 387, + 176, + 176, + 176, + 203, + 203, + 203, + 387, + 232, + 232, + 387, + 229, + 119, + 119, + 256, + 381, + 119, + 139, + 119, + 119, + 97, + 39, + 87, + 128, + 197, + 197, + 197, + 260, + 260, + 260, + 254, + 382, + 382, + 189, + 189, + 382, + 137, + 221, + 296, + 7, + 7, + 392, + 7, + 7, + 37, + 315, + 315, + 37, + 44, + 80, + 80, + 80, + 80, + 381, + 381, + 80, + 324, + 324, + 169, + 324, + 324, + 324, + 324, + 65, + 55, + 55, + 19, + 243, + 393, + 393, + 188, + 188, + 393, + 393, + 393, + 19, + 261, + 261, + 261, + 261, + 261, + 168, + 315, + 315, + 100, + 312, + 36, + 36, + 36, + 150, + 36, + 231, + 187, + 187, + 187, + 194, + 145, + 173, + 180, + 180, + 351, + 351, + 34, + 54, + 301, + 65, + 65, + 304, + 63, + 107, + 107, + 237, + 291, + 136, + 136, + 136, + 355, + 180, + 180, + 180, + 180, + 176, + 176, + 216, + 216, + 216, + 216, + 177, + 206, + 206, + 206, + 206, + 355, + 282, + 282, + 144, + 144, + 282, + 142, + 142, + 282, + 282, + 282, + 282, + 282, + 329, + 329, + 398, + 281, + 296, + 296, + 296, + 368, + 348, + 107, + 106, + 113, + 309, + 309, + 309, + 56, + 56, + 330, + 330, + 62, + 101, + 101, + 101, + 90, + 19, + 254, + 141, + 16, + 16, + 3, + 271, + 3, + 3, + 151, + 269, + 3, + 254, + 3, + 322, + 61, + 61, + 88, + 88, + 21, + 36, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 400, + 100, + 100, + 125, + 306, + 306, + 260, + 260, + 306, + 344, + 72, + 13, + 62, + 56, + 56, + 170, + 26, + 151, + 151, + 172, + 26, + 26, + 26, + 202, + 154, + 148, + 148, + 362, + 289, + 289, + 26, + 26, + 2, + 134, + 162, + 2, + 86, + 66, + 66, + 21, + 21, + 22, + 250, + 146, + 146, + 389, + 346, + 200, + 390, + 390, + 34, + 34, + 34, + 200, + 200, + 34, + 136, + 110, + 110, + 282, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 158, + 158, + 320, + 320, + 253, + 240, + 210, + 210, + 210, + 210, + 220, + 268, + 46, + 27, + 27, + 165, + 165, + 252, + 300, + 236, + 300, + 300, + 307, + 140, + 307, + 279, + 279, + 279, + 279, + 27, + 27, + 262, + 262, + 262, + 27, + 27, + 393, + 393, + 393, + 27, + 27, + 114, + 114, + 114, + 114, + 39, + 74, + 283, + 283, + 74, + 354, + 161, + 354, + 354, + 354, + 354, + 321, + 321, + 321, + 321, + 321, + 314, + 314, + 61, + 61, + 24, + 24, + 66, + 151, + 66, + 1, + 180, + 286, + 309, + 1, + 1, + 152, + 100, + 100, + 90, + 90, + 90, + 99, + 99, + 99, + 99, + 99, + 82, + 86, + 116, + 16, + 16, + 16, + 16, + 16, + 76, + 129, + 330, + 188, + 188, + 188, + 188, + 189, + 189, + 148, + 148, + 148, + 145, + 145, + 354, + 354, + 354, + 354, + 394, + 113, + 107, + 13, + 361, + 361, + 361, + 41, + 112, + 106, + 370, + 229, + 370, + 279, + 279, + 391, + 283, + 283, + 283, + 283, + 400, + 400, + 275, + 275, + 106, + 300, + 300, + 106, + 62, + 62, + 334, + 62, + 62, + 62, + 62, + 252, + 194, + 379, + 379, + 379, + 379, + 379, + 206, + 206, + 114, + 114, + 139, + 148, + 148, + 337, + 253, + 181, + 181, + 90, + 59, + 41, + 254, + 254, + 254, + 140, + 264, + 264, + 306, + 306, + 306, + 306, + 306, + 270, + 200, + 89, + 84, + 84, + 84, + 84, + 84, + 144, + 162, + 209, + 148, + 148, + 162, + 396, + 202, + 202, + 154, + 154, + 154, + 154, + 396, + 212, + 212, + 212, + 212, + 212, + 202, + 342, + 313, + 357, + 357, + 346, + 346, + 111, + 111, + 111, + 17, + 308, + 17, + 99, + 81, + 206, + 206, + 206, + 206, + 164, + 256, + 264, + 264, + 242, + 147, + 147, + 260, + 260, + 260, + 260, + 260, + 260, + 255, + 255, + 335, + 335, + 251, + 251, + 380, + 303, + 393, + 331, + 331, + 377, + 72, + 72, + 72, + 67, + 24, + 348, + 24, + 24, + 371, + 379, + 35, + 101, + 122, + 122, + 133, + 133, + 133, + 319, + 319, + 319, + 133, + 133, + 67, + 358, + 67, + 67, + 67, + 67, + 166, + 289, + 67, + 67, + 390, + 390, + 390, + 88, + 88, + 288, + 288, + 49, + 52, + 36, + 174, + 174, + 36, + 164, + 241, + 241, + 241, + 241, + 241, + 355, + 279, + 279, + 363, + 36, + 36, + 34, + 34, + 29, + 75, + 75, + 240, + 387, + 387, + 75, + 216, + 216, + 216, + 219, + 356, + 180, + 390, + 91, + 91, + 102, + 102, + 102, + 102, + 207, + 102, + 298, + 102, + 102, + 102, + 256, + 187, + 373, + 373, + 355, + 199, + 229, + 229, + 229, + 355, + 355, + 326, + 102, + 95, + 97, + 253, + 253, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 97, + 97, + 99, + 331, + 199, + 99, + 99, + 275, + 275, + 189, + 85, + 85, + 23, + 184, + 184, + 184, + 184, + 184, + 323, + 384, + 384, + 23, + 120, + 116, + 47, + 47, + 142, + 142, + 149, + 149, + 186, + 305, + 305, + 305, + 305, + 367, + 211, + 211, + 47, + 291, + 291, + 162, + 162, + 382, + 382, + 135, + 382, + 120, + 120, + 120, + 125, + 125, + 116, + 62, + 115, + 0, + 0, + 0, + 54, + 39, + 24, + 104, + 47, + 47, + 95, + 269, + 95, + 257, + 301, + 301, + 335, + 260, + 260, + 260, + 163, + 179, + 335, + 335, + 372, + 280, + 320, + 320, + 320, + 394, + 263, + 234, + 302, + 142, + 142, + 142, + 302, + 95, + 95, + 213, + 213, + 213, + 216, + 229, + 229, + 229, + 229, + 263, + 278, + 397, + 37, + 136, + 336, + 336, + 362, + 362, + 173, + 37, + 98, + 3, + 3, + 245, + 243, + 243, + 85, + 96, + 96, + 211, + 211, + 57, + 189, + 189, + 189, + 188, + 140, + 314, + 336, + 336, + 336, + 336, + 336, + 336, + 319, + 319, + 81, + 81, + 102, + 130, + 209, + 209, + 209, + 130, + 130, + 82, + 29, + 379, + 379, + 379, + 29, + 29, + 21, + 21, + 21, + 149, + 149, + 198, + 369, + 170, + 170, + 170, + 151, + 151, + 151, + 151, + 151, + 151, + 151, + 151, + 253, + 195, + 238, + 369, + 383, + 326, + 16, + 130, + 109, + 109, + 334, + 334, + 142, + 109, + 86, + 86, + 327, + 327, + 267, + 207, + 207, + 330, + 86, + 15, + 106, + 106, + 106, + 106, + 106, + 120, + 120, + 120, + 120, + 255, + 255, + 255, + 82, + 82, + 82, + 199, + 239, + 82, + 63, + 19, + 276, + 276, + 19, + 29, + 29, + 29, + 10, + 50, + 50, + 50, + 161, + 50, + 50, + 50, + 213, + 180, + 180, + 198, + 364, + 164, + 164, + 164, + 164, + 164, + 230, + 191, + 191, + 195, + 195, + 140, + 174, + 174, + 174, + 392, + 381, + 335, + 367, + 367, + 367, + 50, + 58, + 209, + 209, + 78, + 78, + 12, + 109, + 358, + 109, + 92, + 39, + 106, + 253, + 252, + 252, + 194, + 194, + 241, + 241, + 279, + 279, + 240, + 279, + 328, + 328, + 106, + 106, + 106, + 176, + 271, + 271, + 239, + 139, + 139, + 271, + 271, + 56, + 56, + 56, + 86, + 86, + 86, + 87, + 87, + 378, + 257, + 257, + 378, + 321, + 150, + 182, + 323, + 4, + 260, + 260, + 260, + 217, + 236, + 370, + 370, + 228, + 228, + 292, + 292, + 292, + 292, + 292, + 96, + 70, + 20, + 130, + 390, + 390, + 390, + 266, + 390, + 374, + 302, + 302, + 288, + 130, + 172, + 304, + 73, + 73, + 73, + 57, + 17, + 17, + 123, + 29, + 153, + 156, + 384, + 29, + 57, + 24, + 254, + 24, + 167, + 207, + 207, + 207, + 207, + 207, + 207, + 151, + 199, + 199, + 199, + 149, + 301, + 155, + 301, + 301, + 301, + 187, + 301, + 394, + 394, + 186, + 186, + 394, + 394, + 332, + 354, + 268, + 268, + 24, + 92, + 92, + 2, + 2, + 2, + 2, + 2, + 2, + 302, + 302, + 232, + 2, + 2, + 2, + 330, + 330, + 199, + 199, + 269, + 269, + 269, + 330, + 238, + 238, + 238, + 330, + 330, + 339, + 323, + 323, + 2, + 316, + 316, + 144, + 144, + 331, + 147, + 331, + 331, + 183, + 270, + 270, + 270, + 2, + 45, + 1, + 9, + 217, + 217, + 26, + 17, + 379, + 17, + 28, + 371, + 371, + 397, + 140, + 342, + 50, + 50, + 21, + 21, + 210, + 315, + 21, + 21, + 21, + 114, + 64, + 142, + 165, + 377, + 377, + 227, + 293, + 175, + 175, + 285, + 285, + 285, + 330, + 64, + 64, + 64, + 64, + 398, + 194, + 398, + 398, + 398, + 0, + 0, + 0, + 127, + 127, + 85, + 48, + 48, + 48, + 255, + 239, + 339, + 339, + 265, + 265, + 192, + 192, + 342, + 101, + 388, + 388, + 5, + 5, + 5, + 297, + 395, + 5, + 12, + 92, + 92, + 92, + 281, + 281, + 92, + 282, + 182, + 182, + 255, + 282, + 384, + 384, + 384, + 384, + 400, + 400, + 363, + 363, + 263, + 263, + 380, + 200, + 200, + 200, + 200, + 346, + 346, + 317, + 92, + 92, + 215, + 92, + 34, + 172, + 172, + 172, + 188, + 353, + 31, + 279, + 287, + 287, + 333, + 31, + 66, + 66, + 366, + 392, + 392, + 51, + 84, + 255, + 139, + 139, + 139, + 264, + 342, + 323, + 84, + 119, + 119, + 119, + 132, + 235, + 68, + 168, + 168, + 371, + 371, + 68, + 43, + 388, + 43, + 76, + 126, + 126, + 126, + 359, + 359, + 255, + 149, + 126, + 126, + 126, + 327, + 327, + 327, + 126, + 64, + 86, + 274, + 310, + 310, + 310, + 310, + 69, + 69, + 19, + 181, + 364, + 364, + 250, + 19, + 19, + 19, + 19, + 123, + 361, + 361, + 123, + 57, + 56, + 56, + 56, + 34, + 34, + 376, + 357, + 400, + 400, + 212, + 214, + 266, + 266, + 116, + 54, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 193, + 193, + 77, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 251, + 215, + 32, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 244, + 388, + 388, + 55, + 119, + 119, + 74, + 330, + 330, + 121, + 204, + 204, + 281, + 145, + 145, + 144, + 144, + 281, + 281, + 281, + 334, + 334, + 334, + 197, + 334, + 334, + 211, + 334, + 232, + 232, + 338, + 217, + 121, + 295, + 26, + 26, + 26, + 26, + 244, + 347, + 26, + 299, + 26, + 26, + 26, + 130, + 40, + 39, + 254, + 254, + 254, + 253, + 253, + 253, + 253, + 253, + 253, + 232, + 204, + 204, + 315, + 322, + 322, + 322, + 322, + 183, + 183, + 397, + 132, + 132, + 8, + 8, + 131, + 131, + 395, + 395, + 395, + 42, + 108, + 5, + 5, + 76, + 65, + 65, + 65, + 65, + 168, + 286, + 286, + 286, + 286, + 65, + 330, + 330, + 71, + 68, + 97, + 249, + 31, + 166, + 166, + 166, + 166, + 398, + 398, + 398, + 398, + 398, + 398, + 398, + 355, + 355, + 355, + 295, + 295, + 182, + 182, + 182, + 295, + 349, + 31, + 75, + 75, + 274, + 150, + 217, + 217, + 217, + 175, + 175, + 175, + 175, + 212, + 146, + 206, + 206, + 201, + 201, + 274, + 166, + 166, + 274, + 274, + 194, + 341, + 341, + 341, + 386, + 386, + 386, + 273, + 273, + 273, + 336, + 336, + 339, + 140, + 140, + 140, + 325, + 325, + 367, + 367, + 246, + 246, + 246, + 246, + 108, + 108, + 12, + 209, + 242, + 334, + 334, + 330, + 330, + 398, + 23, + 340, + 340, + 340, + 340, + 125, + 125, + 33, + 33, + 37, + 40, + 49, + 49, + 194, + 194, + 194, + 314, + 24, + 24, + 100, + 100, + 100, + 131, + 72, + 131, + 248, + 248, + 248, + 192, + 186, + 140, + 372, + 372, + 315, + 224, + 315, + 269, + 366, + 240, + 249, + 366, + 273, + 273, + 145, + 388, + 138, + 167, + 365, + 365, + 354, + 354, + 157, + 157, + 346, + 346, + 346, + 324, + 324, + 268, + 268, + 319, + 67, + 174, + 174, + 174, + 179, + 345, + 345, + 345, + 394, + 177, + 247, + 247, + 340, + 340, + 249, + 249, + 249, + 340, + 316, + 363, + 363, + 152, + 152, + 152, + 152, + 361, + 371, + 67, + 111, + 111, + 73, + 148, + 148, + 283, + 73, + 263, + 263, + 210, + 210, + 202, + 73, + 73, + 73, + 73, + 375, + 0, + 0, + 0, + 6, + 6, + 203, + 24, + 24, + 78, + 87, + 91, + 91, + 274, + 274, + 274, + 274, + 256, + 256, + 256, + 146, + 187, + 144, + 144, + 144, + 144, + 274, + 295, + 295, + 295, + 295, + 385, + 385, + 385, + 385, + 385, + 309, + 212, + 91, + 16, + 16, + 237, + 237, + 237, + 237, + 237, + 237, + 237, + 237, + 237, + 188, + 188, + 257, + 257, + 257, + 257, + 142, + 382, + 231, + 231, + 308, + 343, + 343, + 343, + 343, + 294, + 379, + 379, + 224, + 379, + 149, + 149, + 149, + 149, + 143, + 143, + 143, + 379, + 379, + 245, + 379, + 379, + 379, + 379, + 379, + 379, + 385, + 16, + 16, + 329, + 329, + 30, + 199, + 166, + 166, + 166, + 166, + 355, + 30, + 30, + 60, + 132, + 132, + 132, + 25, + 25, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 167, + 25, + 131, + 131, + 131, + 131, + 131, + 251, + 251, + 323, + 323, + 131, + 131, + 131, + 131, + 216, + 216, + 216, + 216, + 169, + 169, + 169, + 169, + 169, + 225, + 288, + 38, + 265, + 224, + 311, + 311, + 38, + 392, + 314, + 314, + 139, + 139, + 139, + 139, + 139, + 139, + 139, + 199, + 310, + 310, + 310, + 385, + 96, + 96, + 96, + 96, + 96, + 34, + 34, + 364, + 364, + 400, + 216, + 0, + 380, + 0, + 0, + 0, + 193, + 193, + 356, + 356, + 356, + 0, + 76, + 113, + 113, + 358, + 113, + 113, + 59, + 59, + 59, + 77, + 66, + 312, + 312, + 312, + 119, + 119, + 55, + 221, + 242, + 229, + 367, + 367, + 261, + 319, + 319, + 307, + 307, + 278, + 263, + 278, + 346, + 346, + 346, + 25, + 48, + 317, + 317, + 48, + 254, + 254, + 254, + 254, + 254, + 144, + 144, + 256, + 256, + 155, + 155, + 155, + 155, + 216, + 216, + 260, + 260, + 166, + 280, + 280, + 280, + 280, + 280, + 280, + 277, + 277, + 178, + 178, + 178, + 329, + 232, + 232, + 232, + 331, + 316, + 124, + 243, + 124, + 60, + 319, + 60, + 60, + 364, + 364, + 14, + 14, + 5, + 360, + 227, + 5, + 5, + 24, + 26, + 26, + 26, + 26, + 79, + 113, + 72, + 148, + 148, + 148, + 214, + 266, + 266, + 266, + 333, + 333, + 202, + 336, + 393, + 393, + 393, + 99, + 385, + 389, + 58, + 58, + 384, + 384, + 58, + 307, + 259, + 259, + 259, + 384, + 266, + 58, + 58, + 58, + 58, + 58, + 45, + 160, + 160, + 56, + 36, + 36, + 352, + 60, + 349, + 60, + 18, + 379, + 194, + 379, + 182, + 18, + 51, + 51, + 51, + 150, + 202, + 333, + 304, + 304, + 304, + 254, + 254, + 254, + 254, + 304, + 304, + 304, + 316, + 201, + 201, + 400, + 51, + 51, + 51, + 51, + 254, + 254, + 254, + 254, + 254, + 247, + 376, + 341, + 302, + 302, + 373, + 373, + 373, + 373, + 373, + 373, + 373, + 193, + 193, + 286, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 296, + 92, + 92, + 92, + 92, + 92, + 92, + 22, + 178, + 178, + 22, + 22, + 22, + 23, + 76, + 169, + 169, + 169, + 372, + 267, + 267, + 267, + 44, + 44, + 120, + 136, + 136, + 136, + 262, + 120, + 291, + 291, + 291, + 198, + 266, + 291, + 222, + 222, + 216, + 291, + 284, + 245, + 245, + 245, + 245, + 200, + 141, + 141, + 139, + 139, + 139, + 372, + 309, + 309, + 309, + 369, + 120, + 125, + 83, + 83, + 246, + 246, + 383, + 15, + 72, + 72, + 116, + 116, + 116, + 111, + 111, + 111, + 193, + 111, + 17, + 33, + 282, + 169, + 169, + 200, + 193, + 268, + 283, + 370, + 33, + 21, + 21, + 377, + 377, + 377, + 21, + 21, + 114, + 114, + 100, + 312, + 100, + 114, + 82, + 73, + 397, + 397, + 73, + 392, + 392, + 29, + 29, + 29, + 344, + 344, + 46, + 15, + 15, + 15, + 22, + 246, + 246, + 396, + 22, + 62, + 201, + 162, + 162, + 162, + 259, + 259, + 171, + 275, + 275, + 323, + 161, + 161, + 323, + 374, + 212, + 212, + 212, + 222, + 190, + 374, + 374, + 374, + 374, + 319, + 339, + 104, + 22, + 22, + 22, + 22, + 22, + 251, + 251, + 254, + 254, + 254, + 169, + 169, + 169, + 153, + 153, + 372, + 301, + 301, + 22, + 158, + 22, + 22, + 15, + 283, + 283, + 283, + 283, + 276, + 276, + 137, + 137, + 279, + 279, + 279, + 279, + 281, + 281, + 340, + 249, + 298, + 237, + 237, + 298, + 157, + 354, + 289, + 391, + 19, + 49, + 49, + 159, + 181, + 181, + 181, + 181, + 228, + 228, + 228, + 228, + 225, + 344, + 344, + 344, + 344, + 359, + 359, + 89, + 326, + 326, + 89, + 325, + 325, + 89, + 89, + 319, + 99, + 99, + 131, + 42, + 234, + 234, + 181, + 181, + 181, + 239, + 13, + 142, + 142, + 142, + 142, + 142, + 98, + 98, + 345, + 345, + 98, + 38, + 215, + 215, + 38, + 38, + 396, + 13, + 131, + 131, + 28, + 141, + 141, + 17, + 23, + 23, + 227, + 53, + 53, + 83, + 100, + 19, + 19, + 0, + 272, + 297, + 297, + 297, + 64, + 64, + 64, + 153, + 382, + 117, + 81, + 81, + 81, + 81, + 117, + 117, + 17, + 6, + 6, + 285, + 285, + 329, + 319, + 252, + 250, + 250, + 367, + 367, + 367, + 40, + 40, + 56, + 278, + 194, + 234, + 278, + 278, + 278, + 220, + 278, + 4, + 220, + 220, + 220, + 9, + 9, + 361, + 361, + 128, + 260, + 101, + 55, + 55, + 24, + 24, + 24, + 24, + 24, + 354, + 71, + 71, + 71, + 204, + 217, + 267, + 181, + 267, + 267, + 71, + 71, + 30, + 294, + 294, + 294, + 30, + 30, + 29, + 29, + 29, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 230, + 230, + 230, + 230, + 230, + 230, + 230, + 154, + 154, + 169, + 169, + 169, + 194, + 278, + 318, + 318, + 357, + 270, + 270, + 282, + 282, + 282, + 163, + 352, + 15, + 93, + 93, + 93, + 107, + 107, + 9, + 133, + 133, + 85, + 188, + 188, + 253, + 253, + 253, + 253, + 217, + 85, + 5, + 5, + 334, + 92, + 92, + 57, + 206, + 206, + 206, + 163, + 163, + 145, + 145, + 189, + 237, + 38, + 38, + 127, + 127, + 331, + 331, + 94, + 339, + 339, + 22, + 22, + 73, + 73, + 235, + 235, + 235, + 235, + 324, + 254, + 55, + 125, + 125, + 111, + 111, + 239, + 111, + 78, + 111, + 161, + 161, + 161, + 315, + 365, + 365, + 365, + 111, + 46, + 46, + 90, + 154, + 154, + 274, + 2, + 2, + 291, + 186, + 291, + 291, + 291, + 2, + 119, + 238, + 336, + 336, + 340, + 102, + 159, + 159, + 159, + 159, + 147, + 147, + 147, + 138, + 138, + 138, + 350, + 350, + 376, + 116, + 323, + 262, + 308, + 116, + 260, + 260, + 286, + 31, + 88, + 112, + 94, + 221, + 94, + 151, + 241, + 320, + 320, + 320, + 213, + 213, + 352, + 367, + 297, + 319, + 319, + 319, + 94, + 49, + 284, + 284, + 284, + 284, + 284, + 284, + 247, + 247, + 224, + 224, + 246, + 246, + 304, + 304, + 304, + 163, + 332, + 332, + 332, + 332, + 332, + 332, + 171, + 171, + 171, + 188, + 257, + 257, + 257, + 257, + 296, + 372, + 95, + 395, + 395, + 395, + 395, + 395, + 95, + 95, + 127, + 70, + 8, + 23, + 34, + 24, + 24, + 110, + 181, + 49, + 49, + 49, + 49, + 23, + 318, + 318, + 23, + 125, + 270, + 385, + 333, + 165, + 165, + 145, + 145, + 145, + 333, + 112, + 174, + 174, + 174, + 174, + 148, + 249, + 249, + 249, + 110, + 110, + 110, + 110, + 111, + 86, + 38, + 90, + 258, + 134, + 373, + 373, + 243, + 171, + 171, + 171, + 171, + 171, + 262, + 179, + 296, + 177, + 177, + 296, + 187, + 187, + 296, + 326, + 326, + 324, + 378, + 378, + 376, + 376, + 376, + 149, + 149, + 376, + 297, + 297, + 3, + 1, + 77, + 77, + 81, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 137, + 137, + 137, + 376, + 376, + 376, + 172, + 341, + 341, + 341, + 341, + 190, + 341, + 342, + 322, + 253, + 253, + 325, + 325, + 325, + 360, + 95, + 95, + 219, + 219, + 95, + 100, + 37, + 80, + 215, + 80, + 80, + 212, + 212, + 212, + 80, + 80, + 221, + 383, + 137, + 137, + 383, + 326, + 193, + 193, + 193, + 257, + 356, + 356, + 236, + 236, + 236, + 236, + 236, + 198, + 198, + 198, + 198, + 198, + 198, + 370, + 288, + 121, + 61, + 7, + 101, + 101, + 213, + 213, + 101, + 68, + 127, + 33, + 33, + 33, + 128, + 60, + 208, + 208, + 276, + 60, + 60, + 60, + 130, + 239, + 270, + 314, + 314, + 389, + 130, + 389, + 389, + 389, + 370, + 370, + 370, + 370, + 370, + 54, + 54, + 54, + 70, + 111, + 111, + 108, + 33, + 33, + 107, + 208, + 56, + 374, + 374, + 25, + 25, + 25, + 119, + 105, + 374, + 374, + 105, + 105, + 387, + 241, + 241, + 241, + 241, + 241, + 250, + 250, + 242, + 189, + 189, + 189, + 189, + 191, + 191, + 191, + 191, + 191, + 318, + 373, + 229, + 229, + 229, + 161, + 373, + 373, + 373, + 373, + 323, + 385, + 143, + 385, + 271, + 296, + 296, + 105, + 335, + 335, + 105, + 14, + 90, + 90, + 258, + 94, + 94, + 51, + 51, + 97, + 58, + 58, + 38, + 38, + 38, + 211, + 211, + 211, + 211, + 211, + 30, + 153, + 153, + 153, + 209, + 209, + 209, + 209, + 163, + 361, + 164, + 72, + 133, + 133, + 133, + 396, + 133, + 133, + 47, + 154, + 47, + 2, + 67, + 313, + 227, + 227, + 169, + 169, + 169, + 169, + 169, + 169, + 164, + 163, + 271, + 330, + 330, + 330, + 347, + 319, + 319, + 319, + 319, + 285, + 300, + 299, + 288, + 288, + 288, + 288, + 107, + 222, + 397, + 397, + 397, + 397, + 397, + 397, + 107, + 107, + 204, + 204, + 107, + 79, + 130, + 107, + 108, + 327, + 35, + 336, + 192, + 192, + 192, + 192, + 262, + 244, + 154, + 224, + 144, + 144, + 257, + 323, + 323, + 283, + 283, + 283, + 371, + 334, + 129, + 115, + 213, + 213, + 301, + 175, + 175, + 276, + 171, + 171, + 171, + 115, + 115, + 181, + 181, + 84, + 51, + 290, + 290, + 51, + 233, + 363, + 117, + 117, + 149, + 149, + 195, + 195, + 295, + 380, + 190, + 336, + 336, + 117, + 34, + 121, + 133, + 35, + 48, + 88, + 88, + 88, + 88, + 186, + 367, + 367, + 363, + 363, + 124, + 124, + 100, + 356, + 125, + 152, + 44, + 44, + 44, + 386, + 346, + 346, + 268, + 268, + 268, + 306, + 306, + 71, + 71, + 195, + 195, + 195, + 222, + 222, + 222, + 222, + 298, + 384, + 384, + 83, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 203, + 219, + 219, + 243, + 379, + 269, + 128, + 39, + 23, + 23, + 46, + 15, + 278, + 144, + 144, + 218, + 218, + 304, + 271, + 271, + 375, + 57, + 57, + 16, + 42, + 397, + 327, + 318, + 196, + 318, + 244, + 377, + 377, + 377, + 377, + 377, + 25, + 25, + 25, + 129, + 34, + 68, + 283, + 68, + 201, + 201, + 201, + 201, + 201, + 201, + 264, + 364, + 364, + 68, + 234, + 130, + 207, + 207, + 30, + 26, + 26, + 26, + 19, + 19, + 338, + 18, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 123, + 245, + 266, + 284, + 376, + 376, + 123, + 199, + 304, + 15, + 15, + 15, + 15, + 68, + 68, + 68, + 203, + 203, + 203, + 303, + 238, + 238, + 207, + 207, + 153, + 301, + 301, + 353, + 353, + 353, + 353, + 353, + 180, + 180, + 240, + 318, + 318, + 318, + 153, + 153, + 191, + 183, + 183, + 183, + 183, + 182, + 197, + 177, + 307, + 287, + 373, + 373, + 373, + 298, + 298, + 298, + 369, + 78, + 102, + 119, + 32, + 32, + 121, + 121, + 121, + 285, + 285, + 285, + 228, + 228, + 189, + 183, + 285, + 316, + 121, + 121, + 61, + 276, + 344, + 344, + 260, + 260, + 260, + 260, + 156, + 156, + 344, + 344, + 351, + 61, + 1, + 1, + 1, + 1, + 1, + 32, + 32, + 252, + 103, + 73, + 80, + 80, + 80, + 110, + 65, + 107, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 291, + 291, + 291, + 284, + 284, + 284, + 77, + 77, + 54, + 54, + 116, + 194, + 300, + 300, + 194, + 116, + 392, + 34, + 34, + 161, + 307, + 307, + 307, + 34, + 96, + 79, + 92, + 155, + 171, + 171, + 290, + 290, + 326, + 63, + 262, + 262, + 262, + 262, + 230, + 230, + 230, + 159, + 159, + 306, + 269, + 97, + 97, + 25, + 358, + 358, + 32, + 32, + 266, + 80, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 312, + 368, + 368, + 368, + 368, + 368, + 367, + 367, + 367, + 391, + 391, + 102, + 278, + 278, + 278, + 278, + 278, + 124, + 124, + 177, + 177, + 177, + 177, + 177, + 225, + 207, + 124, + 124, + 124, + 124, + 123, + 201, + 123, + 123, + 387, + 387, + 344, + 344, + 73, + 210, + 210, + 210, + 210, + 210, + 210, + 210, + 210, + 77, + 47, + 123, + 123, + 102, + 32, + 7, + 22, + 30, + 399, + 399, + 0, + 140, + 140, + 140, + 0, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 243, + 234, + 233, + 387, + 143, + 363, + 363, + 363, + 77, + 77, + 38, + 84, + 84, + 128, + 79, + 188, + 188, + 188, + 14, + 14, + 196, + 196, + 203, + 222, + 310, + 14, + 22, + 361, + 22, + 22, + 22, + 22, + 164, + 164, + 164, + 164, + 314, + 22, + 391, + 391, + 391, + 391, + 391, + 385, + 22, + 22, + 118, + 118, + 346, + 346, + 179, + 179, + 165, + 165, + 165, + 49, + 54, + 84, + 84, + 363, + 84, + 281, + 281, + 281, + 281, + 281, + 292, + 292, + 172, + 289, + 289, + 314, + 314, + 314, + 399, + 399, + 84, + 127, + 127, + 321, + 321, + 373, + 236, + 236, + 221, + 324, + 224, + 382, + 168, + 382, + 308, + 308, + 308, + 308, + 298, + 298, + 192, + 298, + 298, + 298, + 293, + 82, + 261, + 47, + 59, + 97, + 38, + 38, + 99, + 169, + 99, + 99, + 75, + 75, + 309, + 309, + 309, + 75, + 98, + 98, + 285, + 356, + 236, + 314, + 389, + 389, + 389, + 282, + 98, + 98, + 98, + 26, + 98, + 123, + 123, + 357, + 7, + 7, + 15, + 93, + 24, + 0, + 0, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 207, + 207, + 207, + 207, + 393, + 384, + 300, + 319, + 22, + 62, + 62, + 62, + 25, + 267, + 267, + 267, + 25, + 296, + 296, + 25, + 25, + 353, + 25, + 395, + 53, + 206, + 206, + 206, + 224, + 224, + 238, + 238, + 238, + 316, + 343, + 270, + 8, + 8, + 8, + 8, + 8, + 257, + 257, + 334, + 334, + 37, + 37, + 130, + 109, + 169, + 195, + 195, + 223, + 223, + 348, + 109, + 43, + 43, + 43, + 96, + 96, + 32, + 155, + 155, + 155, + 155, + 155, + 240, + 230, + 230, + 230, + 230, + 258, + 258, + 258, + 258, + 186, + 207, + 207, + 207, + 232, + 209, + 209, + 354, + 354, + 397, + 203, + 397, + 391, + 391, + 391, + 306, + 32, + 367, + 32, + 161, + 161, + 257, + 189, + 189, + 189, + 370, + 370, + 231, + 303, + 56, + 126, + 178, + 178, + 126, + 126, + 250, + 250, + 126, + 211, + 211, + 291, + 61, + 61, + 61, + 14, + 14, + 14, + 386, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 375, + 375, + 14, + 62, + 130, + 130, + 130, + 130, + 130, + 130, + 214, + 214, + 214, + 214, + 194, + 194, + 194, + 152, + 254, + 265, + 265, + 392, + 392, + 391, + 391, + 391, + 104, + 50, + 50, + 50, + 230, + 230, + 230, + 230, + 66, + 66, + 55, + 229, + 229, + 197, + 292, + 55, + 187, + 187, + 187, + 55, + 55, + 199, + 55, + 55, + 55, + 95, + 95, + 95, + 157, + 157, + 95, + 121, + 121, + 69, + 346, + 69, + 69, + 38, + 7, + 7, + 7, + 7, + 180, + 394, + 394, + 316, + 316, + 7, + 194, + 7, + 63, + 116, + 36, + 36, + 65, + 348, + 348, + 348, + 27, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 211, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 369, + 6, + 76, + 367, + 227, + 227, + 21, + 256, + 256, + 256, + 163, + 163, + 393, + 393, + 102, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 183, + 183, + 183, + 156, + 192, + 93, + 93, + 261, + 261, + 261, + 294, + 391, + 256, + 347, + 286, + 286, + 286, + 286, + 114, + 130, + 298, + 267, + 165, + 165, + 267, + 87, + 87, + 87, + 35, + 35, + 35, + 157, + 157, + 194, + 194, + 194, + 194, + 194, + 353, + 353, + 295, + 273, + 273, + 273, + 273, + 273, + 245, + 245, + 245, + 273, + 144, + 144, + 273, + 273, + 348, + 277, + 277, + 252, + 198, + 277, + 284, + 35, + 35, + 2, + 384, + 384, + 192, + 384, + 150, + 257, + 257, + 257, + 257, + 175, + 2, + 50, + 328, + 328, + 50, + 32, + 213, + 213, + 213, + 213, + 336, + 84, + 324, + 324, + 48, + 286, + 286, + 286, + 397, + 48, + 48, + 259, + 48, + 223, + 223, + 48, + 48, + 84, + 208, + 71, + 81, + 109, + 109, + 109, + 336, + 336, + 109, + 109, + 273, + 0, + 0, + 127, + 7, + 138, + 138, + 138, + 138, + 14, + 14, + 14, + 14, + 14, + 351, + 351, + 14, + 152, + 152, + 152, + 152, + 152, + 152, + 175, + 175, + 201, + 374, + 374, + 14, + 14, + 350, + 350, + 51, + 131, + 57, + 57, + 204, + 204, + 218, + 218, + 223, + 223, + 223, + 223, + 82, + 9, + 97, + 393, + 393, + 23, + 23, + 23, + 23, + 43, + 64, + 47, + 160, + 8, + 244, + 178, + 227, + 227, + 246, + 300, + 361, + 304, + 231, + 231, + 231, + 304, + 246, + 254, + 344, + 305, + 305, + 360, + 360, + 296, + 296, + 310, + 211, + 368, + 310, + 310, + 133, + 0, + 74, + 74, + 289, + 173, + 173, + 258, + 258, + 258, + 258, + 258, + 258, + 246, + 256, + 256, + 153, + 248, + 248, + 228, + 242, + 242, + 242, + 242, + 242, + 204, + 204, + 356, + 356, + 356, + 362, + 362, + 362, + 362, + 362, + 105, + 105, + 359, + 2, + 2, + 58, + 81, + 223, + 386, + 62, + 322, + 322, + 62, + 62, + 62, + 62, + 187, + 187, + 62, + 62, + 346, + 346, + 288, + 62, + 62, + 62, + 62, + 126, + 243, + 182, + 182, + 182, + 182, + 161, + 128, + 9, + 378, + 378, + 378, + 332, + 332, + 125, + 205, + 384, + 277, + 170, + 170, + 170, + 170, + 166, + 277, + 303, + 303, + 303, + 303, + 303, + 294, + 147, + 147, + 287, + 11, + 11, + 58, + 130, + 130, + 386, + 130, + 0, + 0, + 16, + 137, + 141, + 185, + 185, + 185, + 185, + 208, + 238, + 302, + 302, + 395, + 395, + 395, + 395, + 180, + 375, + 376, + 373, + 373, + 341, + 341, + 175, + 263, + 263, + 341, + 333, + 16, + 20, + 20, + 20, + 20, + 20, + 20, + 109, + 216, + 216, + 193, + 86, + 86, + 22, + 22, + 22, + 156, + 156, + 274, + 274, + 274, + 274, + 274, + 341, + 341, + 341, + 245, + 245, + 341, + 341, + 341, + 341, + 348, + 163, + 348, + 279, + 325, + 41, + 141, + 141, + 384, + 57, + 57, + 44, + 44, + 47, + 47, + 14, + 14, + 106, + 132, + 125, + 252, + 253, + 253, + 253, + 246, + 246, + 149, + 252, + 125, + 373, + 192, + 373, + 125, + 0, + 72, + 206, + 206, + 72, + 72, + 72, + 149, + 370, + 370, + 260, + 260, + 370, + 138, + 157, + 157, + 157, + 157, + 157, + 157, + 227, + 159, + 159, + 159, + 159, + 266, + 266, + 266, + 266, + 292, + 292, + 292, + 156, + 368, + 330, + 375, + 297, + 72, + 72, + 103, + 103, + 216, + 216, + 201, + 201, + 260, + 260, + 358, + 358, + 358, + 400, + 400, + 400, + 400, + 103, + 140, + 103, + 103, + 27, + 27, + 27, + 76, + 14, + 14, + 28, + 28, + 76, + 215, + 59, + 10, + 8, + 8, + 352, + 7, + 353, + 7, + 0, + 0, + 81, + 81, + 108, + 9, + 161, + 161, + 36, + 136, + 136, + 200, + 155, + 155, + 155, + 308, + 390, + 390, + 389, + 389, + 224, + 226, + 389, + 12, + 261, + 335, + 131, + 207, + 215, + 6, + 154, + 352, + 38, + 359, + 38, + 38, + 38, + 38, + 38, + 98, + 98, + 98, + 188, + 139, + 289, + 289, + 289, + 289, + 199, + 199, + 247, + 247, + 174, + 174, + 253, + 253, + 253, + 156, + 213, + 213, + 228, + 228, + 244, + 244, + 145, + 145, + 145, + 135, + 135, + 135, + 141, + 382, + 382, + 382, + 382, + 381, + 289, + 397, + 397, + 397, + 352, + 352, + 82, + 273, + 273, + 273, + 16, + 52, + 52, + 130, + 130, + 338, + 75, + 75, + 145, + 124, + 77, + 33, + 395, + 33, + 142, + 380, + 134, + 134, + 134, + 14, + 14, + 14, + 180, + 14, + 125, + 125, + 131, + 131, + 49, + 123, + 123, + 123, + 125, + 125, + 83, + 83, + 109, + 86, + 82, + 82, + 82, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 244, + 244, + 282, + 282, + 297, + 297, + 297, + 297, + 297, + 381, + 271, + 279, + 279, + 42, + 163, + 42, + 49, + 168, + 168, + 135, + 233, + 233, + 233, + 233, + 380, + 380, + 343, + 246, + 246, + 234, + 232, + 232, + 250, + 165, + 22, + 22, + 15, + 51, + 115, + 115, + 203, + 203, + 247, + 247, + 165, + 165, + 165, + 165, + 262, + 318, + 318, + 276, + 276, + 286, + 141, + 235, + 272, + 115, + 32, + 357, + 357, + 22, + 22, + 91, + 91, + 91, + 234, + 91, + 79, + 79, + 144, + 144, + 144, + 144, + 144, + 180, + 180, + 204, + 103, + 103, + 103, + 103, + 103, + 277, + 46, + 144, + 144, + 114, + 226, + 226, + 68, + 68, + 65, + 65, + 196, + 196, + 196, + 121, + 121, + 333, + 333, + 333, + 333, + 271, + 283, + 283, + 43, + 108, + 108, + 114, + 114, + 21, + 368, + 368, + 354, + 162, + 208, + 354, + 187, + 354, + 21, + 323, + 360, + 145, + 145, + 145, + 145, + 258, + 258, + 258, + 258, + 151, + 360, + 341, + 341, + 186, + 186, + 186, + 186, + 186, + 218, + 218, + 250, + 341, + 341, + 390, + 400, + 400, + 312, + 317, + 320, + 320, + 99, + 375, + 102, + 102, + 102, + 102, + 200, + 66, + 66, + 49, + 49, + 49, + 49, + 49, + 30, + 242, + 154, + 154, + 154, + 348, + 7, + 2, + 200, + 2, + 203, + 203, + 203, + 303, + 303, + 146, + 242, + 303, + 358, + 312, + 364, + 364, + 364, + 364, + 182, + 182, + 364, + 257, + 376, + 376, + 376, + 343, + 343, + 318, + 397, + 397, + 397, + 400, + 2, + 2, + 2, + 109, + 109, + 109, + 109, + 65, + 38, + 38, + 102, + 299, + 299, + 337, + 337, + 337, + 339, + 339, + 262, + 223, + 274, + 51, + 51, + 51, + 61, + 86, + 84, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 191, + 191, + 191, + 191, + 241, + 246, + 246, + 246, + 58, + 58, + 365, + 365, + 79, + 79, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 161, + 88, + 5, + 5, + 5, + 5, + 5, + 5, + 247, + 247, + 192, + 192, + 350, + 350, + 350, + 331, + 314, + 197, + 197, + 197, + 221, + 221, + 221, + 221, + 380, + 257, + 257, + 257, + 380, + 380, + 385, + 163, + 163, + 36, + 151, + 278, + 204, + 204, + 204, + 204, + 204, + 204, + 204, + 278, + 341, + 341, + 36, + 36, + 69, + 73, + 90, + 90, + 15, + 3, + 3, + 3, + 60, + 239, + 291, + 291, + 81, + 81, + 125, + 15, + 134, + 134, + 134, + 134, + 134, + 134, + 209, + 174, + 213, + 365, + 125, + 147, + 253, + 125, + 163, + 163, + 163, + 125, + 290, + 290, + 290, + 369, + 262, + 262, + 369, + 369, + 125, + 244, + 96, + 122, + 122, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 213, + 395, + 395, + 65, + 17, + 17, + 264, + 80, + 158, + 61, + 61, + 58, + 58, + 150, + 150, + 379, + 379, + 379, + 58, + 140, + 58, + 62, + 289, + 62, + 154, + 154, + 373, + 62, + 12, + 62, + 302, + 302, + 23, + 111, + 1, + 1, + 47, + 90, + 233, + 233, + 233, + 218, + 308, + 308, + 308, + 308, + 308, + 272, + 272, + 293, + 293, + 90, + 290, + 290, + 57, + 110, + 137, + 191, + 154, + 154, + 154, + 154, + 393, + 393, + 195, + 195, + 227, + 227, + 393, + 352, + 352, + 350, + 320, + 320, + 320, + 320, + 320, + 227, + 227, + 320, + 320, + 239, + 239, + 239, + 170, + 170, + 170, + 200, + 28, + 28, + 89, + 55, + 315, + 315, + 315, + 55, + 55, + 55, + 55, + 311, + 180, + 180, + 180, + 180, + 180, + 180, + 264, + 264, + 264, + 138, + 266, + 226, + 311, + 321, + 302, + 302, + 302, + 302, + 302, + 155, + 155, + 155, + 253, + 373, + 373, + 227, + 227, + 227, + 227, + 194, + 194, + 194, + 256, + 199, + 199, + 270, + 270, + 399, + 295, + 295, + 295, + 295, + 327, + 330, + 330, + 330, + 330, + 342, + 282, + 282, + 282, + 71, + 71, + 10, + 10, + 81, + 353, + 81, + 81, + 81, + 81, + 81, + 81, + 104, + 111, + 125, + 154, + 154, + 154, + 154, + 125, + 259, + 312, + 15, + 247, + 15, + 103, + 99, + 84, + 80, + 384, + 384, + 350, + 350, + 378, + 378, + 146, + 378, + 274, + 245, + 245, + 245, + 245, + 245, + 80, + 80, + 86, + 86, + 86, + 352, + 352, + 86, + 86, + 86, + 53, + 215, + 41, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.py new file mode 100644 index 0000000000..26e65470e8 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_3flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 3 flows.""" + build(3, False).emit() \ No newline at end of file diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.expect new file mode 100644 index 0000000000..11f6400d58 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 330, + 329, + 329, + 310, + 275, + 243, + 203, + 203, + 203, + 121, + 291, + 256, + 121, + 268, + 354, + 354, + 380, + 307, + 262, + 80, + 130, + 130, + 130, + 363, + 388, + 388, + 40, + 40, + 40, + 40, + 40, + 40, + 242, + 242, + 325, + 242, + 299, + 299, + 243, + 243, + 243, + 287, + 287, + 287, + 287, + 106, + 106, + 321, + 61, + 176, + 125, + 95, + 95, + 95, + 306, + 306, + 306, + 296, + 296, + 125, + 205, + 205, + 145, + 145, + 309, + 145, + 83, + 83, + 83, + 145, + 79, + 341, + 341, + 341, + 212, + 171, + 215, + 215, + 125, + 318, + 318, + 318, + 318, + 318, + 238, + 221, + 216, + 216, + 216, + 133, + 306, + 80, + 80, + 221, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 231, + 168, + 11, + 241, + 241, + 241, + 168, + 312, + 312, + 98, + 98, + 12, + 12, + 12, + 12, + 12, + 314, + 314, + 314, + 366, + 12, + 12, + 12, + 12, + 12, + 12, + 330, + 330, + 330, + 330, + 330, + 330, + 330, + 12, + 12, + 12, + 12, + 372, + 82, + 3, + 3, + 3, + 3, + 378, + 378, + 69, + 69, + 69, + 69, + 36, + 60, + 323, + 323, + 82, + 281, + 391, + 90, + 90, + 300, + 254, + 216, + 238, + 293, + 293, + 253, + 253, + 219, + 251, + 251, + 251, + 251, + 21, + 251, + 267, + 219, + 219, + 250, + 250, + 250, + 250, + 250, + 305, + 305, + 318, + 318, + 66, + 332, + 332, + 332, + 332, + 66, + 66, + 343, + 343, + 343, + 66, + 98, + 98, + 98, + 90, + 21, + 0, + 0, + 76, + 76, + 203, + 308, + 356, + 356, + 356, + 356, + 356, + 354, + 354, + 354, + 354, + 354, + 354, + 346, + 346, + 346, + 346, + 346, + 346, + 306, + 306, + 306, + 306, + 306, + 89, + 89, + 203, + 11, + 11, + 290, + 290, + 276, + 209, + 209, + 217, + 217, + 217, + 220, + 220, + 246, + 181, + 181, + 181, + 167, + 167, + 167, + 167, + 374, + 310, + 18, + 208, + 208, + 208, + 208, + 208, + 297, + 297, + 297, + 91, + 297, + 167, + 162, + 81, + 81, + 388, + 378, + 162, + 162, + 310, + 310, + 310, + 310, + 310, + 332, + 332, + 332, + 162, + 162, + 95, + 95, + 303, + 303, + 303, + 95, + 177, + 400, + 400, + 400, + 63, + 63, + 255, + 86, + 177, + 177, + 183, + 300, + 150, + 6, + 6, + 150, + 150, + 150, + 129, + 119, + 151, + 359, + 351, + 256, + 256, + 256, + 278, + 400, + 113, + 113, + 170, + 223, + 161, + 238, + 222, + 222, + 183, + 183, + 332, + 380, + 380, + 45, + 220, + 220, + 109, + 301, + 301, + 301, + 301, + 301, + 269, + 312, + 312, + 323, + 323, + 397, + 397, + 54, + 41, + 41, + 41, + 248, + 252, + 252, + 252, + 252, + 296, + 109, + 218, + 218, + 87, + 120, + 191, + 7, + 7, + 162, + 162, + 162, + 162, + 162, + 120, + 227, + 227, + 157, + 180, + 380, + 180, + 103, + 12, + 12, + 121, + 255, + 255, + 255, + 154, + 154, + 367, + 367, + 367, + 367, + 286, + 286, + 8, + 8, + 8, + 40, + 337, + 41, + 41, + 286, + 201, + 154, + 182, + 165, + 195, + 144, + 195, + 195, + 310, + 310, + 195, + 195, + 195, + 36, + 36, + 36, + 36, + 36, + 195, + 152, + 51, + 128, + 198, + 198, + 198, + 198, + 149, + 149, + 154, + 154, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 244, + 127, + 101, + 240, + 83, + 165, + 256, + 30, + 30, + 30, + 256, + 256, + 256, + 256, + 362, + 362, + 256, + 164, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 382, + 14, + 123, + 123, + 142, + 122, + 82, + 321, + 321, + 92, + 181, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 348, + 387, + 43, + 43, + 43, + 327, + 80, + 237, + 237, + 237, + 206, + 206, + 206, + 206, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 79, + 79, + 79, + 207, + 338, + 207, + 207, + 143, + 143, + 143, + 366, + 13, + 217, + 281, + 315, + 315, + 3, + 3, + 157, + 374, + 353, + 51, + 51, + 51, + 51, + 157, + 157, + 157, + 157, + 105, + 241, + 241, + 105, + 105, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 0, + 0, + 243, + 243, + 243, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 2, + 119, + 135, + 209, + 135, + 333, + 240, + 240, + 208, + 208, + 74, + 74, + 347, + 347, + 347, + 347, + 360, + 361, + 361, + 361, + 348, + 339, + 339, + 339, + 74, + 42, + 81, + 360, + 360, + 360, + 363, + 363, + 81, + 85, + 255, + 9, + 9, + 382, + 398, + 398, + 9, + 59, + 223, + 223, + 223, + 223, + 382, + 382, + 382, + 40, + 30, + 30, + 30, + 30, + 316, + 316, + 320, + 393, + 256, + 256, + 256, + 71, + 256, + 213, + 26, + 26, + 260, + 203, + 325, + 325, + 325, + 64, + 64, + 309, + 64, + 64, + 64, + 64, + 223, + 223, + 235, + 235, + 282, + 235, + 249, + 249, + 257, + 257, + 299, + 299, + 92, + 92, + 239, + 256, + 256, + 24, + 206, + 206, + 189, + 254, + 254, + 305, + 305, + 189, + 109, + 144, + 175, + 107, + 188, + 188, + 194, + 313, + 194, + 194, + 194, + 87, + 86, + 86, + 201, + 260, + 149, + 168, + 168, + 168, + 184, + 379, + 34, + 184, + 320, + 320, + 320, + 184, + 16, + 16, + 222, + 101, + 101, + 101, + 215, + 101, + 20, + 20, + 95, + 101, + 101, + 316, + 101, + 101, + 101, + 132, + 132, + 312, + 55, + 76, + 76, + 76, + 76, + 132, + 132, + 181, + 154, + 154, + 105, + 33, + 105, + 112, + 112, + 313, + 313, + 313, + 98, + 98, + 141, + 108, + 108, + 108, + 13, + 13, + 304, + 13, + 331, + 301, + 301, + 287, + 142, + 121, + 346, + 88, + 7, + 272, + 17, + 17, + 17, + 17, + 272, + 239, + 239, + 226, + 226, + 121, + 121, + 52, + 128, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 77, + 213, + 213, + 159, + 292, + 292, + 292, + 292, + 292, + 386, + 386, + 292, + 206, + 206, + 238, + 147, + 147, + 187, + 364, + 75, + 87, + 237, + 237, + 40, + 179, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 295, + 394, + 394, + 394, + 394, + 392, + 16, + 16, + 75, + 295, + 295, + 234, + 394, + 394, + 394, + 234, + 234, + 234, + 219, + 219, + 343, + 321, + 321, + 35, + 190, + 166, + 200, + 200, + 175, + 175, + 175, + 175, + 175, + 175, + 150, + 192, + 192, + 192, + 306, + 306, + 306, + 53, + 255, + 255, + 255, + 233, + 362, + 113, + 113, + 144, + 161, + 161, + 323, + 323, + 331, + 72, + 72, + 37, + 309, + 309, + 37, + 92, + 0, + 86, + 222, + 266, + 266, + 308, + 266, + 266, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 242, + 354, + 354, + 354, + 354, + 45, + 242, + 242, + 50, + 242, + 242, + 274, + 269, + 269, + 299, + 299, + 51, + 51, + 77, + 21, + 299, + 299, + 267, + 321, + 321, + 267, + 190, + 190, + 0, + 324, + 0, + 46, + 86, + 365, + 365, + 365, + 365, + 86, + 99, + 99, + 99, + 99, + 99, + 99, + 238, + 362, + 299, + 299, + 190, + 287, + 380, + 287, + 370, + 370, + 220, + 220, + 220, + 197, + 197, + 197, + 173, + 173, + 181, + 319, + 319, + 319, + 319, + 181, + 113, + 113, + 154, + 132, + 150, + 212, + 212, + 167, + 167, + 167, + 160, + 127, + 127, + 297, + 297, + 397, + 397, + 397, + 386, + 386, + 386, + 293, + 281, + 142, + 23, + 222, + 237, + 237, + 237, + 162, + 162, + 162, + 162, + 162, + 174, + 150, + 128, + 313, + 128, + 148, + 40, + 148, + 186, + 186, + 312, + 312, + 312, + 312, + 312, + 312, + 97, + 97, + 97, + 97, + 324, + 97, + 68, + 29, + 323, + 29, + 29, + 46, + 293, + 264, + 320, + 32, + 32, + 32, + 32, + 14, + 14, + 272, + 69, + 69, + 69, + 70, + 72, + 272, + 170, + 170, + 170, + 365, + 365, + 365, + 338, + 338, + 358, + 358, + 358, + 358, + 358, + 91, + 333, + 91, + 23, + 170, + 170, + 165, + 165, + 165, + 165, + 261, + 261, + 87, + 87, + 261, + 79, + 79, + 218, + 218, + 218, + 218, + 165, + 179, + 129, + 129, + 67, + 154, + 132, + 275, + 297, + 297, + 185, + 185, + 185, + 299, + 299, + 186, + 101, + 46, + 339, + 339, + 339, + 339, + 85, + 226, + 92, + 92, + 226, + 226, + 255, + 117, + 117, + 155, + 155, + 109, + 167, + 188, + 188, + 132, + 132, + 132, + 132, + 132, + 79, + 132, + 11, + 332, + 11, + 304, + 304, + 330, + 63, + 63, + 260, + 231, + 231, + 280, + 184, + 186, + 186, + 160, + 170, + 170, + 158, + 158, + 97, + 97, + 97, + 155, + 178, + 178, + 199, + 125, + 155, + 155, + 155, + 122, + 122, + 150, + 150, + 150, + 397, + 397, + 63, + 194, + 194, + 304, + 304, + 339, + 80, + 80, + 80, + 71, + 298, + 295, + 74, + 327, + 327, + 327, + 295, + 295, + 285, + 318, + 57, + 57, + 75, + 62, + 62, + 62, + 32, + 32, + 214, + 214, + 264, + 43, + 43, + 43, + 398, + 398, + 398, + 398, + 43, + 43, + 310, + 310, + 43, + 3, + 3, + 3, + 26, + 351, + 351, + 274, + 351, + 351, + 55, + 272, + 272, + 272, + 202, + 202, + 202, + 194, + 58, + 314, + 323, + 83, + 288, + 288, + 288, + 194, + 194, + 194, + 128, + 128, + 71, + 71, + 339, + 349, + 349, + 65, + 65, + 128, + 128, + 128, + 128, + 167, + 195, + 9, + 9, + 195, + 195, + 173, + 80, + 173, + 173, + 173, + 118, + 118, + 118, + 235, + 235, + 236, + 110, + 110, + 110, + 110, + 372, + 372, + 353, + 353, + 353, + 304, + 304, + 304, + 350, + 74, + 49, + 49, + 49, + 34, + 34, + 34, + 34, + 245, + 110, + 186, + 186, + 26, + 26, + 158, + 120, + 171, + 192, + 164, + 266, + 266, + 266, + 266, + 239, + 164, + 164, + 164, + 164, + 291, + 318, + 318, + 318, + 318, + 357, + 49, + 49, + 49, + 49, + 43, + 291, + 291, + 291, + 291, + 291, + 136, + 136, + 136, + 136, + 136, + 119, + 22, + 22, + 22, + 22, + 8, + 178, + 178, + 300, + 300, + 300, + 300, + 208, + 134, + 57, + 57, + 134, + 134, + 134, + 124, + 148, + 131, + 131, + 28, + 325, + 28, + 22, + 22, + 129, + 129, + 129, + 129, + 145, + 148, + 160, + 142, + 142, + 102, + 102, + 216, + 102, + 201, + 44, + 44, + 121, + 340, + 340, + 340, + 340, + 340, + 67, + 67, + 67, + 141, + 141, + 361, + 393, + 393, + 334, + 334, + 334, + 48, + 48, + 15, + 15, + 246, + 91, + 237, + 245, + 245, + 99, + 295, + 384, + 384, + 384, + 384, + 384, + 324, + 324, + 324, + 390, + 333, + 295, + 275, + 299, + 299, + 187, + 122, + 254, + 198, + 66, + 198, + 103, + 10, + 10, + 298, + 298, + 398, + 398, + 298, + 317, + 317, + 320, + 320, + 320, + 325, + 325, + 344, + 237, + 367, + 367, + 367, + 367, + 367, + 367, + 74, + 92, + 382, + 395, + 92, + 20, + 20, + 14, + 14, + 245, + 267, + 378, + 267, + 267, + 267, + 267, + 51, + 51, + 51, + 23, + 213, + 287, + 241, + 241, + 241, + 241, + 241, + 271, + 271, + 271, + 271, + 102, + 337, + 337, + 231, + 231, + 277, + 394, + 394, + 394, + 5, + 5, + 5, + 246, + 74, + 309, + 246, + 246, + 278, + 278, + 278, + 278, + 291, + 291, + 291, + 291, + 83, + 291, + 102, + 311, + 397, + 102, + 164, + 150, + 15, + 374, + 330, + 15, + 88, + 367, + 350, + 88, + 203, + 150, + 150, + 150, + 190, + 180, + 114, + 114, + 378, + 378, + 314, + 23, + 23, + 336, + 336, + 23, + 23, + 63, + 63, + 63, + 52, + 4, + 4, + 4, + 4, + 347, + 37, + 37, + 60, + 60, + 60, + 279, + 279, + 279, + 279, + 246, + 246, + 246, + 114, + 114, + 143, + 153, + 155, + 155, + 155, + 200, + 200, + 124, + 124, + 318, + 318, + 318, + 233, + 233, + 286, + 155, + 149, + 194, + 194, + 194, + 334, + 102, + 102, + 102, + 156, + 107, + 24, + 24, + 24, + 107, + 361, + 361, + 211, + 185, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 396, + 160, + 160, + 160, + 353, + 353, + 160, + 78, + 160, + 76, + 15, + 15, + 313, + 313, + 313, + 23, + 82, + 98, + 15, + 333, + 333, + 333, + 219, + 219, + 1, + 219, + 219, + 219, + 219, + 276, + 166, + 166, + 166, + 166, + 174, + 174, + 391, + 391, + 391, + 100, + 100, + 6, + 62, + 132, + 191, + 226, + 284, + 191, + 191, + 53, + 233, + 233, + 151, + 278, + 278, + 181, + 181, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 317, + 317, + 317, + 317, + 3, + 4, + 346, + 346, + 346, + 346, + 346, + 346, + 4, + 23, + 19, + 19, + 150, + 123, + 61, + 375, + 375, + 370, + 370, + 61, + 61, + 294, + 294, + 15, + 207, + 207, + 207, + 178, + 178, + 138, + 138, + 138, + 138, + 138, + 138, + 138, + 366, + 366, + 366, + 366, + 325, + 325, + 325, + 385, + 385, + 89, + 89, + 89, + 365, + 375, + 325, + 89, + 89, + 67, + 397, + 397, + 397, + 380, + 37, + 37, + 376, + 319, + 382, + 345, + 345, + 345, + 350, + 350, + 365, + 37, + 37, + 37, + 37, + 37, + 37, + 37, + 37, + 37, + 89, + 89, + 89, + 89, + 56, + 56, + 63, + 14, + 330, + 93, + 93, + 5, + 5, + 86, + 86, + 86, + 52, + 360, + 360, + 360, + 360, + 302, + 52, + 69, + 69, + 30, + 27, + 27, + 27, + 368, + 398, + 203, + 203, + 290, + 216, + 216, + 217, + 360, + 360, + 309, + 309, + 71, + 81, + 86, + 367, + 367, + 367, + 367, + 352, + 228, + 94, + 341, + 341, + 341, + 94, + 9, + 9, + 9, + 222, + 233, + 233, + 231, + 231, + 208, + 335, + 335, + 335, + 335, + 335, + 341, + 341, + 341, + 341, + 341, + 301, + 26, + 208, + 304, + 304, + 97, + 97, + 97, + 97, + 293, + 293, + 293, + 293, + 224, + 260, + 292, + 208, + 336, + 296, + 135, + 130, + 130, + 130, + 130, + 130, + 36, + 36, + 115, + 111, + 394, + 394, + 394, + 98, + 394, + 394, + 367, + 367, + 371, + 98, + 0, + 253, + 253, + 276, + 123, + 65, + 65, + 65, + 65, + 65, + 65, + 101, + 99, + 30, + 30, + 391, + 47, + 360, + 236, + 236, + 101, + 105, + 105, + 311, + 362, + 362, + 338, + 131, + 131, + 131, + 141, + 165, + 375, + 174, + 174, + 174, + 174, + 141, + 277, + 277, + 141, + 112, + 230, + 230, + 230, + 49, + 49, + 49, + 34, + 233, + 225, + 201, + 201, + 194, + 215, + 91, + 91, + 91, + 378, + 378, + 400, + 400, + 61, + 61, + 73, + 73, + 263, + 17, + 17, + 17, + 111, + 198, + 198, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 325, + 325, + 87, + 155, + 155, + 155, + 155, + 120, + 106, + 222, + 322, + 222, + 222, + 222, + 222, + 382, + 18, + 18, + 18, + 28, + 28, + 28, + 36, + 222, + 222, + 222, + 222, + 222, + 222, + 231, + 297, + 297, + 106, + 106, + 367, + 152, + 196, + 106, + 117, + 117, + 106, + 80, + 308, + 308, + 308, + 80, + 80, + 80, + 80, + 80, + 80, + 31, + 290, + 235, + 350, + 350, + 119, + 137, + 137, + 137, + 117, + 117, + 117, + 117, + 117, + 124, + 389, + 389, + 41, + 41, + 394, + 394, + 376, + 376, + 302, + 302, + 309, + 263, + 26, + 263, + 252, + 252, + 252, + 12, + 12, + 12, + 260, + 124, + 384, + 124, + 124, + 197, + 197, + 108, + 381, + 381, + 381, + 12, + 12, + 290, + 202, + 236, + 358, + 276, + 276, + 276, + 387, + 387, + 388, + 276, + 276, + 207, + 108, + 155, + 155, + 149, + 118, + 118, + 246, + 386, + 93, + 69, + 69, + 343, + 69, + 246, + 246, + 246, + 296, + 397, + 76, + 76, + 231, + 231, + 231, + 231, + 80, + 336, + 336, + 355, + 226, + 218, + 123, + 23, + 23, + 23, + 23, + 186, + 360, + 360, + 360, + 360, + 17, + 17, + 17, + 17, + 17, + 182, + 182, + 125, + 177, + 299, + 299, + 92, + 299, + 366, + 366, + 299, + 299, + 96, + 96, + 10, + 10, + 10, + 10, + 10, + 211, + 211, + 379, + 211, + 119, + 61, + 119, + 119, + 342, + 342, + 210, + 210, + 210, + 210, + 210, + 210, + 53, + 271, + 271, + 119, + 394, + 394, + 119, + 187, + 187, + 187, + 101, + 105, + 105, + 105, + 118, + 118, + 118, + 125, + 230, + 230, + 230, + 353, + 25, + 25, + 41, + 68, + 68, + 319, + 331, + 68, + 365, + 365, + 68, + 68, + 57, + 222, + 222, + 222, + 335, + 335, + 335, + 148, + 138, + 138, + 138, + 138, + 167, + 146, + 86, + 130, + 115, + 112, + 159, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 372, + 372, + 29, + 272, + 208, + 355, + 355, + 208, + 220, + 391, + 159, + 104, + 104, + 382, + 382, + 382, + 382, + 97, + 97, + 123, + 158, + 158, + 105, + 105, + 262, + 218, + 366, + 218, + 16, + 16, + 383, + 16, + 67, + 81, + 340, + 340, + 16, + 16, + 16, + 295, + 246, + 88, + 88, + 88, + 88, + 373, + 373, + 373, + 373, + 373, + 260, + 51, + 250, + 253, + 113, + 159, + 159, + 159, + 124, + 193, + 152, + 189, + 189, + 198, + 198, + 198, + 131, + 25, + 25, + 25, + 198, + 250, + 32, + 73, + 73, + 73, + 69, + 386, + 69, + 198, + 344, + 270, + 249, + 249, + 233, + 233, + 233, + 233, + 300, + 117, + 332, + 332, + 38, + 38, + 38, + 38, + 38, + 64, + 386, + 386, + 386, + 386, + 66, + 253, + 219, + 219, + 219, + 219, + 280, + 278, + 214, + 214, + 117, + 187, + 186, + 186, + 187, + 103, + 190, + 106, + 71, + 71, + 398, + 296, + 150, + 150, + 205, + 150, + 150, + 23, + 23, + 23, + 27, + 150, + 150, + 389, + 389, + 218, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 11, + 11, + 38, + 38, + 96, + 96, + 241, + 241, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 374, + 381, + 381, + 381, + 381, + 391, + 16, + 72, + 72, + 354, + 354, + 325, + 325, + 72, + 55, + 241, + 225, + 23, + 225, + 225, + 225, + 295, + 295, + 295, + 304, + 298, + 383, + 377, + 353, + 353, + 353, + 353, + 59, + 59, + 28, + 341, + 341, + 338, + 338, + 338, + 53, + 330, + 330, + 10, + 380, + 380, + 26, + 26, + 33, + 33, + 298, + 243, + 250, + 266, + 261, + 261, + 234, + 234, + 234, + 172, + 313, + 82, + 81, + 81, + 172, + 125, + 139, + 386, + 386, + 24, + 24, + 24, + 91, + 139, + 342, + 76, + 76, + 76, + 26, + 139, + 51, + 51, + 51, + 51, + 51, + 372, + 372, + 51, + 23, + 367, + 367, + 62, + 304, + 274, + 358, + 344, + 344, + 32, + 32, + 207, + 207, + 207, + 242, + 242, + 344, + 344, + 344, + 344, + 242, + 264, + 264, + 339, + 339, + 339, + 264, + 359, + 359, + 139, + 139, + 251, + 308, + 308, + 308, + 308, + 251, + 251, + 239, + 239, + 160, + 340, + 365, + 160, + 160, + 160, + 166, + 166, + 166, + 246, + 259, + 168, + 168, + 168, + 263, + 263, + 251, + 168, + 135, + 135, + 91, + 135, + 204, + 204, + 258, + 147, + 147, + 147, + 194, + 139, + 139, + 172, + 179, + 161, + 161, + 165, + 114, + 124, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 85, + 62, + 138, + 138, + 324, + 138, + 392, + 138, + 316, + 316, + 316, + 316, + 205, + 288, + 153, + 22, + 118, + 315, + 118, + 145, + 145, + 37, + 212, + 254, + 254, + 195, + 195, + 181, + 394, + 39, + 377, + 39, + 100, + 100, + 67, + 321, + 319, + 67, + 5, + 5, + 52, + 52, + 52, + 52, + 343, + 343, + 335, + 335, + 368, + 368, + 52, + 0, + 0, + 73, + 28, + 28, + 219, + 400, + 400, + 400, + 400, + 78, + 78, + 217, + 217, + 348, + 16, + 217, + 9, + 217, + 217, + 265, + 223, + 223, + 67, + 67, + 67, + 67, + 38, + 38, + 223, + 286, + 287, + 229, + 34, + 34, + 34, + 6, + 6, + 204, + 204, + 207, + 249, + 231, + 176, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 25, + 25, + 241, + 241, + 218, + 350, + 338, + 84, + 84, + 84, + 391, + 391, + 391, + 391, + 391, + 397, + 397, + 302, + 84, + 84, + 3, + 3, + 3, + 365, + 90, + 54, + 316, + 377, + 377, + 54, + 54, + 393, + 54, + 73, + 290, + 290, + 290, + 290, + 261, + 225, + 343, + 225, + 308, + 85, + 225, + 231, + 129, + 129, + 283, + 283, + 400, + 129, + 249, + 249, + 11, + 234, + 234, + 394, + 394, + 394, + 394, + 394, + 394, + 394, + 234, + 234, + 234, + 234, + 234, + 218, + 336, + 336, + 129, + 129, + 200, + 189, + 118, + 118, + 94, + 118, + 118, + 211, + 185, + 102, + 56, + 102, + 306, + 306, + 306, + 301, + 301, + 327, + 385, + 385, + 229, + 64, + 229, + 296, + 296, + 102, + 27, + 27, + 260, + 102, + 186, + 209, + 209, + 241, + 90, + 189, + 121, + 121, + 115, + 115, + 145, + 228, + 103, + 115, + 188, + 12, + 12, + 18, + 12, + 393, + 393, + 393, + 314, + 314, + 314, + 314, + 380, + 386, + 386, + 340, + 388, + 388, + 353, + 353, + 58, + 9, + 9, + 212, + 274, + 274, + 274, + 216, + 216, + 188, + 254, + 254, + 6, + 6, + 6, + 6, + 6, + 254, + 277, + 277, + 259, + 367, + 367, + 259, + 259, + 259, + 248, + 248, + 248, + 248, + 330, + 330, + 226, + 129, + 129, + 129, + 129, + 309, + 309, + 129, + 112, + 112, + 112, + 112, + 119, + 114, + 140, + 140, + 140, + 179, + 183, + 183, + 183, + 119, + 20, + 119, + 231, + 119, + 119, + 324, + 324, + 12, + 12, + 124, + 145, + 167, + 167, + 185, + 288, + 288, + 137, + 203, + 325, + 325, + 77, + 203, + 299, + 324, + 207, + 207, + 137, + 137, + 137, + 146, + 146, + 244, + 100, + 100, + 16, + 203, + 203, + 133, + 133, + 153, + 141, + 166, + 31, + 17, + 17, + 245, + 245, + 375, + 245, + 245, + 333, + 333, + 333, + 166, + 273, + 273, + 104, + 193, + 193, + 193, + 241, + 241, + 333, + 348, + 67, + 67, + 67, + 67, + 267, + 267, + 92, + 92, + 349, + 347, + 240, + 196, + 215, + 196, + 196, + 196, + 115, + 115, + 143, + 180, + 176, + 94, + 176, + 176, + 30, + 137, + 124, + 162, + 162, + 279, + 19, + 19, + 38, + 279, + 279, + 279, + 216, + 216, + 216, + 216, + 216, + 333, + 333, + 99, + 99, + 80, + 349, + 80, + 27, + 223, + 223, + 223, + 214, + 214, + 214, + 203, + 203, + 203, + 203, + 203, + 391, + 224, + 224, + 141, + 150, + 349, + 150, + 195, + 195, + 195, + 195, + 146, + 146, + 149, + 162, + 162, + 162, + 162, + 52, + 52, + 52, + 332, + 332, + 97, + 97, + 97, + 97, + 65, + 61, + 61, + 216, + 257, + 258, + 258, + 262, + 332, + 332, + 89, + 89, + 89, + 361, + 361, + 361, + 44, + 44, + 27, + 24, + 24, + 24, + 262, + 357, + 299, + 299, + 268, + 297, + 271, + 271, + 399, + 399, + 271, + 271, + 268, + 244, + 270, + 270, + 270, + 198, + 321, + 321, + 269, + 112, + 112, + 147, + 165, + 324, + 151, + 286, + 288, + 70, + 70, + 288, + 288, + 288, + 249, + 249, + 249, + 286, + 233, + 127, + 127, + 127, + 123, + 123, + 374, + 374, + 374, + 374, + 374, + 388, + 70, + 70, + 70, + 247, + 231, + 135, + 135, + 313, + 154, + 153, + 179, + 134, + 189, + 110, + 110, + 385, + 192, + 192, + 113, + 97, + 97, + 97, + 224, + 192, + 107, + 126, + 396, + 396, + 161, + 161, + 161, + 206, + 206, + 206, + 352, + 352, + 355, + 0, + 206, + 83, + 231, + 122, + 171, + 266, + 266, + 340, + 54, + 54, + 267, + 267, + 267, + 267, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 273, + 395, + 395, + 361, + 273, + 128, + 128, + 49, + 49, + 378, + 369, + 13, + 38, + 361, + 400, + 38, + 247, + 253, + 264, + 264, + 252, + 219, + 302, + 326, + 338, + 278, + 128, + 198, + 198, + 342, + 342, + 238, + 198, + 198, + 192, + 164, + 164, + 169, + 144, + 144, + 144, + 121, + 325, + 230, + 175, + 136, + 307, + 307, + 307, + 307, + 307, + 307, + 93, + 93, + 28, + 28, + 28, + 75, + 298, + 29, + 78, + 78, + 37, + 298, + 298, + 247, + 394, + 394, + 331, + 100, + 85, + 247, + 247, + 245, + 245, + 386, + 245, + 129, + 183, + 145, + 133, + 130, + 272, + 193, + 193, + 193, + 39, + 193, + 388, + 193, + 247, + 247, + 269, + 305, + 269, + 269, + 170, + 185, + 156, + 112, + 372, + 372, + 372, + 372, + 78, + 245, + 392, + 373, + 289, + 289, + 289, + 217, + 110, + 110, + 379, + 224, + 182, + 355, + 134, + 338, + 338, + 69, + 202, + 202, + 143, + 164, + 299, + 299, + 299, + 377, + 377, + 316, + 316, + 304, + 304, + 4, + 4, + 4, + 91, + 91, + 392, + 392, + 91, + 91, + 91, + 91, + 91, + 17, + 83, + 384, + 384, + 83, + 76, + 8, + 8, + 384, + 384, + 8, + 8, + 8, + 236, + 236, + 80, + 236, + 45, + 397, + 397, + 45, + 45, + 236, + 236, + 236, + 274, + 274, + 225, + 260, + 260, + 252, + 143, + 143, + 185, + 116, + 149, + 238, + 238, + 238, + 255, + 255, + 5, + 100, + 88, + 161, + 125, + 26, + 388, + 388, + 388, + 388, + 388, + 26, + 245, + 249, + 125, + 159, + 155, + 197, + 197, + 180, + 112, + 112, + 175, + 62, + 175, + 115, + 115, + 344, + 77, + 77, + 355, + 355, + 355, + 355, + 355, + 395, + 395, + 358, + 78, + 49, + 297, + 297, + 297, + 297, + 279, + 89, + 89, + 89, + 398, + 398, + 53, + 274, + 394, + 287, + 287, + 205, + 184, + 180, + 160, + 160, + 160, + 121, + 217, + 188, + 123, + 177, + 177, + 342, + 177, + 93, + 43, + 43, + 43, + 43, + 378, + 43, + 92, + 92, + 92, + 92, + 92, + 387, + 387, + 387, + 92, + 92, + 92, + 92, + 92, + 4, + 334, + 334, + 320, + 4, + 4, + 57, + 57, + 57, + 57, + 59, + 93, + 93, + 224, + 224, + 224, + 224, + 279, + 267, + 267, + 36, + 36, + 36, + 36, + 36, + 258, + 300, + 369, + 300, + 207, + 207, + 201, + 214, + 302, + 296, + 296, + 296, + 115, + 166, + 136, + 200, + 341, + 200, + 200, + 15, + 285, + 285, + 218, + 218, + 218, + 218, + 200, + 334, + 334, + 334, + 334, + 334, + 73, + 128, + 128, + 128, + 23, + 23, + 334, + 23, + 342, + 342, + 342, + 342, + 58, + 58, + 58, + 58, + 53, + 67, + 67, + 67, + 232, + 295, + 297, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 173, + 153, + 153, + 153, + 128, + 165, + 135, + 131, + 131, + 150, + 150, + 296, + 150, + 179, + 179, + 339, + 321, + 335, + 179, + 179, + 303, + 303, + 303, + 31, + 31, + 31, + 345, + 31, + 83, + 83, + 74, + 10, + 10, + 286, + 286, + 29, + 50, + 99, + 270, + 16, + 16, + 23, + 23, + 23, + 100, + 100, + 100, + 316, + 377, + 236, + 236, + 204, + 267, + 267, + 209, + 209, + 204, + 204, + 259, + 221, + 179, + 179, + 179, + 348, + 348, + 348, + 348, + 397, + 397, + 397, + 397, + 146, + 349, + 349, + 349, + 58, + 58, + 250, + 219, + 219, + 193, + 130, + 130, + 103, + 195, + 344, + 344, + 344, + 344, + 344, + 63, + 352, + 97, + 379, + 379, + 379, + 319, + 319, + 319, + 368, + 246, + 246, + 48, + 246, + 257, + 257, + 322, + 390, + 390, + 390, + 390, + 329, + 385, + 74, + 240, + 211, + 211, + 211, + 195, + 195, + 103, + 124, + 270, + 347, + 270, + 270, + 270, + 270, + 270, + 279, + 35, + 124, + 124, + 124, + 182, + 182, + 120, + 128, + 266, + 266, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 345, + 55, + 55, + 55, + 76, + 266, + 364, + 266, + 382, + 380, + 357, + 217, + 217, + 219, + 219, + 219, + 186, + 248, + 159, + 159, + 159, + 159, + 390, + 390, + 377, + 245, + 245, + 245, + 245, + 130, + 130, + 130, + 66, + 66, + 66, + 66, + 66, + 295, + 295, + 295, + 130, + 168, + 168, + 178, + 161, + 112, + 376, + 376, + 318, + 318, + 318, + 42, + 258, + 258, + 104, + 399, + 399, + 319, + 226, + 265, + 282, + 282, + 282, + 129, + 383, + 383, + 129, + 129, + 233, + 233, + 5, + 5, + 345, + 5, + 5, + 55, + 55, + 350, + 55, + 55, + 129, + 382, + 382, + 382, + 382, + 276, + 276, + 276, + 276, + 251, + 194, + 130, + 130, + 112, + 387, + 387, + 387, + 387, + 175, + 144, + 275, + 144, + 153, + 77, + 77, + 217, + 153, + 153, + 153, + 180, + 349, + 349, + 349, + 349, + 349, + 42, + 42, + 42, + 55, + 321, + 340, + 241, + 180, + 180, + 165, + 165, + 137, + 144, + 248, + 376, + 376, + 376, + 376, + 26, + 26, + 248, + 289, + 217, + 217, + 217, + 217, + 212, + 212, + 212, + 144, + 355, + 355, + 355, + 355, + 355, + 340, + 318, + 318, + 318, + 325, + 88, + 170, + 105, + 326, + 10, + 354, + 185, + 263, + 200, + 60, + 188, + 188, + 156, + 156, + 156, + 345, + 156, + 156, + 127, + 127, + 127, + 161, + 157, + 150, + 354, + 41, + 41, + 340, + 329, + 41, + 41, + 76, + 76, + 30, + 30, + 30, + 30, + 30, + 30, + 329, + 329, + 329, + 329, + 329, + 329, + 329, + 309, + 59, + 231, + 208, + 334, + 252, + 252, + 296, + 299, + 150, + 150, + 150, + 190, + 204, + 179, + 313, + 85, + 85, + 175, + 185, + 183, + 219, + 282, + 282, + 370, + 127, + 163, + 163, + 85, + 70, + 138, + 138, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 18, + 174, + 45, + 45, + 368, + 133, + 183, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 318, + 318, + 318, + 211, + 157, + 259, + 259, + 218, + 218, + 156, + 156, + 200, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 57, + 86, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 9, + 9, + 9, + 34, + 34, + 364, + 339, + 339, + 396, + 396, + 349, + 73, + 6, + 4, + 251, + 251, + 102, + 102, + 224, + 224, + 102, + 102, + 169, + 169, + 181, + 176, + 176, + 154, + 154, + 213, + 269, + 260, + 154, + 154, + 393, + 393, + 154, + 154, + 343, + 32, + 393, + 32, + 334, + 334, + 334, + 32, + 215, + 375, + 375, + 387, + 387, + 15, + 215, + 215, + 302, + 302, + 317, + 40, + 391, + 391, + 391, + 391, + 391, + 391, + 40, + 40, + 40, + 213, + 258, + 252, + 245, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 245, + 333, + 245, + 245, + 323, + 323, + 35, + 245, + 245, + 272, + 272, + 229, + 233, + 233, + 233, + 233, + 233, + 259, + 288, + 288, + 365, + 365, + 54, + 288, + 285, + 285, + 285, + 285, + 343, + 344, + 344, + 344, + 344, + 344, + 356, + 356, + 205, + 163, + 153, + 120, + 120, + 120, + 159, + 159, + 159, + 173, + 149, + 325, + 90, + 247, + 247, + 256, + 256, + 256, + 383, + 383, + 383, + 268, + 268, + 228, + 228, + 228, + 269, + 213, + 213, + 213, + 213, + 213, + 169, + 269, + 46, + 368, + 335, + 335, + 335, + 335, + 326, + 326, + 398, + 398, + 398, + 84, + 52, + 52, + 385, + 52, + 17, + 269, + 295, + 297, + 280, + 72, + 75, + 75, + 340, + 15, + 53, + 53, + 91, + 91, + 91, + 62, + 334, + 294, + 352, + 294, + 294, + 294, + 294, + 294, + 294, + 264, + 264, + 179, + 339, + 327, + 327, + 336, + 336, + 179, + 179, + 125, + 125, + 125, + 3, + 3, + 3, + 250, + 125, + 66, + 345, + 345, + 345, + 345, + 345, + 345, + 345, + 252, + 252, + 252, + 252, + 252, + 266, + 125, + 158, + 351, + 351, + 274, + 274, + 61, + 22, + 274, + 350, + 69, + 69, + 69, + 69, + 69, + 274, + 274, + 274, + 230, + 279, + 213, + 241, + 182, + 154, + 54, + 154, + 289, + 64, + 64, + 130, + 130, + 130, + 130, + 310, + 310, + 310, + 310, + 51, + 51, + 26, + 363, + 67, + 232, + 232, + 68, + 232, + 232, + 144, + 144, + 187, + 144, + 63, + 144, + 111, + 45, + 70, + 70, + 70, + 244, + 244, + 244, + 244, + 5, + 244, + 262, + 7, + 7, + 7, + 111, + 111, + 191, + 191, + 191, + 181, + 119, + 327, + 327, + 327, + 327, + 327, + 92, + 92, + 267, + 377, + 119, + 19, + 19, + 19, + 126, + 126, + 126, + 126, + 103, + 104, + 155, + 378, + 155, + 246, + 339, + 339, + 246, + 386, + 155, + 193, + 211, + 355, + 355, + 355, + 193, + 395, + 193, + 34, + 193, + 169, + 164, + 147, + 140, + 131, + 131, + 110, + 110, + 231, + 231, + 200, + 109, + 109, + 95, + 95, + 95, + 95, + 47, + 47, + 47, + 209, + 209, + 209, + 109, + 26, + 109, + 109, + 109, + 146, + 146, + 126, + 164, + 63, + 63, + 164, + 94, + 235, + 235, + 235, + 164, + 164, + 197, + 25, + 25, + 224, + 224, + 224, + 224, + 224, + 161, + 142, + 183, + 183, + 183, + 175, + 179, + 179, + 146, + 270, + 146, + 87, + 87, + 146, + 146, + 229, + 229, + 146, + 199, + 281, + 33, + 33, + 33, + 22, + 281, + 273, + 273, + 156, + 207, + 156, + 100, + 100, + 100, + 100, + 101, + 119, + 154, + 99, + 156, + 393, + 393, + 393, + 393, + 393, + 23, + 23, + 23, + 23, + 23, + 37, + 203, + 226, + 179, + 108, + 115, + 346, + 346, + 346, + 25, + 25, + 25, + 25, + 25, + 383, + 383, + 25, + 316, + 316, + 316, + 82, + 281, + 240, + 115, + 115, + 115, + 15, + 86, + 86, + 340, + 115, + 115, + 375, + 375, + 375, + 375, + 61, + 113, + 115, + 121, + 121, + 121, + 376, + 121, + 230, + 121, + 135, + 135, + 294, + 294, + 85, + 83, + 10, + 83, + 354, + 354, + 354, + 83, + 83, + 97, + 151, + 317, + 151, + 151, + 151, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 318, + 364, + 364, + 364, + 47, + 96, + 96, + 206, + 364, + 14, + 14, + 206, + 206, + 341, + 240, + 240, + 240, + 240, + 160, + 155, + 190, + 190, + 190, + 190, + 329, + 69, + 69, + 283, + 164, + 164, + 59, + 390, + 390, + 326, + 306, + 306, + 306, + 312, + 312, + 331, + 331, + 331, + 331, + 352, + 352, + 352, + 352, + 352, + 41, + 93, + 216, + 216, + 216, + 275, + 343, + 37, + 37, + 37, + 37, + 37, + 37, + 8, + 288, + 230, + 172, + 172, + 224, + 224, + 239, + 172, + 164, + 218, + 164, + 164, + 186, + 186, + 186, + 336, + 186, + 186, + 180, + 180, + 180, + 94, + 54, + 54, + 1, + 39, + 197, + 212, + 177, + 376, + 385, + 55, + 55, + 224, + 309, + 309, + 322, + 322, + 351, + 4, + 4, + 4, + 4, + 325, + 39, + 39, + 208, + 5, + 275, + 335, + 275, + 275, + 137, + 179, + 152, + 182, + 182, + 388, + 388, + 389, + 389, + 389, + 322, + 322, + 322, + 322, + 322, + 63, + 63, + 63, + 63, + 63, + 247, + 247, + 247, + 238, + 238, + 206, + 345, + 345, + 374, + 374, + 374, + 374, + 374, + 374, + 63, + 42, + 372, + 206, + 345, + 345, + 204, + 204, + 242, + 32, + 137, + 181, + 184, + 336, + 336, + 0, + 187, + 28, + 28, + 141, + 282, + 56, + 56, + 307, + 307, + 94, + 282, + 228, + 254, + 141, + 292, + 228, + 228, + 310, + 297, + 283, + 283, + 241, + 205, + 205, + 277, + 277, + 101, + 191, + 191, + 261, + 89, + 273, + 220, + 191, + 114, + 185, + 185, + 343, + 343, + 343, + 255, + 255, + 185, + 164, + 142, + 142, + 109, + 123, + 123, + 123, + 123, + 352, + 270, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 244, + 164, + 164, + 361, + 198, + 180, + 182, + 182, + 182, + 81, + 81, + 182, + 357, + 357, + 357, + 357, + 352, + 352, + 352, + 389, + 389, + 389, + 339, + 383, + 342, + 21, + 79, + 33, + 33, + 95, + 238, + 298, + 298, + 282, + 282, + 349, + 349, + 341, + 341, + 56, + 56, + 56, + 56, + 319, + 56, + 56, + 75, + 75, + 75, + 7, + 7, + 282, + 297, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 77, + 238, + 310, + 310, + 360, + 238, + 222, + 222, + 222, + 222, + 222, + 222, + 55, + 89, + 241, + 10, + 298, + 154, + 196, + 136, + 136, + 136, + 136, + 340, + 340, + 54, + 5, + 361, + 361, + 361, + 334, + 334, + 307, + 307, + 307, + 307, + 307, + 307, + 342, + 342, + 342, + 2, + 2, + 43, + 43, + 234, + 313, + 74, + 74, + 376, + 376, + 376, + 234, + 234, + 255, + 24, + 24, + 267, + 267, + 261, + 231, + 231, + 231, + 217, + 223, + 223, + 269, + 269, + 269, + 269, + 269, + 221, + 220, + 298, + 298, + 298, + 96, + 24, + 7, + 7, + 7, + 360, + 399, + 399, + 399, + 212, + 262, + 288, + 288, + 288, + 202, + 207, + 90, + 90, + 307, + 299, + 327, + 299, + 32, + 32, + 299, + 342, + 342, + 65, + 380, + 65, + 210, + 266, + 252, + 328, + 252, + 6, + 256, + 256, + 256, + 256, + 136, + 197, + 111, + 120, + 107, + 82, + 82, + 24, + 24, + 230, + 186, + 186, + 164, + 164, + 148, + 194, + 104, + 115, + 115, + 115, + 115, + 115, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 390, + 390, + 390, + 91, + 158, + 176, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 229, + 165, + 165, + 297, + 133, + 85, + 189, + 40, + 40, + 40, + 271, + 135, + 135, + 170, + 170, + 170, + 170, + 122, + 215, + 122, + 142, + 142, + 142, + 288, + 288, + 288, + 142, + 198, + 106, + 86, + 363, + 363, + 86, + 122, + 16, + 16, + 16, + 242, + 242, + 242, + 281, + 281, + 281, + 272, + 372, + 372, + 122, + 122, + 386, + 122, + 122, + 122, + 284, + 122, + 389, + 277, + 315, + 43, + 293, + 293, + 214, + 214, + 235, + 235, + 258, + 373, + 258, + 258, + 258, + 258, + 213, + 343, + 105, + 78, + 105, + 105, + 105, + 188, + 189, + 103, + 103, + 195, + 301, + 347, + 245, + 229, + 195, + 73, + 120, + 120, + 194, + 194, + 18, + 18, + 18, + 310, + 310, + 18, + 376, + 18, + 328, + 328, + 328, + 328, + 328, + 396, + 379, + 379, + 18, + 83, + 345, + 209, + 209, + 209, + 256, + 236, + 14, + 236, + 236, + 390, + 187, + 286, + 286, + 286, + 147, + 32, + 32, + 32, + 32, + 32, + 32, + 204, + 286, + 352, + 49, + 49, + 359, + 286, + 286, + 286, + 217, + 109, + 109, + 320, + 320, + 320, + 320, + 320, + 330, + 330, + 330, + 330, + 31, + 346, + 96, + 96, + 222, + 185, + 185, + 185, + 185, + 189, + 296, + 330, + 119, + 119, + 119, + 173, + 254, + 339, + 339, + 254, + 254, + 173, + 162, + 162, + 161, + 81, + 194, + 10, + 10, + 10, + 194, + 37, + 37, + 37, + 37, + 37, + 245, + 319, + 319, + 319, + 319, + 253, + 148, + 148, + 200, + 123, + 194, + 189, + 189, + 189, + 368, + 57, + 348, + 81, + 81, + 18, + 18, + 19, + 19, + 258, + 189, + 54, + 54, + 359, + 359, + 359, + 359, + 359, + 201, + 189, + 188, + 129, + 287, + 338, + 17, + 363, + 340, + 340, + 287, + 369, + 381, + 315, + 287, + 287, + 287, + 243, + 47, + 47, + 47, + 47, + 47, + 47, + 351, + 351, + 351, + 351, + 351, + 351, + 76, + 85, + 243, + 129, + 157, + 149, + 149, + 149, + 122, + 122, + 122, + 122, + 16, + 16, + 300, + 372, + 372, + 372, + 372, + 303, + 303, + 303, + 332, + 309, + 309, + 309, + 309, + 309, + 309, + 363, + 363, + 122, + 259, + 259, + 167, + 167, + 167, + 167, + 146, + 229, + 229, + 229, + 229, + 229, + 307, + 146, + 256, + 334, + 385, + 385, + 256, + 234, + 296, + 146, + 146, + 146, + 146, + 131, + 128, + 142, + 130, + 182, + 153, + 153, + 153, + 115, + 362, + 49, + 49, + 49, + 173, + 167, + 110, + 195, + 352, + 352, + 129, + 46, + 173, + 173, + 217, + 217, + 217, + 371, + 371, + 371, + 371, + 217, + 217, + 12, + 12, + 12, + 217, + 372, + 346, + 346, + 9, + 9, + 9, + 48, + 91, + 36, + 12, + 173, + 173, + 173, + 195, + 399, + 219, + 219, + 219, + 219, + 219, + 219, + 286, + 256, + 256, + 256, + 256, + 242, + 242, + 265, + 54, + 54, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 54, + 265, + 265, + 265, + 238, + 238, + 355, + 238, + 238, + 270, + 126, + 329, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 0, + 213, + 303, + 303, + 303, + 303, + 156, + 156, + 104, + 104, + 396, + 396, + 396, + 258, + 203, + 203, + 203, + 382, + 203, + 203, + 171, + 133, + 185, + 177, + 342, + 342, + 342, + 342, + 342, + 370, + 389, + 246, + 106, + 57, + 169, + 169, + 304, + 304, + 169, + 275, + 275, + 79, + 79, + 243, + 296, + 351, + 351, + 397, + 28, + 169, + 161, + 283, + 283, + 283, + 161, + 161, + 182, + 11, + 11, + 11, + 11, + 68, + 182, + 162, + 162, + 199, + 161, + 209, + 301, + 19, + 374, + 374, + 374, + 374, + 55, + 252, + 252, + 174, + 81, + 81, + 182, + 182, + 189, + 54, + 54, + 54, + 175, + 175, + 219, + 65, + 65, + 175, + 286, + 330, + 330, + 34, + 395, + 395, + 85, + 13, + 13, + 13, + 13, + 13, + 377, + 334, + 0, + 0, + 0, + 98, + 260, + 260, + 253, + 101, + 169, + 363, + 347, + 354, + 354, + 354, + 354, + 354, + 354, + 47, + 75, + 75, + 75, + 266, + 220, + 169, + 122, + 122, + 170, + 84, + 170, + 115, + 130, + 130, + 67, + 67, + 67, + 53, + 131, + 326, + 171, + 171, + 165, + 380, + 380, + 76, + 76, + 76, + 76, + 21, + 59, + 194, + 194, + 397, + 397, + 379, + 42, + 260, + 201, + 353, + 336, + 328, + 269, + 269, + 209, + 134, + 134, + 134, + 187, + 386, + 386, + 386, + 386, + 389, + 389, + 389, + 352, + 75, + 251, + 251, + 243, + 243, + 243, + 243, + 243, + 243, + 264, + 264, + 180, + 331, + 180, + 180, + 193, + 397, + 397, + 273, + 19, + 191, + 36, + 191, + 191, + 136, + 136, + 136, + 136, + 136, + 136, + 123, + 165, + 165, + 190, + 190, + 142, + 142, + 158, + 108, + 389, + 142, + 142, + 142, + 171, + 283, + 283, + 283, + 283, + 365, + 365, + 365, + 365, + 365, + 283, + 262, + 284, + 284, + 246, + 246, + 246, + 324, + 324, + 171, + 324, + 324, + 324, + 324, + 324, + 265, + 264, + 264, + 338, + 264, + 171, + 9, + 9, + 29, + 29, + 83, + 83, + 293, + 171, + 98, + 160, + 130, + 130, + 90, + 90, + 397, + 397, + 397, + 26, + 26, + 356, + 3, + 3, + 80, + 7, + 229, + 247, + 322, + 322, + 7, + 7, + 7, + 7, + 65, + 247, + 234, + 234, + 234, + 170, + 102, + 102, + 150, + 366, + 92, + 92, + 148, + 148, + 148, + 109, + 109, + 150, + 212, + 322, + 74, + 74, + 91, + 212, + 152, + 36, + 152, + 321, + 152, + 320, + 4, + 4, + 153, + 263, + 146, + 23, + 23, + 116, + 161, + 161, + 365, + 365, + 92, + 102, + 310, + 310, + 310, + 350, + 224, + 131, + 131, + 131, + 105, + 105, + 105, + 397, + 295, + 295, + 317, + 317, + 317, + 356, + 324, + 295, + 105, + 150, + 150, + 150, + 159, + 159, + 295, + 295, + 159, + 108, + 138, + 138, + 138, + 178, + 118, + 344, + 344, + 344, + 363, + 236, + 211, + 211, + 35, + 35, + 211, + 385, + 385, + 211, + 211, + 266, + 118, + 118, + 151, + 3, + 151, + 318, + 40, + 40, + 40, + 123, + 113, + 349, + 349, + 355, + 16, + 16, + 347, + 347, + 221, + 292, + 92, + 303, + 303, + 92, + 292, + 292, + 292, + 321, + 321, + 321, + 321, + 208, + 208, + 208, + 239, + 239, + 225, + 225, + 253, + 253, + 235, + 353, + 38, + 235, + 235, + 235, + 149, + 149, + 138, + 72, + 72, + 294, + 111, + 152, + 129, + 129, + 129, + 129, + 142, + 104, + 226, + 387, + 226, + 171, + 130, + 176, + 95, + 95, + 95, + 237, + 176, + 11, + 11, + 350, + 350, + 11, + 320, + 320, + 320, + 385, + 11, + 11, + 11, + 29, + 29, + 29, + 2, + 2, + 176, + 176, + 102, + 4, + 22, + 102, + 102, + 102, + 155, + 155, + 126, + 126, + 126, + 126, + 31, + 387, + 80, + 80, + 11, + 86, + 203, + 203, + 203, + 230, + 230, + 230, + 176, + 92, + 90, + 176, + 176, + 152, + 152, + 152, + 327, + 152, + 152, + 170, + 170, + 170, + 122, + 87, + 87, + 87, + 87, + 0, + 72, + 93, + 353, + 93, + 99, + 99, + 298, + 335, + 335, + 335, + 335, + 335, + 335, + 382, + 382, + 382, + 382, + 382, + 298, + 77, + 77, + 77, + 77, + 236, + 278, + 278, + 297, + 337, + 337, + 40, + 40, + 40, + 235, + 267, + 377, + 377, + 377, + 41, + 210, + 321, + 321, + 321, + 337, + 337, + 337, + 337, + 327, + 327, + 327, + 327, + 340, + 1, + 66, + 21, + 21, + 223, + 223, + 223, + 243, + 243, + 284, + 284, + 284, + 279, + 239, + 283, + 283, + 283, + 50, + 50, + 50, + 50, + 28, + 48, + 99, + 99, + 99, + 99, + 373, + 373, + 99, + 77, + 77, + 77, + 77, + 25, + 265, + 37, + 265, + 322, + 216, + 69, + 353, + 69, + 69, + 254, + 254, + 244, + 244, + 244, + 375, + 336, + 86, + 122, + 64, + 64, + 64, + 55, + 55, + 74, + 207, + 241, + 273, + 273, + 79, + 79, + 79, + 348, + 273, + 216, + 237, + 237, + 122, + 122, + 101, + 101, + 182, + 182, + 285, + 285, + 285, + 342, + 285, + 2, + 208, + 128, + 219, + 334, + 334, + 334, + 334, + 219, + 219, + 213, + 213, + 71, + 71, + 71, + 71, + 61, + 61, + 15, + 15, + 128, + 128, + 128, + 126, + 126, + 176, + 176, + 176, + 392, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 378, + 378, + 247, + 247, + 152, + 152, + 258, + 258, + 258, + 135, + 192, + 192, + 185, + 185, + 196, + 226, + 177, + 194, + 166, + 36, + 5, + 100, + 100, + 100, + 100, + 100, + 100, + 29, + 163, + 163, + 292, + 25, + 25, + 292, + 292, + 292, + 163, + 259, + 348, + 163, + 163, + 163, + 188, + 188, + 188, + 138, + 138, + 161, + 16, + 121, + 171, + 137, + 137, + 197, + 161, + 161, + 22, + 22, + 22, + 4, + 4, + 161, + 197, + 197, + 118, + 118, + 146, + 123, + 84, + 84, + 84, + 117, + 117, + 88, + 88, + 393, + 363, + 363, + 63, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 355, + 355, + 56, + 56, + 56, + 56, + 206, + 214, + 214, + 371, + 371, + 371, + 371, + 258, + 169, + 254, + 378, + 378, + 378, + 224, + 224, + 97, + 97, + 97, + 224, + 224, + 292, + 292, + 292, + 216, + 216, + 292, + 5, + 298, + 298, + 36, + 36, + 36, + 91, + 298, + 298, + 223, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 251, + 384, + 384, + 384, + 384, + 196, + 298, + 298, + 196, + 196, + 196, + 196, + 196, + 397, + 88, + 88, + 88, + 211, + 211, + 146, + 317, + 317, + 317, + 317, + 36, + 333, + 237, + 237, + 146, + 146, + 207, + 146, + 146, + 119, + 136, + 329, + 360, + 360, + 360, + 313, + 387, + 387, + 340, + 340, + 72, + 72, + 72, + 38, + 38, + 38, + 38, + 38, + 38, + 61, + 279, + 334, + 331, + 331, + 297, + 297, + 297, + 297, + 297, + 297, + 297, + 56, + 56, + 227, + 227, + 227, + 291, + 194, + 139, + 104, + 104, + 168, + 168, + 333, + 28, + 205, + 205, + 375, + 375, + 375, + 375, + 15, + 225, + 283, + 106, + 38, + 24, + 281, + 106, + 106, + 106, + 101, + 101, + 184, + 184, + 184, + 193, + 115, + 274, + 115, + 8, + 8, + 147, + 140, + 184, + 184, + 184, + 338, + 322, + 322, + 322, + 322, + 322, + 213, + 213, + 274, + 274, + 383, + 274, + 234, + 190, + 190, + 108, + 119, + 125, + 125, + 190, + 81, + 81, + 81, + 366, + 366, + 366, + 366, + 322, + 322, + 317, + 317, + 317, + 317, + 318, + 318, + 318, + 307, + 307, + 307, + 348, + 348, + 85, + 85, + 286, + 228, + 228, + 253, + 3, + 3, + 3, + 77, + 77, + 190, + 20, + 20, + 42, + 190, + 111, + 170, + 170, + 172, + 311, + 335, + 335, + 294, + 110, + 381, + 110, + 285, + 384, + 285, + 377, + 377, + 353, + 342, + 342, + 342, + 342, + 342, + 362, + 362, + 362, + 362, + 362, + 362, + 303, + 303, + 303, + 336, + 285, + 276, + 276, + 283, + 348, + 283, + 283, + 233, + 233, + 87, + 87, + 87, + 87, + 35, + 267, + 219, + 219, + 110, + 396, + 396, + 389, + 389, + 324, + 110, + 59, + 162, + 59, + 321, + 59, + 162, + 172, + 172, + 172, + 294, + 294, + 197, + 197, + 197, + 103, + 89, + 103, + 350, + 84, + 345, + 345, + 345, + 345, + 345, + 345, + 345, + 383, + 334, + 84, + 74, + 354, + 354, + 90, + 90, + 249, + 249, + 243, + 243, + 261, + 240, + 284, + 135, + 135, + 135, + 135, + 300, + 135, + 135, + 135, + 143, + 179, + 179, + 135, + 306, + 49, + 45, + 183, + 198, + 198, + 198, + 198, + 198, + 198, + 398, + 78, + 78, + 265, + 198, + 140, + 161, + 161, + 161, + 118, + 118, + 186, + 143, + 189, + 353, + 353, + 211, + 189, + 305, + 23, + 23, + 23, + 23, + 23, + 23, + 43, + 43, + 182, + 180, + 12, + 318, + 318, + 192, + 136, + 136, + 280, + 155, + 155, + 155, + 155, + 198, + 215, + 141, + 87, + 50, + 50, + 50, + 330, + 330, + 214, + 141, + 149, + 149, + 116, + 116, + 116, + 116, + 350, + 350, + 350, + 326, + 216, + 216, + 376, + 320, + 398, + 398, + 398, + 398, + 398, + 31, + 31, + 56, + 56, + 56, + 56, + 1, + 1, + 263, + 297, + 343, + 11, + 11, + 194, + 194, + 320, + 199, + 65, + 65, + 363, + 363, + 363, + 65, + 98, + 98, + 199, + 377, + 307, + 381, + 83, + 83, + 241, + 241, + 388, + 388, + 388, + 303, + 303, + 199, + 199, + 199, + 199, + 199, + 199, + 199, + 199, + 368, + 368, + 184, + 120, + 120, + 182, + 182, + 186, + 186, + 186, + 189, + 189, + 189, + 189, + 170, + 138, + 84, + 203, + 1, + 1, + 1, + 358, + 358, + 399, + 399, + 399, + 399, + 1, + 1, + 14, + 138, + 84, + 84, + 84, + 84, + 4, + 4, + 4, + 49, + 49, + 28, + 69, + 69, + 69, + 69, + 69, + 233, + 233, + 368, + 28, + 216, + 216, + 148, + 129, + 138, + 138, + 27, + 27, + 362, + 362, + 223, + 223, + 383, + 358, + 358, + 21, + 94, + 223, + 223, + 223, + 202, + 215, + 215, + 149, + 288, + 288, + 358, + 189, + 183, + 179, + 119, + 118, + 355, + 355, + 355, + 355, + 72, + 358, + 72, + 118, + 348, + 388, + 10, + 83, + 118, + 118, + 119, + 112, + 128, + 370, + 30, + 247, + 247, + 367, + 367, + 293, + 293, + 128, + 156, + 156, + 156, + 115, + 135, + 173, + 130, + 181, + 111, + 47, + 47, + 47, + 47, + 335, + 335, + 335, + 335, + 339, + 47, + 47, + 42, + 241, + 241, + 22, + 9, + 239, + 239, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 399, + 399, + 79, + 185, + 122, + 187, + 187, + 156, + 328, + 339, + 339, + 56, + 61, + 61, + 156, + 156, + 320, + 2, + 282, + 282, + 282, + 282, + 15, + 282, + 282, + 12, + 12, + 354, + 12, + 12, + 12, + 12, + 12, + 282, + 282, + 309, + 39, + 39, + 249, + 249, + 288, + 288, + 228, + 228, + 226, + 226, + 314, + 226, + 226, + 286, + 239, + 239, + 239, + 337, + 354, + 278, + 278, + 309, + 309, + 48, + 48, + 48, + 278, + 269, + 269, + 376, + 25, + 25, + 25, + 294, + 156, + 145, + 137, + 237, + 137, + 350, + 120, + 180, + 375, + 63, + 63, + 71, + 71, + 40, + 380, + 222, + 222, + 20, + 20, + 394, + 394, + 394, + 222, + 222, + 268, + 221, + 296, + 59, + 139, + 125, + 125, + 125, + 109, + 109, + 109, + 109, + 124, + 147, + 108, + 108, + 213, + 213, + 288, + 395, + 395, + 339, + 339, + 339, + 365, + 365, + 365, + 308, + 399, + 365, + 365, + 74, + 277, + 283, + 248, + 71, + 346, + 71, + 393, + 393, + 396, + 396, + 396, + 93, + 93, + 236, + 273, + 197, + 107, + 107, + 107, + 107, + 107, + 193, + 28, + 28, + 28, + 36, + 269, + 101, + 101, + 195, + 195, + 223, + 163, + 163, + 163, + 318, + 318, + 163, + 163, + 371, + 385, + 57, + 57, + 264, + 398, + 331, + 331, + 331, + 331, + 375, + 375, + 375, + 375, + 375, + 375, + 388, + 388, + 340, + 382, + 25, + 202, + 202, + 5, + 41, + 41, + 202, + 231, + 231, + 231, + 231, + 231, + 231, + 231, + 265, + 251, + 251, + 245, + 224, + 294, + 96, + 294, + 294, + 113, + 95, + 95, + 95, + 113, + 11, + 11, + 11, + 11, + 11, + 304, + 241, + 5, + 191, + 161, + 135, + 135, + 141, + 141, + 111, + 133, + 146, + 146, + 161, + 105, + 105, + 51, + 301, + 51, + 16, + 105, + 361, + 187, + 150, + 369, + 369, + 369, + 369, + 369, + 350, + 350, + 396, + 334, + 334, + 334, + 318, + 306, + 6, + 31, + 93, + 93, + 318, + 318, + 93, + 93, + 93, + 89, + 294, + 317, + 317, + 317, + 317, + 340, + 294, + 33, + 298, + 298, + 298, + 251, + 240, + 240, + 240, + 240, + 240, + 240, + 202, + 202, + 222, + 222, + 224, + 335, + 140, + 80, + 80, + 80, + 80, + 53, + 53, + 53, + 140, + 301, + 17, + 163, + 203, + 203, + 179, + 179, + 141, + 141, + 141, + 141, + 141, + 141, + 141, + 12, + 141, + 190, + 190, + 189, + 189, + 340, + 311, + 311, + 189, + 94, + 197, + 151, + 198, + 198, + 104, + 234, + 279, + 179, + 160, + 103, + 103, + 155, + 201, + 169, + 169, + 149, + 164, + 164, + 164, + 164, + 164, + 155, + 113, + 175, + 290, + 290, + 290, + 290, + 290, + 276, + 276, + 175, + 145, + 187, + 336, + 336, + 363, + 363, + 363, + 363, + 359, + 359, + 369, + 346, + 346, + 60, + 54, + 341, + 341, + 70, + 312, + 98, + 282, + 282, + 49, + 203, + 187, + 152, + 201, + 201, + 152, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 363, + 363, + 363, + 363, + 1, + 14, + 14, + 65, + 214, + 208, + 208, + 208, + 166, + 166, + 303, + 44, + 382, + 382, + 15, + 15, + 15, + 15, + 166, + 166, + 388, + 166, + 166, + 166, + 147, + 45, + 45, + 45, + 212, + 147, + 393, + 393, + 393, + 170, + 191, + 191, + 199, + 199, + 199, + 199, + 95, + 95, + 74, + 74, + 74, + 349, + 366, + 366, + 366, + 366, + 393, + 393, + 353, + 97, + 97, + 79, + 73, + 237, + 374, + 40, + 40, + 40, + 40, + 40, + 259, + 313, + 313, + 313, + 305, + 305, + 259, + 3, + 3, + 277, + 260, + 199, + 126, + 115, + 115, + 391, + 295, + 36, + 295, + 356, + 243, + 243, + 238, + 238, + 115, + 138, + 138, + 138, + 138, + 217, + 217, + 352, + 352, + 352, + 352, + 18, + 18, + 152, + 111, + 111, + 147, + 160, + 160, + 53, + 18, + 18, + 67, + 67, + 36, + 267, + 267, + 267, + 27, + 351, + 351, + 351, + 351, + 345, + 27, + 160, + 160, + 323, + 323, + 45, + 45, + 272, + 272, + 272, + 99, + 211, + 126, + 291, + 26, + 15, + 15, + 164, + 164, + 27, + 27, + 237, + 36, + 232, + 94, + 94, + 322, + 1, + 355, + 355, + 355, + 355, + 378, + 378, + 374, + 313, + 340, + 1, + 1, + 1, + 1, + 307, + 21, + 21, + 7, + 7, + 69, + 69, + 48, + 48, + 48, + 48, + 38, + 38, + 283, + 283, + 399, + 399, + 399, + 69, + 69, + 69, + 283, + 270, + 210, + 210, + 210, + 229, + 382, + 44, + 49, + 316, + 316, + 316, + 366, + 366, + 366, + 370, + 370, + 272, + 232, + 232, + 216, + 216, + 225, + 218, + 230, + 230, + 240, + 240, + 240, + 251, + 227, + 227, + 227, + 36, + 36, + 36, + 325, + 325, + 312, + 312, + 312, + 312, + 322, + 319, + 319, + 36, + 63, + 63, + 63, + 273, + 285, + 142, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 32, + 32, + 111, + 111, + 111, + 122, + 301, + 301, + 301, + 301, + 301, + 61, + 122, + 122, + 103, + 253, + 103, + 239, + 239, + 103, + 374, + 175, + 136, + 160, + 160, + 160, + 160, + 160, + 237, + 237, + 237, + 116, + 116, + 393, + 399, + 77, + 202, + 116, + 116, + 116, + 89, + 199, + 151, + 121, + 112, + 112, + 112, + 65, + 335, + 335, + 335, + 65, + 112, + 308, + 308, + 361, + 209, + 209, + 209, + 290, + 385, + 385, + 292, + 292, + 195, + 195, + 154, + 154, + 154, + 154, + 154, + 154, + 370, + 72, + 235, + 82, + 235, + 235, + 203, + 245, + 154, + 154, + 295, + 189, + 189, + 189, + 123, + 156, + 93, + 156, + 156, + 156, + 127, + 130, + 130, + 180, + 180, + 180, + 366, + 152, + 152, + 77, + 77, + 207, + 180, + 104, + 344, + 383, + 157, + 157, + 157, + 220, + 9, + 9, + 9, + 157, + 157, + 20, + 20, + 20, + 158, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 310, + 333, + 13, + 337, + 201, + 201, + 258, + 208, + 269, + 269, + 120, + 120, + 162, + 162, + 162, + 162, + 83, + 83, + 83, + 40, + 180, + 98, + 63, + 370, + 370, + 370, + 86, + 366, + 366, + 31, + 31, + 241, + 186, + 176, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 321, + 394, + 394, + 26, + 26, + 237, + 391, + 290, + 322, + 313, + 51, + 39, + 209, + 209, + 379, + 209, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 47, + 285, + 285, + 285, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 328, + 328, + 328, + 328, + 100, + 100, + 230, + 230, + 226, + 226, + 196, + 138, + 138, + 138, + 138, + 138, + 138, + 204, + 397, + 397, + 39, + 192, + 10, + 10, + 101, + 282, + 261, + 396, + 261, + 261, + 261, + 261, + 214, + 101, + 101, + 363, + 363, + 363, + 363, + 363, + 363, + 76, + 236, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 279, + 279, + 279, + 211, + 223, + 219, + 136, + 174, + 286, + 286, + 286, + 286, + 144, + 387, + 387, + 97, + 97, + 169, + 39, + 87, + 87, + 87, + 87, + 87, + 87, + 87, + 87, + 203, + 203, + 203, + 145, + 7, + 7, + 232, + 37, + 229, + 229, + 229, + 381, + 44, + 44, + 80, + 80, + 256, + 145, + 65, + 119, + 260, + 55, + 55, + 19, + 19, + 19, + 100, + 382, + 382, + 382, + 382, + 36, + 34, + 54, + 65, + 63, + 63, + 392, + 63, + 63, + 260, + 315, + 315, + 260, + 254, + 296, + 296, + 296, + 296, + 381, + 381, + 296, + 324, + 324, + 324, + 221, + 221, + 221, + 221, + 145, + 152, + 152, + 176, + 393, + 243, + 243, + 243, + 243, + 176, + 176, + 176, + 128, + 261, + 261, + 261, + 261, + 315, + 261, + 139, + 139, + 197, + 312, + 189, + 189, + 189, + 189, + 137, + 56, + 62, + 62, + 62, + 231, + 169, + 188, + 351, + 351, + 168, + 168, + 107, + 106, + 301, + 150, + 150, + 304, + 187, + 113, + 113, + 90, + 291, + 237, + 355, + 355, + 237, + 237, + 237, + 237, + 237, + 19, + 19, + 16, + 16, + 16, + 16, + 329, + 3, + 398, + 398, + 398, + 3, + 61, + 61, + 61, + 61, + 216, + 88, + 88, + 216, + 216, + 216, + 216, + 216, + 282, + 282, + 206, + 281, + 368, + 368, + 368, + 348, + 296, + 113, + 194, + 145, + 309, + 309, + 309, + 173, + 173, + 330, + 330, + 180, + 101, + 101, + 101, + 136, + 180, + 254, + 176, + 177, + 177, + 144, + 271, + 144, + 144, + 269, + 144, + 142, + 254, + 142, + 322, + 21, + 21, + 36, + 36, + 13, + 2, + 141, + 141, + 141, + 151, + 151, + 151, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 100, + 138, + 400, + 138, + 138, + 125, + 306, + 306, + 306, + 306, + 344, + 72, + 13, + 62, + 56, + 260, + 260, + 26, + 2, + 2, + 2, + 86, + 66, + 66, + 66, + 66, + 362, + 21, + 21, + 22, + 202, + 202, + 289, + 289, + 170, + 170, + 151, + 172, + 154, + 148, + 148, + 134, + 134, + 34, + 389, + 250, + 250, + 346, + 162, + 146, + 390, + 390, + 200, + 200, + 200, + 200, + 200, + 200, + 110, + 136, + 136, + 282, + 252, + 252, + 320, + 320, + 320, + 320, + 320, + 46, + 46, + 252, + 252, + 253, + 240, + 210, + 210, + 210, + 210, + 268, + 220, + 158, + 27, + 27, + 27, + 27, + 300, + 252, + 307, + 39, + 39, + 74, + 74, + 61, + 24, + 24, + 24, + 24, + 66, + 66, + 66, + 66, + 66, + 1, + 1, + 393, + 393, + 393, + 1, + 1, + 100, + 100, + 100, + 100, + 90, + 99, + 99, + 99, + 82, + 354, + 354, + 321, + 321, + 321, + 321, + 86, + 86, + 86, + 314, + 314, + 86, + 86, + 252, + 252, + 236, + 236, + 16, + 16, + 76, + 279, + 279, + 262, + 309, + 283, + 283, + 286, + 165, + 165, + 114, + 114, + 114, + 13, + 13, + 13, + 13, + 13, + 140, + 116, + 161, + 41, + 41, + 41, + 41, + 41, + 151, + 180, + 330, + 129, + 129, + 129, + 129, + 113, + 354, + 113, + 113, + 62, + 113, + 394, + 113, + 113, + 113, + 113, + 152, + 107, + 188, + 189, + 361, + 361, + 361, + 90, + 148, + 145, + 370, + 370, + 391, + 59, + 59, + 279, + 41, + 41, + 400, + 400, + 41, + 41, + 89, + 89, + 84, + 84, + 84, + 229, + 283, + 283, + 334, + 283, + 283, + 283, + 283, + 379, + 275, + 300, + 300, + 300, + 300, + 300, + 252, + 252, + 206, + 206, + 145, + 112, + 112, + 337, + 253, + 106, + 106, + 17, + 114, + 194, + 254, + 306, + 306, + 99, + 81, + 81, + 254, + 254, + 254, + 254, + 254, + 270, + 264, + 111, + 139, + 139, + 139, + 139, + 72, + 396, + 67, + 24, + 342, + 342, + 35, + 209, + 209, + 209, + 202, + 202, + 202, + 202, + 313, + 357, + 357, + 357, + 357, + 357, + 346, + 212, + 202, + 139, + 139, + 148, + 148, + 181, + 181, + 181, + 67, + 308, + 67, + 140, + 88, + 206, + 335, + 335, + 335, + 380, + 303, + 49, + 49, + 52, + 206, + 206, + 256, + 256, + 256, + 256, + 256, + 256, + 393, + 393, + 264, + 264, + 331, + 331, + 242, + 260, + 255, + 251, + 377, + 36, + 251, + 251, + 251, + 200, + 144, + 348, + 144, + 144, + 371, + 379, + 34, + 29, + 162, + 162, + 148, + 148, + 75, + 319, + 319, + 319, + 75, + 75, + 148, + 358, + 148, + 148, + 148, + 91, + 91, + 289, + 148, + 148, + 390, + 390, + 390, + 162, + 162, + 95, + 95, + 288, + 154, + 101, + 97, + 97, + 99, + 355, + 99, + 99, + 99, + 99, + 99, + 85, + 23, + 363, + 23, + 279, + 279, + 241, + 241, + 101, + 122, + 122, + 387, + 240, + 240, + 122, + 356, + 356, + 356, + 390, + 216, + 47, + 219, + 133, + 133, + 164, + 164, + 164, + 164, + 207, + 164, + 298, + 164, + 164, + 164, + 373, + 355, + 256, + 256, + 164, + 62, + 229, + 326, + 326, + 229, + 229, + 164, + 0, + 147, + 166, + 54, + 54, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 287, + 39, + 39, + 39, + 253, + 253, + 287, + 331, + 24, + 287, + 287, + 275, + 275, + 166, + 102, + 102, + 174, + 323, + 323, + 323, + 323, + 323, + 384, + 174, + 174, + 164, + 120, + 47, + 116, + 116, + 305, + 305, + 95, + 95, + 116, + 367, + 367, + 367, + 367, + 180, + 211, + 211, + 37, + 98, + 98, + 291, + 291, + 382, + 382, + 382, + 120, + 125, + 125, + 125, + 3, + 3, + 187, + 116, + 85, + 96, + 96, + 96, + 57, + 199, + 115, + 81, + 199, + 199, + 189, + 269, + 189, + 257, + 301, + 301, + 335, + 335, + 335, + 335, + 372, + 320, + 260, + 260, + 82, + 280, + 29, + 29, + 394, + 29, + 21, + 263, + 302, + 302, + 302, + 302, + 234, + 189, + 189, + 213, + 213, + 213, + 216, + 229, + 16, + 16, + 16, + 229, + 397, + 263, + 278, + 336, + 278, + 278, + 362, + 362, + 104, + 184, + 142, + 149, + 149, + 245, + 243, + 243, + 186, + 162, + 162, + 211, + 211, + 135, + 314, + 314, + 314, + 336, + 86, + 15, + 102, + 102, + 102, + 102, + 319, + 319, + 102, + 102, + 130, + 130, + 163, + 179, + 209, + 209, + 209, + 179, + 179, + 142, + 136, + 379, + 379, + 379, + 82, + 82, + 136, + 136, + 136, + 130, + 130, + 173, + 369, + 369, + 369, + 369, + 383, + 383, + 383, + 383, + 383, + 383, + 383, + 383, + 326, + 63, + 253, + 238, + 109, + 189, + 188, + 140, + 106, + 106, + 334, + 334, + 106, + 120, + 149, + 149, + 327, + 327, + 330, + 19, + 19, + 29, + 267, + 207, + 149, + 149, + 149, + 149, + 149, + 198, + 198, + 198, + 198, + 255, + 255, + 255, + 170, + 10, + 10, + 10, + 50, + 58, + 239, + 170, + 78, + 78, + 276, + 170, + 170, + 170, + 151, + 195, + 195, + 195, + 12, + 195, + 195, + 195, + 213, + 364, + 364, + 392, + 92, + 381, + 381, + 381, + 381, + 381, + 335, + 39, + 39, + 230, + 230, + 195, + 142, + 142, + 142, + 199, + 56, + 367, + 86, + 86, + 86, + 87, + 161, + 209, + 209, + 109, + 109, + 180, + 198, + 358, + 198, + 106, + 164, + 191, + 253, + 252, + 252, + 191, + 191, + 279, + 279, + 241, + 241, + 328, + 241, + 240, + 240, + 4, + 4, + 4, + 195, + 271, + 271, + 96, + 271, + 271, + 239, + 70, + 239, + 20, + 20, + 239, + 73, + 73, + 239, + 239, + 378, + 378, + 378, + 321, + 323, + 57, + 17, + 257, + 140, + 370, + 370, + 370, + 260, + 29, + 217, + 217, + 236, + 236, + 228, + 228, + 228, + 228, + 228, + 57, + 292, + 174, + 194, + 390, + 390, + 390, + 390, + 374, + 302, + 24, + 24, + 288, + 266, + 194, + 304, + 176, + 176, + 176, + 139, + 92, + 92, + 2, + 130, + 130, + 384, + 150, + 182, + 123, + 45, + 45, + 254, + 254, + 207, + 207, + 1, + 1, + 1, + 1, + 207, + 301, + 301, + 301, + 9, + 394, + 394, + 332, + 332, + 332, + 332, + 354, + 26, + 26, + 26, + 26, + 17, + 17, + 28, + 268, + 172, + 172, + 153, + 156, + 156, + 167, + 167, + 167, + 167, + 50, + 50, + 302, + 302, + 50, + 232, + 232, + 232, + 330, + 330, + 232, + 232, + 330, + 330, + 330, + 339, + 339, + 339, + 339, + 323, + 323, + 21, + 269, + 269, + 238, + 316, + 316, + 331, + 331, + 64, + 64, + 238, + 238, + 270, + 167, + 167, + 167, + 151, + 199, + 149, + 155, + 217, + 217, + 187, + 186, + 379, + 186, + 0, + 371, + 371, + 397, + 342, + 199, + 114, + 114, + 144, + 144, + 210, + 315, + 85, + 85, + 85, + 144, + 147, + 377, + 48, + 293, + 5, + 293, + 227, + 147, + 330, + 285, + 285, + 285, + 147, + 183, + 12, + 12, + 12, + 398, + 398, + 92, + 92, + 92, + 183, + 183, + 183, + 127, + 127, + 140, + 142, + 142, + 142, + 255, + 239, + 339, + 339, + 265, + 34, + 342, + 342, + 265, + 165, + 388, + 388, + 31, + 31, + 31, + 395, + 31, + 66, + 51, + 84, + 84, + 84, + 84, + 84, + 297, + 297, + 384, + 384, + 400, + 363, + 380, + 380, + 380, + 380, + 346, + 346, + 317, + 317, + 297, + 297, + 281, + 282, + 68, + 68, + 68, + 282, + 282, + 255, + 43, + 43, + 43, + 76, + 263, + 215, + 215, + 215, + 64, + 353, + 101, + 279, + 333, + 333, + 287, + 101, + 175, + 175, + 366, + 392, + 392, + 194, + 192, + 342, + 255, + 255, + 323, + 255, + 264, + 192, + 182, + 119, + 119, + 119, + 132, + 235, + 200, + 200, + 371, + 200, + 86, + 200, + 126, + 388, + 69, + 126, + 172, + 172, + 172, + 359, + 359, + 19, + 255, + 172, + 172, + 172, + 327, + 327, + 327, + 172, + 188, + 139, + 310, + 274, + 274, + 274, + 274, + 168, + 168, + 149, + 364, + 57, + 57, + 56, + 250, + 250, + 34, + 34, + 250, + 361, + 361, + 250, + 149, + 123, + 123, + 123, + 181, + 181, + 376, + 357, + 400, + 400, + 212, + 214, + 266, + 266, + 54, + 116, + 165, + 88, + 18, + 92, + 92, + 352, + 352, + 77, + 77, + 77, + 77, + 77, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 32, + 251, + 215, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 388, + 244, + 148, + 148, + 55, + 74, + 74, + 119, + 330, + 330, + 121, + 204, + 204, + 281, + 281, + 334, + 26, + 26, + 281, + 338, + 338, + 281, + 281, + 281, + 281, + 121, + 121, + 40, + 211, + 39, + 39, + 232, + 217, + 121, + 295, + 145, + 8, + 8, + 8, + 347, + 8, + 42, + 42, + 244, + 244, + 244, + 5, + 299, + 145, + 254, + 76, + 76, + 254, + 65, + 65, + 65, + 315, + 315, + 65, + 322, + 322, + 71, + 68, + 68, + 68, + 68, + 397, + 397, + 97, + 31, + 31, + 75, + 75, + 254, + 254, + 395, + 395, + 395, + 253, + 232, + 204, + 204, + 144, + 130, + 130, + 130, + 12, + 12, + 23, + 23, + 23, + 23, + 286, + 330, + 330, + 130, + 197, + 132, + 249, + 131, + 398, + 398, + 398, + 398, + 131, + 355, + 355, + 355, + 355, + 355, + 355, + 295, + 349, + 349, + 295, + 295, + 295, + 295, + 295, + 131, + 108, + 183, + 108, + 108, + 274, + 341, + 274, + 274, + 274, + 217, + 386, + 386, + 386, + 33, + 217, + 336, + 336, + 339, + 339, + 212, + 212, + 212, + 273, + 273, + 206, + 201, + 201, + 201, + 168, + 325, + 325, + 367, + 367, + 367, + 37, + 37, + 40, + 49, + 49, + 49, + 24, + 24, + 168, + 100, + 246, + 246, + 246, + 246, + 168, + 168, + 166, + 334, + 330, + 72, + 398, + 72, + 72, + 67, + 209, + 340, + 340, + 340, + 340, + 242, + 242, + 182, + 182, + 150, + 175, + 125, + 125, + 146, + 314, + 314, + 146, + 166, + 166, + 194, + 194, + 194, + 73, + 140, + 131, + 372, + 372, + 372, + 315, + 0, + 248, + 131, + 269, + 131, + 224, + 131, + 111, + 366, + 366, + 388, + 365, + 6, + 6, + 24, + 273, + 240, + 354, + 346, + 346, + 249, + 249, + 324, + 324, + 194, + 319, + 319, + 268, + 78, + 268, + 268, + 194, + 192, + 345, + 345, + 345, + 394, + 340, + 340, + 340, + 316, + 363, + 87, + 87, + 91, + 91, + 91, + 91, + 361, + 91, + 91, + 16, + 16, + 247, + 247, + 247, + 247, + 371, + 249, + 192, + 186, + 186, + 140, + 283, + 283, + 140, + 145, + 16, + 16, + 30, + 30, + 60, + 263, + 263, + 263, + 263, + 375, + 210, + 210, + 210, + 202, + 202, + 203, + 145, + 145, + 138, + 167, + 157, + 174, + 274, + 274, + 274, + 274, + 274, + 274, + 274, + 256, + 385, + 25, + 309, + 309, + 309, + 25, + 295, + 295, + 295, + 295, + 38, + 38, + 38, + 38, + 38, + 96, + 34, + 212, + 174, + 174, + 237, + 237, + 237, + 0, + 0, + 0, + 0, + 0, + 0, + 76, + 76, + 59, + 59, + 59, + 382, + 59, + 237, + 308, + 308, + 343, + 257, + 257, + 257, + 257, + 379, + 231, + 231, + 77, + 231, + 231, + 231, + 231, + 231, + 294, + 294, + 294, + 224, + 224, + 224, + 245, + 385, + 385, + 385, + 385, + 385, + 245, + 179, + 179, + 329, + 329, + 66, + 66, + 177, + 177, + 177, + 177, + 355, + 152, + 152, + 55, + 148, + 25, + 25, + 148, + 148, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 148, + 132, + 146, + 146, + 146, + 146, + 146, + 251, + 323, + 251, + 251, + 146, + 146, + 146, + 146, + 216, + 216, + 216, + 216, + 48, + 48, + 48, + 48, + 48, + 288, + 225, + 187, + 311, + 265, + 224, + 224, + 60, + 392, + 314, + 314, + 310, + 310, + 310, + 310, + 310, + 310, + 310, + 187, + 144, + 144, + 385, + 144, + 131, + 131, + 14, + 14, + 14, + 131, + 131, + 364, + 364, + 400, + 216, + 188, + 380, + 188, + 188, + 188, + 188, + 356, + 5, + 5, + 5, + 24, + 188, + 142, + 142, + 358, + 142, + 142, + 113, + 26, + 26, + 113, + 149, + 312, + 312, + 312, + 143, + 143, + 119, + 367, + 319, + 221, + 242, + 307, + 346, + 242, + 242, + 229, + 229, + 278, + 278, + 261, + 263, + 263, + 79, + 263, + 72, + 317, + 317, + 72, + 99, + 99, + 99, + 99, + 99, + 58, + 58, + 254, + 254, + 280, + 280, + 45, + 45, + 280, + 280, + 256, + 256, + 216, + 260, + 260, + 329, + 329, + 329, + 329, + 56, + 56, + 36, + 36, + 36, + 260, + 331, + 331, + 331, + 277, + 316, + 60, + 60, + 232, + 243, + 319, + 243, + 243, + 364, + 364, + 199, + 199, + 166, + 360, + 18, + 227, + 227, + 166, + 167, + 51, + 51, + 51, + 92, + 92, + 22, + 167, + 167, + 23, + 333, + 214, + 214, + 214, + 266, + 266, + 336, + 393, + 202, + 202, + 202, + 167, + 385, + 389, + 76, + 76, + 384, + 384, + 76, + 307, + 76, + 76, + 76, + 384, + 44, + 259, + 259, + 259, + 259, + 259, + 83, + 266, + 266, + 169, + 124, + 124, + 352, + 139, + 349, + 139, + 199, + 379, + 379, + 199, + 193, + 15, + 113, + 113, + 72, + 333, + 72, + 202, + 304, + 304, + 304, + 304, + 304, + 304, + 304, + 316, + 316, + 316, + 400, + 254, + 254, + 201, + 113, + 113, + 113, + 113, + 376, + 376, + 376, + 376, + 376, + 341, + 302, + 373, + 254, + 254, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 286, + 286, + 296, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 33, + 33, + 144, + 144, + 144, + 144, + 155, + 155, + 155, + 166, + 166, + 166, + 178, + 148, + 120, + 120, + 372, + 267, + 120, + 120, + 120, + 125, + 125, + 160, + 160, + 262, + 262, + 21, + 160, + 291, + 291, + 291, + 291, + 284, + 266, + 266, + 266, + 222, + 216, + 100, + 245, + 245, + 245, + 245, + 160, + 372, + 372, + 309, + 309, + 309, + 82, + 369, + 369, + 369, + 194, + 182, + 150, + 116, + 116, + 246, + 383, + 73, + 246, + 111, + 111, + 193, + 193, + 193, + 178, + 178, + 178, + 178, + 169, + 136, + 198, + 282, + 29, + 29, + 46, + 268, + 283, + 370, + 198, + 114, + 200, + 15, + 377, + 377, + 377, + 15, + 15, + 22, + 22, + 200, + 312, + 200, + 141, + 139, + 114, + 397, + 397, + 114, + 392, + 392, + 193, + 193, + 193, + 344, + 344, + 62, + 169, + 169, + 169, + 200, + 396, + 396, + 246, + 200, + 193, + 201, + 104, + 104, + 22, + 15, + 15, + 259, + 275, + 323, + 19, + 19, + 374, + 319, + 339, + 339, + 339, + 339, + 19, + 49, + 89, + 89, + 89, + 89, + 99, + 275, + 212, + 222, + 42, + 42, + 42, + 42, + 42, + 42, + 222, + 222, + 372, + 13, + 13, + 13, + 98, + 98, + 38, + 301, + 301, + 13, + 13, + 222, + 222, + 251, + 254, + 254, + 254, + 254, + 283, + 283, + 340, + 340, + 276, + 276, + 276, + 276, + 279, + 279, + 281, + 298, + 28, + 354, + 354, + 28, + 17, + 249, + 391, + 237, + 23, + 289, + 289, + 344, + 104, + 53, + 53, + 53, + 228, + 228, + 228, + 228, + 225, + 104, + 104, + 104, + 104, + 359, + 359, + 162, + 326, + 326, + 162, + 325, + 325, + 83, + 83, + 319, + 100, + 100, + 162, + 171, + 234, + 234, + 161, + 161, + 239, + 161, + 190, + 131, + 131, + 131, + 131, + 131, + 169, + 169, + 345, + 345, + 169, + 153, + 19, + 19, + 0, + 0, + 396, + 215, + 153, + 153, + 131, + 158, + 158, + 137, + 157, + 157, + 227, + 159, + 159, + 181, + 181, + 142, + 142, + 141, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 382, + 81, + 117, + 117, + 117, + 17, + 6, + 6, + 117, + 117, + 117, + 285, + 285, + 329, + 319, + 40, + 367, + 367, + 56, + 56, + 56, + 4, + 4, + 252, + 250, + 9, + 55, + 250, + 250, + 250, + 250, + 278, + 234, + 24, + 24, + 24, + 71, + 71, + 361, + 361, + 220, + 30, + 220, + 260, + 260, + 194, + 194, + 194, + 29, + 29, + 354, + 194, + 15, + 15, + 15, + 204, + 217, + 217, + 267, + 267, + 194, + 194, + 93, + 93, + 93, + 93, + 9, + 9, + 294, + 294, + 294, + 278, + 278, + 278, + 278, + 278, + 278, + 278, + 203, + 203, + 203, + 85, + 85, + 318, + 318, + 357, + 357, + 85, + 85, + 85, + 5, + 92, + 203, + 203, + 57, + 38, + 352, + 38, + 38, + 38, + 94, + 230, + 270, + 282, + 22, + 22, + 282, + 282, + 128, + 101, + 73, + 101, + 101, + 55, + 253, + 253, + 253, + 253, + 217, + 101, + 181, + 181, + 334, + 107, + 107, + 133, + 206, + 206, + 206, + 154, + 154, + 169, + 169, + 237, + 194, + 127, + 127, + 163, + 163, + 331, + 331, + 188, + 339, + 339, + 78, + 78, + 125, + 125, + 235, + 235, + 235, + 324, + 235, + 254, + 111, + 163, + 163, + 145, + 145, + 239, + 145, + 189, + 111, + 315, + 315, + 315, + 365, + 46, + 46, + 46, + 111, + 90, + 90, + 161, + 274, + 274, + 2, + 154, + 154, + 291, + 291, + 154, + 154, + 154, + 186, + 119, + 336, + 340, + 340, + 31, + 88, + 238, + 238, + 238, + 238, + 102, + 102, + 350, + 94, + 94, + 94, + 376, + 376, + 49, + 95, + 323, + 308, + 95, + 262, + 70, + 70, + 260, + 286, + 102, + 116, + 159, + 221, + 159, + 159, + 320, + 241, + 352, + 352, + 367, + 367, + 8, + 319, + 241, + 213, + 213, + 213, + 297, + 147, + 284, + 284, + 284, + 284, + 284, + 284, + 247, + 247, + 304, + 304, + 332, + 332, + 224, + 224, + 224, + 372, + 246, + 246, + 246, + 246, + 246, + 246, + 296, + 296, + 296, + 112, + 257, + 257, + 23, + 23, + 34, + 24, + 257, + 395, + 395, + 395, + 395, + 395, + 49, + 49, + 23, + 257, + 138, + 127, + 151, + 163, + 163, + 171, + 188, + 110, + 110, + 110, + 110, + 181, + 318, + 318, + 181, + 125, + 270, + 385, + 333, + 333, + 333, + 165, + 165, + 165, + 145, + 112, + 174, + 174, + 174, + 249, + 174, + 148, + 148, + 86, + 38, + 38, + 38, + 38, + 148, + 110, + 111, + 90, + 373, + 258, + 134, + 134, + 243, + 296, + 296, + 296, + 296, + 326, + 3, + 296, + 262, + 1, + 1, + 324, + 324, + 324, + 378, + 376, + 376, + 77, + 81, + 81, + 95, + 95, + 95, + 95, + 95, + 100, + 37, + 37, + 80, + 262, + 297, + 297, + 171, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 341, + 341, + 341, + 342, + 342, + 342, + 322, + 179, + 179, + 179, + 179, + 61, + 179, + 177, + 187, + 325, + 325, + 253, + 360, + 360, + 253, + 149, + 149, + 219, + 219, + 149, + 7, + 150, + 137, + 68, + 215, + 215, + 215, + 215, + 33, + 215, + 215, + 212, + 383, + 383, + 383, + 326, + 60, + 221, + 221, + 356, + 370, + 54, + 54, + 70, + 70, + 70, + 70, + 70, + 221, + 221, + 221, + 221, + 221, + 221, + 257, + 33, + 288, + 236, + 137, + 121, + 121, + 213, + 213, + 121, + 172, + 190, + 101, + 101, + 101, + 127, + 128, + 208, + 56, + 208, + 276, + 276, + 276, + 128, + 314, + 389, + 239, + 25, + 239, + 270, + 389, + 389, + 389, + 370, + 370, + 370, + 370, + 370, + 14, + 14, + 14, + 90, + 94, + 94, + 51, + 97, + 97, + 58, + 208, + 128, + 374, + 374, + 137, + 137, + 137, + 193, + 130, + 374, + 374, + 38, + 38, + 387, + 318, + 318, + 318, + 318, + 318, + 373, + 373, + 323, + 385, + 385, + 385, + 385, + 38, + 38, + 38, + 38, + 38, + 30, + 72, + 72, + 72, + 72, + 47, + 241, + 241, + 241, + 241, + 250, + 242, + 242, + 229, + 271, + 296, + 296, + 130, + 335, + 335, + 130, + 111, + 198, + 198, + 258, + 108, + 108, + 107, + 107, + 119, + 105, + 105, + 189, + 189, + 189, + 211, + 211, + 211, + 211, + 211, + 2, + 191, + 191, + 209, + 191, + 191, + 361, + 361, + 191, + 133, + 67, + 161, + 143, + 143, + 143, + 396, + 143, + 143, + 153, + 153, + 163, + 164, + 154, + 313, + 227, + 227, + 169, + 169, + 271, + 271, + 330, + 330, + 347, + 319, + 79, + 271, + 271, + 271, + 285, + 300, + 300, + 300, + 300, + 299, + 288, + 169, + 164, + 164, + 164, + 164, + 163, + 397, + 222, + 222, + 222, + 222, + 222, + 222, + 163, + 163, + 35, + 35, + 204, + 163, + 107, + 130, + 107, + 327, + 108, + 336, + 323, + 323, + 323, + 323, + 262, + 244, + 371, + 283, + 224, + 224, + 257, + 129, + 129, + 192, + 192, + 192, + 154, + 334, + 144, + 115, + 213, + 213, + 301, + 276, + 276, + 84, + 115, + 115, + 51, + 115, + 115, + 175, + 175, + 171, + 117, + 290, + 290, + 117, + 233, + 363, + 181, + 181, + 380, + 380, + 336, + 336, + 34, + 295, + 181, + 35, + 35, + 48, + 149, + 88, + 195, + 121, + 190, + 133, + 133, + 133, + 133, + 186, + 367, + 367, + 363, + 363, + 100, + 100, + 124, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 306, + 306, + 306, + 71, + 71, + 268, + 268, + 222, + 222, + 384, + 222, + 222, + 222, + 222, + 83, + 298, + 298, + 195, + 217, + 217, + 217, + 282, + 366, + 282, + 282, + 282, + 38, + 203, + 203, + 379, + 203, + 203, + 39, + 219, + 243, + 269, + 128, + 23, + 23, + 46, + 15, + 278, + 144, + 304, + 218, + 375, + 218, + 271, + 57, + 16, + 271, + 271, + 144, + 42, + 397, + 327, + 318, + 318, + 377, + 25, + 34, + 34, + 34, + 34, + 34, + 68, + 68, + 68, + 30, + 26, + 19, + 19, + 18, + 18, + 18, + 18, + 364, + 364, + 364, + 18, + 19, + 19, + 244, + 283, + 201, + 264, + 264, + 234, + 207, + 207, + 207, + 129, + 129, + 338, + 15, + 196, + 196, + 196, + 196, + 196, + 196, + 196, + 68, + 68, + 68, + 68, + 196, + 376, + 284, + 245, + 266, + 266, + 196, + 304, + 130, + 78, + 78, + 78, + 78, + 123, + 123, + 123, + 303, + 303, + 303, + 301, + 353, + 353, + 203, + 203, + 238, + 318, + 318, + 207, + 207, + 207, + 207, + 207, + 199, + 307, + 32, + 287, + 287, + 373, + 287, + 287, + 240, + 199, + 61, + 61, + 61, + 1, + 298, + 199, + 153, + 102, + 180, + 369, + 369, + 32, + 32, + 32, + 180, + 119, + 121, + 153, + 191, + 191, + 183, + 183, + 183, + 73, + 73, + 73, + 73, + 73, + 285, + 228, + 183, + 316, + 80, + 80, + 182, + 276, + 344, + 344, + 344, + 344, + 344, + 344, + 260, + 351, + 65, + 65, + 260, + 182, + 197, + 197, + 197, + 197, + 197, + 177, + 177, + 252, + 103, + 189, + 183, + 183, + 183, + 110, + 156, + 107, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 54, + 54, + 54, + 291, + 291, + 284, + 284, + 116, + 116, + 300, + 300, + 34, + 194, + 392, + 194, + 96, + 307, + 96, + 96, + 96, + 194, + 161, + 79, + 92, + 155, + 326, + 326, + 63, + 63, + 290, + 171, + 306, + 306, + 306, + 306, + 97, + 97, + 97, + 262, + 262, + 25, + 32, + 80, + 80, + 23, + 358, + 358, + 230, + 60, + 230, + 269, + 266, + 159, + 159, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 312, + 368, + 368, + 368, + 368, + 368, + 367, + 367, + 367, + 391, + 391, + 73, + 77, + 77, + 77, + 77, + 77, + 47, + 47, + 47, + 47, + 47, + 47, + 47, + 278, + 225, + 207, + 207, + 207, + 207, + 102, + 32, + 201, + 201, + 387, + 387, + 344, + 344, + 7, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 210, + 102, + 124, + 124, + 123, + 123, + 177, + 102, + 30, + 399, + 399, + 0, + 0, + 0, + 0, + 140, + 243, + 77, + 77, + 77, + 77, + 77, + 77, + 77, + 38, + 84, + 387, + 363, + 243, + 243, + 243, + 234, + 234, + 233, + 79, + 79, + 143, + 14, + 22, + 22, + 22, + 128, + 128, + 203, + 203, + 310, + 222, + 128, + 188, + 49, + 361, + 49, + 49, + 49, + 49, + 314, + 314, + 314, + 314, + 49, + 54, + 391, + 391, + 391, + 391, + 391, + 385, + 54, + 54, + 84, + 84, + 346, + 346, + 82, + 82, + 47, + 47, + 47, + 118, + 59, + 97, + 97, + 363, + 97, + 97, + 97, + 97, + 97, + 97, + 314, + 314, + 399, + 38, + 38, + 99, + 99, + 99, + 75, + 75, + 98, + 26, + 26, + 321, + 321, + 373, + 324, + 324, + 382, + 98, + 7, + 308, + 308, + 15, + 93, + 93, + 93, + 93, + 281, + 281, + 281, + 292, + 292, + 292, + 289, + 236, + 221, + 224, + 24, + 298, + 293, + 293, + 261, + 261, + 196, + 196, + 0, + 0, + 309, + 309, + 309, + 0, + 164, + 164, + 285, + 356, + 314, + 389, + 236, + 236, + 236, + 282, + 164, + 164, + 164, + 127, + 179, + 165, + 165, + 357, + 172, + 172, + 123, + 168, + 192, + 169, + 169, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 393, + 393, + 393, + 393, + 384, + 319, + 22, + 62, + 207, + 300, + 300, + 300, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 353, + 53, + 395, + 8, + 316, + 316, + 316, + 343, + 343, + 37, + 37, + 37, + 296, + 206, + 224, + 270, + 43, + 43, + 43, + 43, + 270, + 270, + 334, + 334, + 238, + 96, + 238, + 257, + 257, + 130, + 348, + 32, + 32, + 56, + 223, + 130, + 130, + 130, + 109, + 109, + 169, + 354, + 354, + 354, + 354, + 354, + 397, + 397, + 397, + 397, + 397, + 61, + 61, + 61, + 61, + 14, + 391, + 391, + 391, + 306, + 62, + 62, + 240, + 240, + 230, + 258, + 207, + 232, + 232, + 232, + 209, + 203, + 367, + 203, + 257, + 257, + 169, + 195, + 370, + 370, + 303, + 303, + 231, + 195, + 126, + 155, + 155, + 155, + 186, + 186, + 250, + 250, + 186, + 50, + 50, + 211, + 291, + 291, + 291, + 130, + 130, + 130, + 386, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 375, + 375, + 66, + 130, + 161, + 161, + 161, + 161, + 161, + 161, + 214, + 392, + 392, + 392, + 214, + 214, + 214, + 254, + 391, + 265, + 265, + 189, + 189, + 104, + 104, + 104, + 55, + 178, + 178, + 178, + 230, + 95, + 95, + 95, + 69, + 69, + 38, + 38, + 38, + 7, + 230, + 229, + 229, + 229, + 229, + 292, + 292, + 292, + 194, + 194, + 194, + 152, + 152, + 152, + 152, + 152, + 121, + 197, + 197, + 187, + 346, + 63, + 63, + 187, + 199, + 199, + 199, + 199, + 394, + 316, + 316, + 199, + 199, + 157, + 157, + 116, + 180, + 36, + 65, + 65, + 194, + 348, + 348, + 348, + 27, + 378, + 378, + 378, + 343, + 185, + 382, + 185, + 93, + 295, + 211, + 211, + 211, + 211, + 363, + 363, + 211, + 369, + 6, + 76, + 367, + 21, + 21, + 227, + 256, + 393, + 393, + 256, + 256, + 102, + 102, + 163, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 93, + 93, + 93, + 183, + 156, + 192, + 192, + 391, + 391, + 391, + 347, + 261, + 294, + 256, + 286, + 286, + 286, + 286, + 114, + 130, + 298, + 87, + 87, + 87, + 35, + 267, + 2, + 2, + 267, + 267, + 267, + 353, + 353, + 50, + 50, + 50, + 50, + 50, + 267, + 267, + 32, + 295, + 348, + 348, + 348, + 348, + 348, + 348, + 348, + 84, + 84, + 84, + 48, + 48, + 295, + 84, + 84, + 84, + 71, + 273, + 245, + 277, + 277, + 284, + 384, + 384, + 384, + 81, + 284, + 252, + 252, + 252, + 0, + 252, + 257, + 165, + 328, + 328, + 165, + 157, + 213, + 213, + 213, + 213, + 336, + 7, + 324, + 324, + 194, + 397, + 397, + 397, + 286, + 194, + 194, + 259, + 194, + 223, + 223, + 194, + 194, + 144, + 14, + 51, + 208, + 198, + 198, + 198, + 336, + 336, + 198, + 198, + 273, + 192, + 192, + 57, + 150, + 109, + 109, + 109, + 109, + 175, + 175, + 175, + 175, + 175, + 351, + 351, + 82, + 374, + 374, + 374, + 374, + 374, + 374, + 82, + 82, + 201, + 9, + 9, + 175, + 175, + 350, + 350, + 97, + 127, + 131, + 131, + 204, + 23, + 43, + 43, + 204, + 204, + 204, + 204, + 64, + 218, + 223, + 393, + 393, + 138, + 138, + 47, + 47, + 138, + 152, + 175, + 160, + 8, + 361, + 304, + 344, + 344, + 305, + 360, + 300, + 310, + 310, + 310, + 310, + 244, + 227, + 296, + 0, + 246, + 368, + 74, + 74, + 246, + 310, + 246, + 231, + 246, + 254, + 254, + 211, + 178, + 133, + 133, + 289, + 2, + 2, + 58, + 58, + 356, + 356, + 356, + 356, + 58, + 258, + 258, + 246, + 362, + 362, + 256, + 81, + 81, + 81, + 81, + 81, + 248, + 248, + 228, + 228, + 228, + 242, + 242, + 242, + 242, + 242, + 204, + 204, + 359, + 173, + 173, + 105, + 153, + 223, + 386, + 62, + 322, + 322, + 62, + 62, + 62, + 62, + 62, + 62, + 126, + 126, + 346, + 346, + 288, + 126, + 126, + 126, + 126, + 187, + 243, + 128, + 128, + 9, + 9, + 128, + 182, + 161, + 378, + 378, + 378, + 332, + 332, + 125, + 205, + 384, + 11, + 303, + 303, + 303, + 303, + 11, + 58, + 0, + 0, + 0, + 0, + 0, + 16, + 20, + 20, + 86, + 277, + 277, + 294, + 287, + 287, + 386, + 287, + 170, + 170, + 22, + 302, + 22, + 41, + 41, + 41, + 41, + 57, + 44, + 47, + 47, + 395, + 395, + 395, + 395, + 375, + 376, + 373, + 14, + 14, + 341, + 341, + 341, + 333, + 333, + 208, + 238, + 263, + 130, + 130, + 130, + 130, + 130, + 130, + 166, + 216, + 216, + 109, + 147, + 147, + 137, + 137, + 137, + 274, + 274, + 0, + 341, + 341, + 341, + 341, + 0, + 0, + 0, + 0, + 0, + 348, + 348, + 348, + 348, + 72, + 72, + 27, + 325, + 245, + 279, + 141, + 141, + 384, + 185, + 185, + 180, + 180, + 175, + 175, + 106, + 106, + 132, + 125, + 125, + 252, + 253, + 253, + 76, + 253, + 253, + 246, + 252, + 125, + 373, + 373, + 14, + 193, + 156, + 103, + 206, + 206, + 103, + 103, + 103, + 103, + 370, + 370, + 370, + 370, + 28, + 76, + 59, + 59, + 59, + 59, + 368, + 368, + 330, + 59, + 59, + 59, + 59, + 10, + 375, + 375, + 375, + 10, + 10, + 10, + 8, + 260, + 292, + 227, + 266, + 297, + 297, + 163, + 163, + 7, + 7, + 358, + 358, + 400, + 400, + 216, + 216, + 216, + 201, + 201, + 201, + 201, + 260, + 260, + 163, + 163, + 141, + 141, + 141, + 0, + 149, + 149, + 81, + 81, + 192, + 215, + 149, + 138, + 157, + 157, + 352, + 159, + 353, + 159, + 156, + 156, + 9, + 9, + 140, + 108, + 161, + 161, + 36, + 308, + 308, + 390, + 12, + 12, + 12, + 136, + 200, + 200, + 389, + 389, + 389, + 224, + 226, + 155, + 335, + 261, + 131, + 207, + 215, + 6, + 352, + 154, + 38, + 359, + 38, + 38, + 38, + 38, + 38, + 98, + 98, + 98, + 188, + 289, + 139, + 82, + 382, + 382, + 381, + 381, + 397, + 397, + 82, + 82, + 16, + 16, + 16, + 352, + 52, + 52, + 75, + 75, + 77, + 77, + 289, + 289, + 289, + 247, + 247, + 247, + 253, + 213, + 213, + 213, + 213, + 228, + 244, + 139, + 139, + 139, + 199, + 199, + 33, + 14, + 14, + 14, + 273, + 174, + 174, + 130, + 49, + 338, + 130, + 130, + 156, + 124, + 145, + 83, + 395, + 83, + 380, + 135, + 141, + 141, + 141, + 125, + 125, + 125, + 125, + 131, + 86, + 86, + 123, + 123, + 145, + 125, + 125, + 82, + 125, + 125, + 142, + 142, + 109, + 134, + 180, + 180, + 180, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 381, + 42, + 271, + 271, + 49, + 49, + 279, + 163, + 168, + 380, + 343, + 22, + 22, + 22, + 22, + 233, + 233, + 168, + 246, + 246, + 234, + 232, + 232, + 250, + 15, + 135, + 51, + 135, + 165, + 32, + 32, + 32, + 32, + 203, + 203, + 318, + 318, + 318, + 318, + 22, + 247, + 247, + 276, + 276, + 286, + 91, + 262, + 272, + 235, + 115, + 357, + 357, + 165, + 165, + 141, + 141, + 141, + 79, + 234, + 141, + 141, + 103, + 46, + 46, + 46, + 46, + 103, + 103, + 204, + 144, + 144, + 144, + 144, + 144, + 277, + 68, + 65, + 65, + 180, + 226, + 226, + 114, + 43, + 114, + 114, + 144, + 144, + 144, + 121, + 121, + 333, + 333, + 333, + 333, + 21, + 271, + 271, + 283, + 196, + 196, + 108, + 108, + 114, + 368, + 368, + 354, + 354, + 99, + 208, + 208, + 114, + 102, + 323, + 360, + 360, + 360, + 360, + 360, + 66, + 341, + 341, + 341, + 390, + 400, + 66, + 66, + 66, + 66, + 66, + 66, + 66, + 312, + 312, + 317, + 320, + 320, + 49, + 30, + 30, + 258, + 218, + 250, + 250, + 162, + 375, + 7, + 7, + 7, + 7, + 187, + 145, + 145, + 151, + 151, + 151, + 151, + 151, + 2, + 242, + 186, + 348, + 348, + 186, + 200, + 154, + 154, + 109, + 303, + 303, + 303, + 203, + 203, + 358, + 312, + 203, + 364, + 376, + 65, + 343, + 343, + 343, + 343, + 343, + 318, + 65, + 397, + 397, + 397, + 38, + 38, + 242, + 400, + 400, + 400, + 257, + 109, + 109, + 109, + 200, + 200, + 200, + 200, + 146, + 182, + 182, + 102, + 299, + 299, + 337, + 337, + 337, + 339, + 339, + 51, + 61, + 86, + 274, + 274, + 84, + 274, + 32, + 262, + 223, + 23, + 30, + 58, + 58, + 261, + 261, + 79, + 79, + 79, + 79, + 261, + 241, + 241, + 241, + 246, + 246, + 365, + 365, + 191, + 191, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 88, + 5, + 161, + 161, + 161, + 161, + 161, + 161, + 350, + 350, + 331, + 331, + 36, + 36, + 36, + 314, + 380, + 69, + 69, + 69, + 73, + 73, + 73, + 73, + 90, + 90, + 90, + 385, + 90, + 90, + 15, + 3, + 3, + 60, + 60, + 247, + 81, + 81, + 81, + 81, + 81, + 341, + 341, + 81, + 15, + 15, + 247, + 247, + 221, + 257, + 278, + 278, + 204, + 192, + 192, + 192, + 197, + 96, + 239, + 239, + 291, + 291, + 163, + 151, + 125, + 125, + 125, + 209, + 209, + 209, + 213, + 365, + 125, + 125, + 122, + 122, + 253, + 134, + 134, + 134, + 134, + 174, + 290, + 290, + 369, + 290, + 290, + 290, + 262, + 262, + 174, + 244, + 147, + 163, + 163, + 149, + 136, + 179, + 26, + 26, + 297, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 395, + 65, + 65, + 17, + 80, + 80, + 213, + 264, + 158, + 61, + 61, + 58, + 58, + 58, + 379, + 58, + 58, + 58, + 62, + 62, + 12, + 62, + 62, + 23, + 23, + 373, + 23, + 289, + 150, + 140, + 302, + 302, + 1, + 111, + 154, + 154, + 47, + 90, + 308, + 308, + 308, + 90, + 233, + 233, + 233, + 233, + 233, + 218, + 218, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 393, + 352, + 352, + 352, + 352, + 350, + 350, + 350, + 350, + 28, + 28, + 89, + 227, + 227, + 320, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 71, + 71, + 227, + 227, + 227, + 10, + 10, + 10, + 239, + 191, + 191, + 154, + 195, + 315, + 315, + 315, + 195, + 195, + 195, + 195, + 311, + 311, + 311, + 311, + 311, + 311, + 311, + 321, + 321, + 321, + 302, + 373, + 81, + 264, + 266, + 226, + 226, + 226, + 226, + 226, + 270, + 15, + 15, + 270, + 253, + 253, + 227, + 99, + 99, + 99, + 227, + 399, + 399, + 327, + 84, + 84, + 330, + 330, + 80, + 342, + 342, + 342, + 342, + 86, + 53, + 53, + 53, + 53, + 227, + 41, + 41, + 41, + 256, + 256, + 295, + 295, + 282, + 353, + 282, + 282, + 282, + 282, + 282, + 282, + 170, + 200, + 180, + 180, + 180, + 42, + 42, + 44, + 312, + 259, + 180, + 247, + 180, + 138, + 38, + 104, + 111, + 384, + 384, + 350, + 350, + 378, + 378, + 378, + 23, + 45, + 60, + 60, + 60, + 60, + 60, + 274, + 274, + 245, + 245, + 245, + 352, + 352, + 245, + 245, + 245, + 77, + 215, + 111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.py new file mode 100644 index 0000000000..c2d902c1ee --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_4flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 4 flows.""" + build(4, False).emit() \ No newline at end of file diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.expect new file mode 100644 index 0000000000..cef9b80760 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 121, + 203, + 203, + 275, + 243, + 310, + 330, + 330, + 330, + 329, + 291, + 256, + 329, + 268, + 354, + 354, + 380, + 130, + 307, + 80, + 262, + 262, + 262, + 363, + 40, + 40, + 106, + 106, + 106, + 106, + 106, + 106, + 242, + 242, + 242, + 299, + 388, + 388, + 243, + 243, + 243, + 287, + 287, + 287, + 176, + 287, + 287, + 325, + 61, + 321, + 125, + 125, + 125, + 125, + 95, + 95, + 95, + 306, + 306, + 296, + 145, + 145, + 205, + 205, + 205, + 171, + 83, + 83, + 83, + 171, + 79, + 125, + 125, + 125, + 212, + 309, + 133, + 133, + 215, + 238, + 238, + 238, + 238, + 238, + 221, + 216, + 318, + 318, + 318, + 341, + 80, + 221, + 221, + 306, + 361, + 168, + 168, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 168, + 231, + 11, + 231, + 231, + 231, + 241, + 98, + 98, + 181, + 12, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 181, + 167, + 216, + 82, + 82, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 69, + 69, + 69, + 69, + 36, + 82, + 216, + 216, + 216, + 216, + 238, + 238, + 60, + 60, + 60, + 60, + 162, + 177, + 183, + 150, + 82, + 183, + 90, + 219, + 219, + 312, + 281, + 300, + 254, + 314, + 314, + 293, + 293, + 253, + 251, + 251, + 251, + 251, + 21, + 219, + 251, + 129, + 129, + 267, + 267, + 267, + 267, + 267, + 66, + 66, + 98, + 98, + 250, + 90, + 90, + 90, + 90, + 203, + 203, + 21, + 21, + 21, + 203, + 119, + 0, + 0, + 119, + 76, + 250, + 151, + 250, + 250, + 305, + 305, + 318, + 209, + 209, + 209, + 209, + 318, + 318, + 318, + 318, + 318, + 318, + 89, + 89, + 89, + 89, + 89, + 89, + 290, + 290, + 290, + 290, + 290, + 276, + 276, + 308, + 11, + 11, + 217, + 217, + 306, + 366, + 366, + 330, + 220, + 220, + 246, + 246, + 330, + 372, + 372, + 372, + 113, + 113, + 113, + 113, + 18, + 113, + 170, + 208, + 208, + 208, + 208, + 109, + 120, + 120, + 120, + 120, + 91, + 208, + 161, + 81, + 81, + 161, + 183, + 191, + 191, + 191, + 191, + 191, + 191, + 191, + 310, + 310, + 310, + 297, + 297, + 95, + 95, + 95, + 95, + 95, + 162, + 310, + 63, + 63, + 63, + 310, + 310, + 303, + 86, + 255, + 255, + 378, + 300, + 323, + 6, + 6, + 323, + 120, + 120, + 323, + 391, + 332, + 256, + 343, + 356, + 278, + 278, + 356, + 354, + 346, + 346, + 374, + 223, + 388, + 238, + 222, + 157, + 222, + 222, + 45, + 378, + 220, + 378, + 332, + 332, + 400, + 269, + 269, + 269, + 180, + 180, + 269, + 301, + 301, + 103, + 54, + 41, + 41, + 103, + 121, + 121, + 121, + 154, + 312, + 312, + 312, + 312, + 248, + 182, + 218, + 218, + 87, + 165, + 252, + 7, + 7, + 195, + 195, + 195, + 195, + 195, + 144, + 227, + 227, + 195, + 296, + 296, + 152, + 400, + 12, + 12, + 359, + 128, + 128, + 128, + 255, + 255, + 198, + 198, + 198, + 198, + 255, + 201, + 8, + 8, + 8, + 40, + 41, + 149, + 149, + 201, + 255, + 286, + 351, + 400, + 332, + 380, + 323, + 323, + 310, + 310, + 323, + 323, + 323, + 36, + 36, + 36, + 36, + 36, + 323, + 397, + 51, + 380, + 367, + 367, + 367, + 367, + 154, + 154, + 337, + 337, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 101, + 244, + 240, + 83, + 165, + 256, + 30, + 30, + 30, + 164, + 164, + 164, + 164, + 256, + 256, + 256, + 362, + 234, + 137, + 137, + 137, + 192, + 192, + 374, + 176, + 176, + 374, + 123, + 123, + 14, + 314, + 382, + 382, + 142, + 122, + 82, + 181, + 181, + 92, + 189, + 321, + 321, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 43, + 43, + 237, + 206, + 80, + 80, + 206, + 348, + 387, + 387, + 387, + 327, + 327, + 327, + 327, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 8, + 79, + 79, + 79, + 207, + 207, + 338, + 338, + 143, + 143, + 143, + 13, + 217, + 366, + 281, + 315, + 315, + 3, + 3, + 157, + 157, + 51, + 105, + 105, + 105, + 105, + 374, + 374, + 374, + 374, + 353, + 241, + 241, + 353, + 353, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 0, + 0, + 243, + 243, + 243, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 2, + 119, + 135, + 135, + 209, + 240, + 208, + 208, + 255, + 223, + 74, + 74, + 74, + 74, + 74, + 74, + 42, + 189, + 189, + 81, + 109, + 189, + 189, + 189, + 213, + 203, + 255, + 144, + 144, + 144, + 255, + 85, + 255, + 256, + 260, + 9, + 9, + 9, + 107, + 59, + 107, + 175, + 223, + 223, + 223, + 223, + 235, + 235, + 235, + 40, + 30, + 30, + 30, + 30, + 188, + 188, + 282, + 316, + 320, + 320, + 320, + 71, + 320, + 333, + 26, + 26, + 347, + 194, + 64, + 64, + 64, + 149, + 149, + 149, + 235, + 235, + 235, + 235, + 168, + 168, + 184, + 184, + 249, + 309, + 360, + 239, + 257, + 257, + 299, + 101, + 132, + 132, + 92, + 206, + 206, + 24, + 299, + 299, + 256, + 256, + 256, + 181, + 181, + 254, + 305, + 154, + 360, + 361, + 348, + 348, + 339, + 313, + 105, + 105, + 105, + 112, + 87, + 87, + 86, + 201, + 260, + 339, + 339, + 339, + 360, + 34, + 360, + 363, + 320, + 320, + 320, + 363, + 16, + 16, + 222, + 382, + 382, + 382, + 215, + 382, + 20, + 20, + 95, + 382, + 382, + 316, + 382, + 382, + 382, + 398, + 398, + 55, + 76, + 312, + 312, + 312, + 312, + 141, + 141, + 398, + 382, + 382, + 393, + 33, + 108, + 393, + 393, + 313, + 313, + 313, + 98, + 98, + 325, + 379, + 379, + 379, + 13, + 13, + 13, + 304, + 331, + 142, + 142, + 301, + 287, + 121, + 7, + 121, + 88, + 239, + 17, + 17, + 17, + 17, + 239, + 226, + 226, + 272, + 272, + 346, + 346, + 52, + 128, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 77, + 159, + 159, + 213, + 292, + 292, + 292, + 292, + 292, + 206, + 206, + 147, + 292, + 292, + 238, + 187, + 187, + 386, + 75, + 364, + 87, + 179, + 179, + 40, + 237, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 190, + 190, + 190, + 190, + 190, + 166, + 16, + 16, + 75, + 200, + 200, + 150, + 150, + 150, + 150, + 175, + 175, + 175, + 234, + 234, + 35, + 219, + 219, + 295, + 192, + 394, + 392, + 392, + 394, + 394, + 394, + 394, + 394, + 394, + 113, + 343, + 343, + 343, + 306, + 306, + 306, + 53, + 255, + 144, + 144, + 233, + 255, + 161, + 161, + 190, + 321, + 321, + 362, + 72, + 197, + 37, + 37, + 362, + 222, + 222, + 92, + 0, + 113, + 86, + 173, + 181, + 181, + 154, + 132, + 132, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 181, + 45, + 45, + 45, + 45, + 181, + 167, + 167, + 50, + 167, + 167, + 266, + 309, + 309, + 160, + 160, + 51, + 51, + 77, + 21, + 160, + 160, + 127, + 127, + 127, + 256, + 242, + 242, + 0, + 0, + 46, + 142, + 86, + 86, + 86, + 86, + 86, + 99, + 242, + 242, + 242, + 162, + 162, + 162, + 238, + 242, + 274, + 274, + 269, + 308, + 308, + 299, + 267, + 267, + 220, + 220, + 220, + 174, + 174, + 174, + 299, + 299, + 287, + 287, + 287, + 287, + 287, + 319, + 362, + 362, + 323, + 331, + 354, + 150, + 150, + 212, + 212, + 212, + 321, + 324, + 324, + 297, + 297, + 293, + 293, + 293, + 281, + 281, + 281, + 365, + 362, + 380, + 23, + 222, + 128, + 128, + 128, + 148, + 148, + 148, + 148, + 148, + 237, + 186, + 170, + 170, + 165, + 313, + 40, + 179, + 313, + 313, + 312, + 312, + 312, + 97, + 97, + 97, + 68, + 68, + 68, + 68, + 68, + 29, + 46, + 129, + 129, + 154, + 154, + 132, + 312, + 293, + 264, + 32, + 32, + 32, + 32, + 14, + 14, + 185, + 69, + 69, + 69, + 70, + 72, + 101, + 117, + 117, + 117, + 117, + 117, + 117, + 155, + 155, + 109, + 109, + 109, + 109, + 109, + 91, + 91, + 23, + 185, + 186, + 186, + 167, + 167, + 167, + 167, + 167, + 167, + 87, + 87, + 167, + 79, + 79, + 132, + 132, + 132, + 132, + 188, + 188, + 218, + 218, + 67, + 184, + 320, + 272, + 261, + 186, + 261, + 261, + 160, + 261, + 261, + 275, + 170, + 46, + 158, + 158, + 158, + 158, + 85, + 226, + 92, + 92, + 155, + 155, + 226, + 178, + 178, + 297, + 297, + 299, + 255, + 370, + 397, + 386, + 386, + 386, + 386, + 386, + 79, + 386, + 11, + 11, + 63, + 125, + 125, + 155, + 122, + 122, + 199, + 231, + 231, + 260, + 304, + 280, + 280, + 324, + 323, + 323, + 365, + 365, + 97, + 97, + 97, + 338, + 358, + 150, + 358, + 333, + 339, + 339, + 339, + 332, + 332, + 330, + 330, + 194, + 63, + 63, + 128, + 330, + 330, + 167, + 80, + 167, + 304, + 71, + 71, + 214, + 304, + 298, + 74, + 195, + 195, + 195, + 173, + 173, + 298, + 295, + 57, + 57, + 75, + 62, + 62, + 62, + 32, + 32, + 118, + 118, + 285, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 3, + 3, + 3, + 3, + 26, + 110, + 110, + 110, + 264, + 318, + 318, + 310, + 55, + 55, + 274, + 202, + 202, + 202, + 272, + 272, + 272, + 330, + 58, + 288, + 83, + 186, + 314, + 158, + 158, + 314, + 314, + 314, + 330, + 330, + 71, + 71, + 65, + 330, + 330, + 120, + 120, + 397, + 397, + 397, + 397, + 339, + 327, + 9, + 9, + 327, + 327, + 398, + 80, + 398, + 398, + 398, + 351, + 351, + 351, + 235, + 235, + 171, + 236, + 236, + 236, + 236, + 236, + 236, + 74, + 74, + 74, + 49, + 49, + 49, + 34, + 192, + 245, + 245, + 245, + 304, + 304, + 304, + 136, + 164, + 304, + 351, + 351, + 26, + 26, + 119, + 134, + 178, + 323, + 339, + 266, + 266, + 266, + 239, + 266, + 339, + 339, + 339, + 339, + 291, + 49, + 49, + 49, + 49, + 124, + 148, + 148, + 148, + 43, + 148, + 291, + 291, + 291, + 291, + 131, + 291, + 291, + 291, + 291, + 291, + 318, + 22, + 22, + 22, + 22, + 8, + 129, + 129, + 300, + 300, + 300, + 300, + 208, + 349, + 57, + 57, + 145, + 145, + 145, + 349, + 372, + 148, + 148, + 28, + 28, + 22, + 160, + 160, + 142, + 142, + 142, + 142, + 102, + 353, + 350, + 357, + 357, + 325, + 325, + 216, + 325, + 201, + 44, + 44, + 121, + 67, + 67, + 67, + 67, + 67, + 340, + 340, + 340, + 141, + 141, + 48, + 15, + 15, + 246, + 246, + 246, + 237, + 237, + 361, + 361, + 393, + 91, + 334, + 245, + 245, + 99, + 295, + 295, + 295, + 295, + 295, + 295, + 275, + 275, + 275, + 384, + 122, + 187, + 324, + 299, + 299, + 390, + 333, + 103, + 198, + 66, + 198, + 254, + 10, + 10, + 102, + 102, + 102, + 102, + 150, + 164, + 164, + 114, + 114, + 114, + 143, + 143, + 237, + 153, + 190, + 190, + 190, + 190, + 74, + 74, + 20, + 92, + 14, + 92, + 190, + 180, + 180, + 213, + 155, + 213, + 298, + 298, + 245, + 245, + 245, + 245, + 51, + 51, + 51, + 23, + 267, + 200, + 317, + 317, + 317, + 317, + 317, + 320, + 320, + 320, + 320, + 287, + 231, + 231, + 287, + 124, + 287, + 155, + 155, + 5, + 155, + 155, + 155, + 149, + 74, + 149, + 241, + 241, + 271, + 271, + 271, + 194, + 271, + 271, + 271, + 271, + 83, + 271, + 277, + 277, + 246, + 278, + 309, + 291, + 15, + 15, + 88, + 291, + 311, + 203, + 311, + 398, + 325, + 344, + 344, + 344, + 367, + 382, + 395, + 395, + 23, + 23, + 63, + 63, + 63, + 63, + 63, + 52, + 52, + 4, + 4, + 314, + 279, + 37, + 37, + 37, + 37, + 395, + 378, + 60, + 246, + 246, + 246, + 378, + 378, + 378, + 378, + 337, + 337, + 337, + 394, + 394, + 397, + 374, + 330, + 330, + 330, + 367, + 367, + 350, + 350, + 102, + 102, + 102, + 156, + 156, + 233, + 107, + 318, + 286, + 286, + 286, + 378, + 336, + 336, + 336, + 347, + 334, + 24, + 24, + 24, + 334, + 185, + 185, + 211, + 361, + 64, + 64, + 160, + 174, + 174, + 174, + 174, + 377, + 377, + 377, + 396, + 396, + 396, + 396, + 396, + 353, + 78, + 353, + 76, + 15, + 15, + 23, + 23, + 23, + 15, + 82, + 98, + 219, + 166, + 166, + 166, + 132, + 132, + 1, + 132, + 132, + 132, + 132, + 174, + 313, + 313, + 313, + 313, + 276, + 276, + 100, + 6, + 6, + 62, + 62, + 100, + 151, + 191, + 333, + 226, + 284, + 333, + 333, + 53, + 233, + 233, + 391, + 278, + 181, + 278, + 278, + 133, + 133, + 152, + 150, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 23, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 19, + 123, + 138, + 138, + 178, + 317, + 61, + 61, + 61, + 207, + 207, + 294, + 294, + 384, + 384, + 15, + 346, + 346, + 346, + 375, + 375, + 370, + 370, + 370, + 370, + 370, + 370, + 370, + 366, + 366, + 366, + 366, + 325, + 89, + 89, + 203, + 203, + 325, + 325, + 325, + 135, + 130, + 325, + 385, + 385, + 67, + 37, + 37, + 37, + 89, + 56, + 56, + 56, + 115, + 290, + 111, + 111, + 63, + 111, + 111, + 123, + 216, + 216, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 101, + 5, + 5, + 5, + 101, + 101, + 93, + 216, + 217, + 86, + 52, + 86, + 86, + 105, + 105, + 105, + 319, + 319, + 319, + 69, + 69, + 228, + 30, + 222, + 222, + 27, + 319, + 319, + 319, + 131, + 302, + 365, + 365, + 375, + 325, + 325, + 397, + 380, + 309, + 380, + 71, + 380, + 81, + 141, + 86, + 86, + 86, + 86, + 233, + 165, + 94, + 94, + 94, + 94, + 231, + 9, + 9, + 9, + 174, + 208, + 208, + 293, + 293, + 376, + 26, + 26, + 26, + 26, + 26, + 376, + 376, + 376, + 301, + 301, + 224, + 260, + 376, + 97, + 97, + 304, + 304, + 304, + 304, + 292, + 292, + 292, + 292, + 382, + 345, + 208, + 350, + 296, + 365, + 330, + 360, + 360, + 360, + 360, + 360, + 36, + 36, + 368, + 398, + 98, + 98, + 98, + 253, + 253, + 253, + 360, + 360, + 0, + 367, + 352, + 341, + 276, + 341, + 335, + 65, + 65, + 65, + 65, + 65, + 65, + 341, + 99, + 30, + 30, + 141, + 47, + 341, + 236, + 236, + 336, + 394, + 394, + 311, + 394, + 394, + 367, + 371, + 371, + 371, + 391, + 360, + 362, + 338, + 338, + 338, + 338, + 375, + 277, + 112, + 277, + 375, + 230, + 230, + 230, + 49, + 49, + 49, + 34, + 233, + 225, + 194, + 194, + 201, + 215, + 91, + 91, + 91, + 61, + 61, + 73, + 73, + 263, + 263, + 378, + 378, + 400, + 17, + 17, + 17, + 111, + 198, + 198, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 155, + 155, + 87, + 325, + 325, + 325, + 325, + 120, + 106, + 106, + 106, + 152, + 152, + 152, + 152, + 152, + 18, + 18, + 18, + 28, + 28, + 28, + 36, + 106, + 106, + 106, + 106, + 106, + 106, + 117, + 106, + 106, + 222, + 222, + 196, + 231, + 297, + 322, + 382, + 119, + 382, + 80, + 80, + 80, + 80, + 31, + 31, + 31, + 31, + 31, + 31, + 137, + 117, + 124, + 235, + 235, + 197, + 290, + 290, + 290, + 308, + 308, + 308, + 308, + 108, + 308, + 308, + 308, + 41, + 41, + 367, + 367, + 155, + 155, + 149, + 149, + 118, + 123, + 26, + 123, + 263, + 263, + 263, + 12, + 12, + 12, + 252, + 186, + 186, + 302, + 302, + 309, + 309, + 260, + 260, + 182, + 12, + 182, + 182, + 202, + 236, + 260, + 290, + 276, + 276, + 276, + 276, + 276, + 350, + 389, + 207, + 389, + 394, + 125, + 125, + 177, + 376, + 376, + 246, + 93, + 231, + 69, + 69, + 69, + 246, + 226, + 226, + 119, + 226, + 76, + 187, + 187, + 101, + 101, + 101, + 101, + 80, + 218, + 218, + 296, + 384, + 381, + 358, + 23, + 23, + 23, + 23, + 387, + 17, + 17, + 17, + 17, + 388, + 388, + 388, + 388, + 388, + 386, + 386, + 343, + 397, + 299, + 299, + 105, + 92, + 92, + 92, + 211, + 211, + 10, + 10, + 10, + 10, + 10, + 10, + 96, + 118, + 118, + 118, + 299, + 336, + 61, + 125, + 125, + 125, + 125, + 148, + 148, + 148, + 148, + 148, + 148, + 53, + 138, + 138, + 146, + 146, + 146, + 130, + 115, + 115, + 115, + 112, + 210, + 210, + 210, + 167, + 167, + 167, + 271, + 230, + 230, + 230, + 336, + 25, + 25, + 41, + 68, + 68, + 68, + 57, + 222, + 222, + 222, + 319, + 319, + 159, + 104, + 104, + 104, + 355, + 355, + 355, + 360, + 366, + 366, + 366, + 366, + 379, + 342, + 86, + 394, + 353, + 331, + 365, + 272, + 272, + 29, + 29, + 29, + 29, + 29, + 123, + 123, + 208, + 220, + 272, + 272, + 158, + 272, + 365, + 335, + 379, + 372, + 372, + 105, + 105, + 105, + 105, + 97, + 97, + 355, + 391, + 391, + 382, + 382, + 262, + 218, + 218, + 366, + 16, + 16, + 16, + 67, + 113, + 159, + 81, + 16, + 81, + 81, + 81, + 124, + 193, + 152, + 152, + 152, + 152, + 88, + 88, + 88, + 88, + 88, + 189, + 51, + 198, + 295, + 246, + 260, + 260, + 260, + 250, + 253, + 383, + 340, + 340, + 373, + 373, + 373, + 131, + 25, + 25, + 25, + 117, + 117, + 32, + 73, + 73, + 73, + 69, + 69, + 198, + 187, + 186, + 187, + 233, + 233, + 250, + 250, + 250, + 250, + 270, + 249, + 249, + 249, + 38, + 38, + 38, + 38, + 38, + 64, + 103, + 103, + 103, + 66, + 103, + 219, + 214, + 214, + 214, + 214, + 300, + 253, + 280, + 280, + 278, + 190, + 386, + 386, + 344, + 332, + 386, + 106, + 71, + 71, + 150, + 172, + 296, + 296, + 125, + 205, + 205, + 23, + 23, + 23, + 27, + 205, + 205, + 296, + 296, + 218, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 11, + 11, + 38, + 38, + 139, + 139, + 96, + 96, + 96, + 96, + 96, + 16, + 16, + 16, + 16, + 16, + 16, + 72, + 72, + 72, + 72, + 55, + 96, + 160, + 160, + 160, + 160, + 135, + 135, + 225, + 166, + 168, + 241, + 23, + 241, + 241, + 241, + 295, + 295, + 295, + 298, + 243, + 59, + 28, + 147, + 147, + 147, + 147, + 53, + 53, + 243, + 304, + 304, + 234, + 234, + 234, + 250, + 266, + 266, + 10, + 26, + 26, + 33, + 33, + 261, + 261, + 398, + 389, + 374, + 381, + 391, + 391, + 354, + 354, + 354, + 325, + 313, + 82, + 81, + 81, + 325, + 383, + 377, + 24, + 24, + 377, + 377, + 194, + 91, + 139, + 76, + 26, + 26, + 26, + 139, + 172, + 51, + 51, + 51, + 51, + 51, + 51, + 51, + 23, + 62, + 172, + 172, + 179, + 161, + 165, + 207, + 274, + 274, + 32, + 32, + 304, + 304, + 304, + 242, + 242, + 242, + 242, + 114, + 114, + 242, + 124, + 124, + 124, + 124, + 124, + 264, + 377, + 377, + 353, + 353, + 251, + 251, + 251, + 251, + 251, + 239, + 239, + 308, + 308, + 341, + 341, + 338, + 330, + 330, + 330, + 380, + 380, + 380, + 246, + 259, + 386, + 386, + 386, + 263, + 263, + 251, + 386, + 342, + 342, + 91, + 342, + 204, + 204, + 258, + 372, + 372, + 372, + 367, + 358, + 358, + 344, + 344, + 339, + 339, + 359, + 340, + 365, + 213, + 213, + 213, + 73, + 73, + 16, + 68, + 49, + 85, + 62, + 138, + 138, + 138, + 324, + 324, + 392, + 316, + 205, + 153, + 153, + 118, + 145, + 205, + 22, + 195, + 195, + 181, + 316, + 316, + 37, + 212, + 288, + 288, + 315, + 315, + 254, + 394, + 39, + 39, + 219, + 100, + 67, + 5, + 5, + 52, + 0, + 73, + 73, + 100, + 28, + 28, + 28, + 28, + 28, + 100, + 100, + 217, + 217, + 223, + 229, + 229, + 176, + 204, + 204, + 265, + 78, + 78, + 78, + 78, + 319, + 319, + 207, + 207, + 207, + 16, + 286, + 9, + 286, + 286, + 287, + 377, + 377, + 67, + 67, + 67, + 67, + 38, + 38, + 377, + 321, + 343, + 335, + 34, + 34, + 34, + 6, + 6, + 368, + 249, + 368, + 231, + 400, + 348, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 25, + 25, + 129, + 129, + 218, + 241, + 84, + 200, + 200, + 200, + 3, + 3, + 3, + 3, + 3, + 54, + 54, + 90, + 200, + 200, + 189, + 189, + 189, + 118, + 73, + 290, + 185, + 290, + 290, + 302, + 302, + 302, + 316, + 261, + 350, + 350, + 225, + 225, + 350, + 338, + 338, + 391, + 85, + 308, + 391, + 102, + 231, + 231, + 231, + 231, + 186, + 121, + 121, + 121, + 11, + 115, + 115, + 145, + 145, + 145, + 145, + 145, + 145, + 145, + 103, + 103, + 103, + 115, + 115, + 189, + 129, + 129, + 234, + 234, + 234, + 188, + 234, + 234, + 94, + 234, + 234, + 218, + 211, + 112, + 56, + 112, + 112, + 112, + 112, + 229, + 229, + 283, + 119, + 119, + 249, + 64, + 249, + 306, + 306, + 301, + 27, + 27, + 301, + 296, + 260, + 114, + 114, + 209, + 90, + 241, + 397, + 397, + 365, + 365, + 377, + 140, + 228, + 393, + 343, + 12, + 12, + 18, + 12, + 179, + 179, + 179, + 183, + 183, + 183, + 183, + 212, + 274, + 274, + 58, + 119, + 119, + 314, + 314, + 343, + 9, + 9, + 124, + 145, + 145, + 145, + 216, + 216, + 167, + 185, + 185, + 6, + 6, + 6, + 6, + 6, + 137, + 185, + 185, + 254, + 254, + 254, + 277, + 277, + 146, + 277, + 226, + 226, + 226, + 277, + 277, + 259, + 248, + 133, + 133, + 133, + 133, + 133, + 248, + 153, + 153, + 153, + 153, + 309, + 400, + 394, + 141, + 141, + 104, + 166, + 166, + 166, + 193, + 20, + 193, + 193, + 231, + 115, + 12, + 12, + 231, + 231, + 196, + 394, + 336, + 336, + 327, + 288, + 288, + 385, + 203, + 203, + 203, + 77, + 143, + 207, + 180, + 299, + 299, + 385, + 385, + 385, + 393, + 393, + 203, + 100, + 16, + 100, + 137, + 137, + 176, + 176, + 244, + 380, + 386, + 31, + 17, + 17, + 245, + 245, + 124, + 245, + 245, + 386, + 386, + 162, + 141, + 273, + 273, + 386, + 340, + 340, + 340, + 241, + 241, + 67, + 150, + 195, + 146, + 146, + 146, + 149, + 149, + 92, + 92, + 195, + 240, + 162, + 198, + 198, + 215, + 215, + 112, + 215, + 215, + 267, + 147, + 388, + 94, + 388, + 388, + 30, + 353, + 367, + 330, + 330, + 279, + 19, + 19, + 38, + 216, + 216, + 216, + 279, + 279, + 279, + 279, + 279, + 151, + 80, + 151, + 151, + 127, + 127, + 27, + 99, + 165, + 165, + 165, + 223, + 223, + 223, + 214, + 123, + 123, + 123, + 123, + 214, + 203, + 203, + 224, + 324, + 324, + 325, + 324, + 324, + 324, + 324, + 375, + 375, + 333, + 333, + 135, + 135, + 135, + 52, + 52, + 52, + 65, + 65, + 61, + 61, + 61, + 61, + 97, + 154, + 154, + 153, + 216, + 257, + 257, + 258, + 89, + 89, + 258, + 258, + 258, + 262, + 44, + 44, + 27, + 27, + 24, + 262, + 262, + 262, + 179, + 299, + 268, + 268, + 297, + 271, + 134, + 134, + 134, + 134, + 268, + 268, + 244, + 189, + 270, + 270, + 110, + 270, + 333, + 333, + 269, + 348, + 348, + 349, + 347, + 333, + 192, + 286, + 288, + 70, + 70, + 288, + 233, + 233, + 288, + 113, + 113, + 288, + 192, + 249, + 249, + 249, + 286, + 286, + 349, + 107, + 107, + 107, + 107, + 70, + 247, + 126, + 126, + 161, + 231, + 247, + 247, + 313, + 349, + 391, + 349, + 332, + 122, + 332, + 332, + 361, + 357, + 357, + 399, + 97, + 97, + 97, + 224, + 321, + 324, + 374, + 388, + 388, + 385, + 385, + 385, + 206, + 206, + 206, + 206, + 206, + 171, + 0, + 231, + 83, + 396, + 352, + 355, + 266, + 266, + 267, + 54, + 54, + 340, + 340, + 340, + 340, + 183, + 183, + 370, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 128, + 128, + 128, + 273, + 198, + 192, + 192, + 49, + 49, + 13, + 38, + 144, + 192, + 192, + 164, + 169, + 121, + 247, + 253, + 219, + 253, + 264, + 175, + 252, + 302, + 278, + 395, + 361, + 361, + 361, + 238, + 361, + 136, + 136, + 378, + 369, + 369, + 361, + 400, + 400, + 129, + 183, + 400, + 145, + 230, + 326, + 307, + 307, + 307, + 28, + 28, + 28, + 75, + 75, + 93, + 93, + 93, + 307, + 298, + 29, + 78, + 78, + 37, + 133, + 133, + 130, + 130, + 130, + 100, + 85, + 193, + 170, + 170, + 298, + 298, + 298, + 185, + 247, + 245, + 338, + 342, + 325, + 272, + 394, + 394, + 394, + 39, + 394, + 394, + 331, + 247, + 247, + 269, + 269, + 305, + 305, + 156, + 112, + 386, + 388, + 372, + 372, + 78, + 78, + 372, + 245, + 392, + 373, + 110, + 110, + 110, + 217, + 289, + 289, + 182, + 134, + 143, + 224, + 379, + 69, + 69, + 164, + 202, + 202, + 355, + 338, + 299, + 299, + 299, + 4, + 4, + 91, + 91, + 91, + 91, + 143, + 17, + 17, + 143, + 236, + 83, + 76, + 83, + 83, + 83, + 83, + 83, + 116, + 236, + 149, + 149, + 236, + 8, + 236, + 236, + 236, + 236, + 125, + 125, + 125, + 185, + 185, + 80, + 185, + 45, + 45, + 45, + 159, + 159, + 155, + 155, + 185, + 161, + 161, + 225, + 316, + 316, + 304, + 274, + 197, + 274, + 260, + 252, + 238, + 238, + 238, + 255, + 255, + 5, + 100, + 88, + 377, + 392, + 26, + 26, + 26, + 26, + 26, + 26, + 112, + 180, + 175, + 245, + 249, + 392, + 384, + 384, + 384, + 397, + 397, + 388, + 62, + 115, + 388, + 388, + 344, + 77, + 77, + 355, + 78, + 78, + 78, + 78, + 184, + 184, + 297, + 279, + 49, + 274, + 180, + 180, + 180, + 274, + 89, + 89, + 53, + 89, + 89, + 160, + 287, + 205, + 355, + 355, + 395, + 121, + 188, + 358, + 358, + 123, + 358, + 217, + 398, + 394, + 177, + 177, + 177, + 342, + 93, + 43, + 43, + 43, + 43, + 43, + 4, + 57, + 57, + 57, + 57, + 57, + 57, + 57, + 57, + 59, + 59, + 59, + 115, + 115, + 92, + 92, + 92, + 92, + 93, + 93, + 136, + 136, + 136, + 136, + 128, + 153, + 153, + 128, + 128, + 128, + 128, + 224, + 166, + 166, + 36, + 36, + 36, + 36, + 36, + 200, + 173, + 173, + 207, + 201, + 201, + 165, + 214, + 279, + 320, + 320, + 320, + 267, + 258, + 300, + 296, + 296, + 302, + 302, + 15, + 135, + 135, + 218, + 218, + 218, + 218, + 302, + 285, + 285, + 285, + 285, + 73, + 285, + 378, + 378, + 131, + 23, + 23, + 23, + 58, + 53, + 53, + 53, + 53, + 131, + 67, + 67, + 67, + 131, + 150, + 150, + 150, + 146, + 130, + 103, + 232, + 232, + 232, + 232, + 232, + 232, + 232, + 179, + 193, + 193, + 193, + 295, + 195, + 297, + 378, + 378, + 387, + 387, + 296, + 387, + 334, + 334, + 334, + 369, + 341, + 334, + 334, + 103, + 31, + 31, + 103, + 103, + 103, + 74, + 103, + 124, + 10, + 124, + 83, + 83, + 120, + 120, + 29, + 50, + 128, + 99, + 16, + 16, + 23, + 23, + 23, + 100, + 100, + 100, + 182, + 236, + 204, + 204, + 303, + 209, + 209, + 186, + 186, + 159, + 159, + 204, + 221, + 286, + 286, + 286, + 270, + 130, + 130, + 130, + 270, + 270, + 270, + 270, + 316, + 58, + 58, + 58, + 267, + 267, + 219, + 259, + 259, + 250, + 334, + 334, + 334, + 342, + 342, + 63, + 63, + 63, + 63, + 97, + 168, + 246, + 257, + 257, + 257, + 319, + 319, + 319, + 240, + 342, + 342, + 48, + 342, + 339, + 339, + 321, + 335, + 335, + 74, + 74, + 178, + 335, + 345, + 377, + 211, + 211, + 211, + 348, + 161, + 348, + 397, + 270, + 112, + 104, + 104, + 104, + 104, + 104, + 129, + 35, + 130, + 130, + 130, + 112, + 112, + 194, + 270, + 279, + 279, + 279, + 279, + 279, + 279, + 55, + 55, + 55, + 55, + 76, + 279, + 279, + 279, + 266, + 397, + 397, + 349, + 344, + 217, + 175, + 352, + 219, + 352, + 352, + 144, + 153, + 248, + 180, + 180, + 180, + 180, + 165, + 165, + 352, + 245, + 245, + 245, + 245, + 379, + 379, + 379, + 66, + 66, + 66, + 66, + 66, + 295, + 295, + 295, + 137, + 379, + 379, + 368, + 322, + 390, + 329, + 42, + 318, + 318, + 144, + 318, + 258, + 258, + 329, + 226, + 226, + 170, + 319, + 265, + 282, + 282, + 282, + 385, + 385, + 385, + 347, + 347, + 105, + 105, + 5, + 5, + 5, + 233, + 55, + 233, + 233, + 233, + 185, + 185, + 347, + 200, + 200, + 200, + 200, + 276, + 276, + 276, + 276, + 251, + 366, + 345, + 345, + 364, + 382, + 382, + 382, + 382, + 380, + 357, + 275, + 357, + 390, + 77, + 77, + 217, + 390, + 390, + 390, + 377, + 42, + 42, + 42, + 42, + 42, + 188, + 188, + 55, + 188, + 241, + 377, + 156, + 376, + 376, + 399, + 127, + 399, + 383, + 248, + 26, + 26, + 26, + 26, + 127, + 127, + 217, + 212, + 248, + 248, + 248, + 248, + 289, + 289, + 289, + 383, + 345, + 318, + 161, + 161, + 88, + 161, + 318, + 318, + 318, + 345, + 350, + 382, + 387, + 349, + 10, + 157, + 321, + 263, + 340, + 60, + 150, + 150, + 376, + 376, + 376, + 376, + 355, + 355, + 340, + 325, + 325, + 326, + 354, + 345, + 231, + 41, + 41, + 41, + 76, + 30, + 30, + 190, + 190, + 179, + 179, + 179, + 179, + 179, + 179, + 208, + 208, + 59, + 59, + 59, + 59, + 59, + 208, + 175, + 252, + 309, + 296, + 345, + 345, + 354, + 299, + 185, + 185, + 185, + 340, + 204, + 329, + 85, + 313, + 313, + 329, + 334, + 183, + 219, + 127, + 127, + 282, + 370, + 163, + 163, + 70, + 85, + 138, + 138, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 18, + 133, + 45, + 45, + 174, + 183, + 368, + 386, + 8, + 21, + 368, + 368, + 126, + 126, + 126, + 249, + 276, + 157, + 157, + 157, + 211, + 318, + 259, + 156, + 218, + 218, + 200, + 200, + 259, + 57, + 57, + 57, + 57, + 62, + 62, + 37, + 37, + 57, + 57, + 57, + 57, + 287, + 86, + 331, + 331, + 331, + 331, + 331, + 331, + 331, + 9, + 9, + 9, + 34, + 34, + 102, + 73, + 73, + 6, + 6, + 169, + 4, + 169, + 181, + 251, + 251, + 364, + 364, + 224, + 224, + 364, + 364, + 176, + 339, + 396, + 349, + 349, + 154, + 154, + 154, + 213, + 163, + 269, + 269, + 269, + 269, + 260, + 260, + 32, + 393, + 215, + 393, + 213, + 213, + 213, + 258, + 393, + 393, + 393, + 343, + 343, + 15, + 393, + 393, + 302, + 302, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 153, + 153, + 120, + 159, + 229, + 233, + 173, + 55, + 55, + 55, + 55, + 55, + 55, + 55, + 173, + 149, + 173, + 173, + 173, + 173, + 35, + 169, + 169, + 179, + 179, + 317, + 252, + 252, + 252, + 252, + 125, + 252, + 245, + 245, + 245, + 54, + 158, + 245, + 272, + 272, + 272, + 272, + 259, + 288, + 288, + 288, + 288, + 205, + 288, + 288, + 285, + 334, + 375, + 387, + 387, + 387, + 391, + 391, + 391, + 182, + 333, + 323, + 154, + 130, + 130, + 90, + 90, + 90, + 228, + 228, + 144, + 228, + 228, + 213, + 213, + 213, + 247, + 256, + 256, + 256, + 256, + 256, + 187, + 268, + 46, + 52, + 84, + 84, + 84, + 84, + 268, + 268, + 144, + 144, + 144, + 111, + 17, + 17, + 17, + 269, + 269, + 295, + 297, + 280, + 365, + 72, + 75, + 75, + 15, + 53, + 91, + 91, + 191, + 119, + 119, + 62, + 191, + 181, + 181, + 294, + 294, + 294, + 294, + 294, + 294, + 264, + 264, + 343, + 126, + 343, + 343, + 344, + 103, + 344, + 344, + 356, + 356, + 356, + 3, + 3, + 3, + 250, + 356, + 66, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 266, + 266, + 266, + 266, + 266, + 356, + 325, + 383, + 274, + 274, + 368, + 368, + 61, + 22, + 368, + 368, + 69, + 69, + 69, + 69, + 69, + 230, + 104, + 104, + 230, + 213, + 279, + 155, + 241, + 335, + 54, + 335, + 289, + 64, + 64, + 193, + 193, + 193, + 193, + 51, + 51, + 51, + 51, + 26, + 26, + 67, + 232, + 169, + 310, + 310, + 68, + 310, + 310, + 164, + 164, + 326, + 398, + 63, + 147, + 398, + 45, + 70, + 70, + 70, + 244, + 244, + 140, + 140, + 5, + 140, + 131, + 7, + 7, + 7, + 110, + 110, + 200, + 200, + 200, + 244, + 262, + 92, + 92, + 92, + 92, + 92, + 109, + 109, + 262, + 267, + 398, + 19, + 19, + 19, + 146, + 146, + 146, + 146, + 126, + 385, + 164, + 164, + 340, + 246, + 246, + 246, + 340, + 334, + 197, + 161, + 161, + 211, + 211, + 211, + 352, + 352, + 339, + 34, + 339, + 327, + 336, + 142, + 345, + 351, + 351, + 350, + 350, + 183, + 183, + 231, + 175, + 175, + 95, + 47, + 47, + 47, + 95, + 95, + 95, + 146, + 146, + 146, + 156, + 26, + 156, + 156, + 156, + 101, + 101, + 119, + 154, + 63, + 63, + 154, + 154, + 94, + 94, + 94, + 175, + 175, + 179, + 25, + 25, + 199, + 199, + 199, + 199, + 199, + 209, + 235, + 156, + 156, + 156, + 224, + 363, + 363, + 327, + 270, + 179, + 87, + 87, + 179, + 179, + 179, + 179, + 229, + 327, + 281, + 33, + 33, + 33, + 22, + 281, + 273, + 273, + 377, + 207, + 377, + 100, + 100, + 100, + 100, + 378, + 339, + 108, + 99, + 386, + 355, + 355, + 203, + 203, + 203, + 23, + 23, + 23, + 23, + 23, + 37, + 115, + 226, + 355, + 395, + 393, + 25, + 25, + 25, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 281, + 240, + 240, + 240, + 316, + 393, + 346, + 113, + 113, + 113, + 15, + 113, + 113, + 86, + 115, + 115, + 121, + 121, + 61, + 61, + 121, + 135, + 383, + 340, + 340, + 340, + 340, + 375, + 230, + 375, + 376, + 376, + 294, + 294, + 85, + 10, + 83, + 151, + 151, + 151, + 151, + 83, + 83, + 97, + 354, + 317, + 354, + 354, + 354, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 47, + 206, + 206, + 318, + 240, + 96, + 96, + 364, + 14, + 160, + 160, + 155, + 155, + 364, + 364, + 364, + 364, + 364, + 364, + 341, + 190, + 190, + 190, + 190, + 69, + 164, + 164, + 283, + 329, + 329, + 59, + 41, + 41, + 172, + 164, + 164, + 164, + 186, + 186, + 216, + 216, + 216, + 216, + 180, + 180, + 180, + 93, + 93, + 180, + 230, + 306, + 306, + 306, + 275, + 312, + 37, + 37, + 37, + 37, + 37, + 37, + 8, + 197, + 288, + 390, + 390, + 224, + 224, + 239, + 390, + 326, + 218, + 326, + 326, + 331, + 331, + 331, + 331, + 352, + 177, + 352, + 352, + 352, + 94, + 54, + 54, + 1, + 39, + 137, + 152, + 179, + 212, + 182, + 55, + 55, + 224, + 137, + 137, + 181, + 181, + 4, + 39, + 39, + 39, + 39, + 184, + 187, + 141, + 101, + 5, + 187, + 187, + 208, + 208, + 191, + 309, + 275, + 343, + 343, + 63, + 63, + 336, + 336, + 336, + 376, + 376, + 376, + 376, + 247, + 376, + 238, + 238, + 238, + 238, + 376, + 376, + 376, + 206, + 206, + 204, + 204, + 204, + 63, + 63, + 63, + 63, + 63, + 63, + 42, + 114, + 242, + 385, + 322, + 322, + 351, + 351, + 185, + 32, + 325, + 335, + 164, + 388, + 0, + 388, + 389, + 28, + 28, + 322, + 142, + 56, + 56, + 142, + 142, + 109, + 94, + 228, + 282, + 254, + 228, + 307, + 307, + 292, + 205, + 123, + 123, + 150, + 310, + 310, + 297, + 297, + 283, + 241, + 241, + 241, + 89, + 220, + 277, + 261, + 273, + 322, + 322, + 322, + 255, + 255, + 322, + 322, + 345, + 164, + 198, + 198, + 374, + 372, + 372, + 372, + 372, + 270, + 345, + 336, + 336, + 336, + 336, + 336, + 336, + 336, + 180, + 244, + 244, + 343, + 352, + 361, + 182, + 182, + 182, + 81, + 81, + 182, + 238, + 238, + 238, + 238, + 357, + 357, + 357, + 21, + 21, + 21, + 79, + 33, + 95, + 298, + 282, + 352, + 352, + 389, + 339, + 383, + 383, + 342, + 297, + 56, + 56, + 297, + 154, + 297, + 297, + 75, + 75, + 75, + 196, + 196, + 7, + 7, + 7, + 238, + 238, + 222, + 297, + 319, + 77, + 77, + 77, + 77, + 77, + 77, + 319, + 241, + 241, + 241, + 136, + 197, + 310, + 310, + 310, + 310, + 310, + 310, + 55, + 89, + 298, + 10, + 342, + 349, + 341, + 339, + 339, + 339, + 339, + 54, + 54, + 5, + 234, + 2, + 2, + 2, + 231, + 231, + 217, + 217, + 43, + 43, + 43, + 43, + 111, + 111, + 111, + 120, + 120, + 217, + 217, + 223, + 223, + 74, + 74, + 221, + 221, + 221, + 220, + 220, + 255, + 24, + 24, + 212, + 212, + 267, + 261, + 261, + 261, + 202, + 307, + 307, + 269, + 269, + 107, + 107, + 107, + 207, + 186, + 269, + 269, + 269, + 24, + 96, + 7, + 7, + 7, + 313, + 298, + 298, + 298, + 262, + 288, + 339, + 339, + 339, + 360, + 164, + 90, + 90, + 299, + 210, + 210, + 307, + 32, + 32, + 307, + 65, + 65, + 148, + 148, + 266, + 252, + 256, + 340, + 340, + 361, + 6, + 334, + 334, + 334, + 334, + 342, + 376, + 360, + 399, + 327, + 82, + 82, + 24, + 24, + 230, + 194, + 194, + 104, + 104, + 115, + 342, + 380, + 328, + 328, + 328, + 328, + 328, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 158, + 158, + 158, + 91, + 176, + 390, + 308, + 203, + 203, + 203, + 229, + 54, + 54, + 54, + 133, + 229, + 229, + 135, + 165, + 85, + 189, + 40, + 40, + 40, + 122, + 142, + 142, + 170, + 170, + 170, + 170, + 198, + 106, + 198, + 215, + 122, + 122, + 122, + 122, + 122, + 215, + 105, + 297, + 86, + 86, + 86, + 271, + 288, + 16, + 16, + 16, + 188, + 188, + 188, + 189, + 189, + 189, + 288, + 103, + 103, + 242, + 242, + 195, + 242, + 242, + 242, + 120, + 242, + 281, + 194, + 43, + 147, + 214, + 214, + 187, + 109, + 187, + 187, + 235, + 235, + 119, + 119, + 119, + 119, + 213, + 185, + 189, + 78, + 189, + 189, + 189, + 272, + 284, + 277, + 277, + 293, + 293, + 229, + 258, + 315, + 173, + 73, + 245, + 245, + 301, + 301, + 18, + 18, + 18, + 18, + 18, + 162, + 148, + 162, + 162, + 162, + 162, + 162, + 162, + 161, + 83, + 83, + 209, + 194, + 200, + 236, + 236, + 236, + 310, + 256, + 14, + 256, + 256, + 123, + 363, + 286, + 286, + 286, + 372, + 32, + 32, + 32, + 32, + 32, + 32, + 204, + 217, + 217, + 49, + 49, + 194, + 189, + 189, + 189, + 286, + 386, + 386, + 320, + 320, + 320, + 320, + 320, + 389, + 389, + 389, + 31, + 96, + 222, + 389, + 389, + 373, + 343, + 343, + 343, + 343, + 347, + 296, + 376, + 328, + 328, + 188, + 328, + 129, + 129, + 129, + 254, + 254, + 328, + 396, + 396, + 379, + 81, + 345, + 10, + 10, + 10, + 157, + 37, + 37, + 37, + 37, + 37, + 149, + 245, + 122, + 122, + 122, + 245, + 253, + 253, + 319, + 345, + 390, + 167, + 167, + 167, + 57, + 18, + 19, + 81, + 81, + 146, + 146, + 131, + 131, + 167, + 167, + 54, + 54, + 128, + 128, + 128, + 128, + 128, + 142, + 167, + 201, + 258, + 258, + 17, + 258, + 287, + 352, + 352, + 359, + 359, + 130, + 315, + 243, + 243, + 243, + 330, + 47, + 47, + 47, + 47, + 47, + 47, + 76, + 76, + 76, + 76, + 76, + 76, + 85, + 182, + 330, + 153, + 115, + 346, + 346, + 346, + 330, + 330, + 330, + 330, + 16, + 16, + 173, + 300, + 300, + 300, + 300, + 303, + 303, + 303, + 309, + 330, + 330, + 167, + 167, + 167, + 167, + 330, + 330, + 339, + 259, + 259, + 368, + 348, + 348, + 348, + 359, + 229, + 229, + 229, + 229, + 229, + 110, + 307, + 307, + 234, + 307, + 195, + 307, + 256, + 296, + 359, + 129, + 129, + 129, + 173, + 195, + 359, + 338, + 363, + 340, + 340, + 340, + 369, + 49, + 381, + 381, + 381, + 351, + 372, + 332, + 126, + 363, + 363, + 334, + 46, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 156, + 104, + 104, + 12, + 12, + 12, + 104, + 9, + 48, + 48, + 133, + 36, + 36, + 133, + 91, + 106, + 12, + 217, + 217, + 217, + 171, + 185, + 177, + 177, + 177, + 177, + 177, + 177, + 169, + 161, + 161, + 161, + 161, + 219, + 219, + 182, + 54, + 54, + 54, + 54, + 54, + 54, + 54, + 54, + 54, + 182, + 238, + 238, + 238, + 162, + 162, + 162, + 199, + 199, + 286, + 256, + 68, + 242, + 242, + 213, + 0, + 0, + 0, + 0, + 213, + 161, + 174, + 174, + 174, + 174, + 182, + 182, + 189, + 189, + 242, + 242, + 242, + 203, + 265, + 265, + 265, + 265, + 270, + 270, + 303, + 258, + 385, + 362, + 175, + 175, + 175, + 175, + 175, + 246, + 352, + 371, + 101, + 57, + 169, + 169, + 169, + 169, + 304, + 304, + 122, + 79, + 79, + 304, + 275, + 28, + 28, + 170, + 243, + 296, + 372, + 115, + 115, + 115, + 283, + 283, + 372, + 11, + 11, + 11, + 11, + 68, + 372, + 346, + 346, + 399, + 366, + 209, + 19, + 130, + 301, + 301, + 55, + 55, + 301, + 252, + 252, + 131, + 81, + 81, + 171, + 171, + 165, + 54, + 54, + 54, + 355, + 355, + 219, + 65, + 65, + 194, + 286, + 355, + 34, + 260, + 13, + 13, + 85, + 253, + 0, + 0, + 0, + 0, + 253, + 98, + 355, + 355, + 355, + 329, + 396, + 134, + 187, + 396, + 382, + 382, + 342, + 47, + 47, + 47, + 47, + 47, + 47, + 75, + 180, + 180, + 180, + 220, + 193, + 191, + 266, + 266, + 136, + 136, + 84, + 370, + 123, + 123, + 67, + 67, + 67, + 53, + 389, + 351, + 397, + 397, + 374, + 76, + 76, + 165, + 165, + 165, + 165, + 21, + 59, + 330, + 190, + 42, + 42, + 201, + 260, + 142, + 158, + 269, + 330, + 108, + 209, + 209, + 142, + 395, + 395, + 395, + 377, + 334, + 75, + 75, + 75, + 251, + 251, + 251, + 243, + 171, + 160, + 160, + 334, + 334, + 264, + 130, + 130, + 130, + 170, + 170, + 264, + 264, + 334, + 334, + 363, + 102, + 102, + 273, + 19, + 347, + 36, + 347, + 347, + 354, + 354, + 354, + 354, + 354, + 354, + 150, + 326, + 326, + 380, + 380, + 397, + 397, + 379, + 353, + 336, + 328, + 328, + 328, + 386, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 148, + 283, + 262, + 109, + 109, + 284, + 284, + 284, + 150, + 150, + 246, + 152, + 152, + 152, + 152, + 152, + 153, + 146, + 146, + 146, + 116, + 246, + 9, + 9, + 29, + 29, + 83, + 83, + 161, + 246, + 98, + 265, + 264, + 264, + 90, + 90, + 26, + 26, + 26, + 3, + 3, + 80, + 7, + 7, + 102, + 229, + 293, + 247, + 7, + 7, + 234, + 234, + 234, + 65, + 234, + 247, + 386, + 386, + 386, + 389, + 352, + 352, + 331, + 92, + 397, + 397, + 389, + 389, + 389, + 365, + 365, + 324, + 212, + 74, + 91, + 91, + 212, + 324, + 338, + 36, + 131, + 131, + 338, + 4, + 320, + 320, + 397, + 263, + 356, + 23, + 23, + 105, + 150, + 150, + 92, + 92, + 322, + 366, + 224, + 224, + 224, + 310, + 322, + 321, + 321, + 321, + 365, + 365, + 159, + 159, + 108, + 108, + 108, + 108, + 108, + 138, + 178, + 295, + 317, + 365, + 365, + 365, + 350, + 118, + 118, + 118, + 295, + 350, + 151, + 151, + 151, + 397, + 356, + 356, + 236, + 236, + 356, + 324, + 211, + 211, + 35, + 35, + 211, + 151, + 151, + 211, + 211, + 266, + 344, + 344, + 363, + 3, + 385, + 40, + 123, + 123, + 123, + 113, + 318, + 349, + 349, + 16, + 221, + 221, + 208, + 149, + 138, + 208, + 92, + 92, + 92, + 111, + 208, + 208, + 208, + 152, + 152, + 152, + 152, + 129, + 129, + 129, + 239, + 142, + 239, + 239, + 225, + 225, + 235, + 38, + 104, + 235, + 235, + 235, + 171, + 171, + 292, + 72, + 72, + 303, + 253, + 294, + 355, + 355, + 355, + 355, + 130, + 347, + 226, + 226, + 176, + 321, + 353, + 387, + 102, + 102, + 102, + 95, + 237, + 11, + 11, + 11, + 11, + 29, + 29, + 29, + 29, + 2, + 155, + 155, + 155, + 126, + 126, + 126, + 237, + 237, + 176, + 176, + 320, + 4, + 22, + 320, + 320, + 152, + 320, + 320, + 387, + 387, + 387, + 387, + 31, + 80, + 11, + 11, + 170, + 86, + 203, + 203, + 203, + 230, + 230, + 230, + 350, + 92, + 90, + 350, + 350, + 385, + 385, + 385, + 122, + 385, + 385, + 387, + 387, + 387, + 327, + 0, + 0, + 0, + 0, + 72, + 87, + 101, + 101, + 93, + 99, + 99, + 182, + 182, + 182, + 128, + 128, + 128, + 128, + 182, + 182, + 182, + 182, + 182, + 298, + 77, + 77, + 77, + 77, + 236, + 278, + 278, + 297, + 40, + 40, + 235, + 235, + 235, + 267, + 327, + 210, + 210, + 41, + 126, + 210, + 223, + 223, + 223, + 176, + 1, + 1, + 1, + 66, + 66, + 66, + 66, + 152, + 21, + 135, + 176, + 176, + 239, + 239, + 239, + 243, + 243, + 284, + 284, + 284, + 279, + 283, + 265, + 265, + 265, + 50, + 50, + 50, + 50, + 28, + 48, + 77, + 77, + 77, + 77, + 77, + 77, + 99, + 192, + 192, + 192, + 25, + 192, + 216, + 37, + 216, + 254, + 185, + 69, + 69, + 196, + 196, + 244, + 244, + 353, + 353, + 353, + 86, + 177, + 335, + 382, + 64, + 64, + 64, + 55, + 55, + 74, + 207, + 194, + 166, + 166, + 79, + 79, + 79, + 166, + 216, + 237, + 163, + 163, + 241, + 241, + 273, + 273, + 382, + 382, + 285, + 208, + 208, + 208, + 285, + 2, + 188, + 337, + 219, + 219, + 219, + 219, + 219, + 213, + 213, + 337, + 337, + 71, + 71, + 71, + 71, + 61, + 61, + 15, + 15, + 138, + 138, + 138, + 121, + 121, + 161, + 161, + 161, + 377, + 321, + 321, + 171, + 171, + 171, + 171, + 171, + 321, + 247, + 321, + 137, + 321, + 321, + 258, + 258, + 258, + 337, + 327, + 327, + 340, + 340, + 373, + 226, + 197, + 322, + 353, + 36, + 5, + 100, + 100, + 100, + 29, + 29, + 29, + 100, + 161, + 161, + 118, + 25, + 25, + 118, + 118, + 118, + 161, + 161, + 197, + 292, + 292, + 292, + 259, + 259, + 259, + 375, + 375, + 336, + 16, + 348, + 342, + 334, + 334, + 392, + 349, + 349, + 22, + 22, + 22, + 4, + 4, + 146, + 123, + 123, + 349, + 349, + 378, + 117, + 84, + 84, + 84, + 348, + 348, + 88, + 88, + 393, + 363, + 63, + 363, + 37, + 210, + 108, + 123, + 123, + 163, + 14, + 387, + 45, + 56, + 56, + 56, + 206, + 206, + 206, + 206, + 214, + 169, + 169, + 355, + 355, + 258, + 258, + 355, + 371, + 254, + 196, + 196, + 196, + 224, + 224, + 97, + 97, + 97, + 224, + 224, + 216, + 216, + 146, + 119, + 119, + 216, + 5, + 292, + 292, + 36, + 36, + 36, + 91, + 136, + 136, + 223, + 139, + 139, + 139, + 139, + 139, + 139, + 139, + 139, + 194, + 194, + 194, + 194, + 292, + 292, + 104, + 292, + 292, + 292, + 168, + 168, + 106, + 101, + 101, + 101, + 88, + 88, + 211, + 211, + 115, + 36, + 36, + 115, + 147, + 211, + 211, + 184, + 184, + 184, + 193, + 193, + 237, + 207, + 72, + 38, + 38, + 38, + 140, + 292, + 184, + 292, + 292, + 292, + 292, + 292, + 61, + 61, + 61, + 61, + 61, + 61, + 227, + 298, + 251, + 298, + 298, + 317, + 190, + 190, + 190, + 190, + 190, + 190, + 56, + 56, + 317, + 317, + 317, + 313, + 279, + 297, + 108, + 108, + 291, + 291, + 28, + 205, + 119, + 119, + 225, + 15, + 15, + 15, + 125, + 225, + 283, + 378, + 38, + 24, + 281, + 378, + 378, + 378, + 384, + 384, + 397, + 397, + 397, + 333, + 329, + 190, + 274, + 8, + 8, + 329, + 360, + 387, + 387, + 387, + 340, + 334, + 213, + 213, + 213, + 213, + 274, + 274, + 334, + 334, + 111, + 234, + 334, + 331, + 331, + 333, + 375, + 338, + 338, + 322, + 81, + 81, + 81, + 170, + 170, + 170, + 170, + 228, + 228, + 286, + 286, + 286, + 85, + 286, + 286, + 286, + 172, + 172, + 172, + 317, + 110, + 318, + 318, + 307, + 162, + 162, + 253, + 3, + 3, + 3, + 77, + 77, + 322, + 20, + 20, + 42, + 322, + 383, + 366, + 366, + 322, + 311, + 294, + 294, + 348, + 348, + 348, + 335, + 172, + 172, + 285, + 197, + 197, + 285, + 335, + 335, + 335, + 276, + 276, + 283, + 283, + 283, + 283, + 283, + 283, + 303, + 303, + 303, + 335, + 381, + 384, + 384, + 377, + 377, + 353, + 233, + 353, + 267, + 103, + 103, + 35, + 35, + 103, + 87, + 135, + 135, + 143, + 143, + 143, + 219, + 219, + 353, + 342, + 59, + 362, + 59, + 59, + 362, + 336, + 348, + 348, + 348, + 179, + 179, + 294, + 135, + 135, + 294, + 89, + 183, + 84, + 294, + 294, + 198, + 198, + 198, + 198, + 198, + 74, + 198, + 294, + 249, + 243, + 90, + 90, + 240, + 240, + 261, + 261, + 140, + 140, + 396, + 161, + 284, + 389, + 389, + 389, + 389, + 118, + 300, + 300, + 300, + 389, + 324, + 324, + 321, + 49, + 45, + 143, + 186, + 189, + 189, + 189, + 189, + 189, + 189, + 78, + 189, + 189, + 182, + 180, + 192, + 306, + 136, + 136, + 155, + 155, + 306, + 265, + 350, + 350, + 211, + 198, + 350, + 23, + 43, + 43, + 43, + 43, + 43, + 43, + 305, + 305, + 345, + 383, + 12, + 318, + 318, + 334, + 354, + 354, + 280, + 141, + 141, + 141, + 141, + 398, + 215, + 353, + 87, + 50, + 50, + 50, + 149, + 149, + 116, + 214, + 194, + 194, + 353, + 199, + 199, + 199, + 216, + 216, + 216, + 184, + 120, + 120, + 182, + 320, + 353, + 353, + 353, + 31, + 31, + 56, + 56, + 186, + 1, + 1, + 1, + 186, + 186, + 263, + 297, + 11, + 189, + 189, + 170, + 170, + 320, + 353, + 65, + 65, + 65, + 65, + 65, + 138, + 148, + 148, + 129, + 129, + 98, + 307, + 83, + 83, + 138, + 138, + 149, + 149, + 149, + 189, + 189, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 241, + 303, + 303, + 353, + 330, + 330, + 350, + 350, + 326, + 326, + 326, + 376, + 376, + 376, + 376, + 398, + 343, + 84, + 203, + 1, + 1, + 1, + 1, + 1, + 14, + 14, + 14, + 14, + 119, + 119, + 183, + 179, + 84, + 84, + 4, + 4, + 49, + 49, + 49, + 49, + 28, + 69, + 84, + 84, + 84, + 84, + 84, + 118, + 118, + 28, + 119, + 233, + 216, + 216, + 343, + 363, + 363, + 27, + 27, + 377, + 223, + 202, + 202, + 21, + 94, + 94, + 112, + 128, + 202, + 156, + 156, + 115, + 202, + 202, + 215, + 288, + 288, + 377, + 381, + 388, + 368, + 135, + 358, + 358, + 72, + 72, + 72, + 358, + 358, + 173, + 399, + 10, + 130, + 83, + 399, + 368, + 368, + 362, + 383, + 358, + 30, + 181, + 247, + 247, + 111, + 111, + 293, + 293, + 358, + 358, + 358, + 358, + 355, + 358, + 348, + 388, + 370, + 367, + 47, + 47, + 47, + 47, + 47, + 47, + 47, + 47, + 42, + 185, + 185, + 239, + 241, + 122, + 22, + 9, + 156, + 156, + 79, + 79, + 79, + 79, + 79, + 79, + 79, + 79, + 187, + 187, + 241, + 335, + 339, + 366, + 366, + 145, + 145, + 56, + 56, + 61, + 399, + 399, + 328, + 328, + 2, + 137, + 320, + 320, + 320, + 320, + 15, + 320, + 320, + 12, + 12, + 12, + 120, + 120, + 120, + 120, + 120, + 228, + 228, + 39, + 226, + 226, + 180, + 180, + 320, + 320, + 282, + 282, + 249, + 249, + 239, + 249, + 249, + 288, + 309, + 309, + 309, + 286, + 314, + 278, + 278, + 48, + 48, + 278, + 278, + 278, + 269, + 294, + 294, + 309, + 25, + 25, + 25, + 139, + 328, + 339, + 354, + 237, + 354, + 337, + 354, + 125, + 63, + 71, + 71, + 376, + 40, + 222, + 221, + 268, + 268, + 20, + 20, + 109, + 109, + 109, + 268, + 268, + 296, + 376, + 350, + 59, + 124, + 375, + 375, + 147, + 375, + 108, + 108, + 108, + 375, + 380, + 394, + 394, + 213, + 213, + 197, + 74, + 74, + 107, + 107, + 107, + 288, + 288, + 193, + 288, + 277, + 283, + 283, + 248, + 308, + 395, + 339, + 71, + 71, + 365, + 399, + 93, + 101, + 101, + 101, + 236, + 236, + 399, + 273, + 365, + 195, + 195, + 195, + 195, + 195, + 163, + 28, + 28, + 28, + 36, + 113, + 191, + 191, + 161, + 135, + 161, + 223, + 223, + 223, + 223, + 223, + 141, + 141, + 57, + 202, + 269, + 269, + 318, + 111, + 25, + 25, + 25, + 25, + 133, + 133, + 133, + 133, + 133, + 133, + 146, + 146, + 231, + 161, + 264, + 265, + 265, + 5, + 41, + 41, + 105, + 265, + 265, + 265, + 265, + 265, + 265, + 265, + 251, + 224, + 224, + 187, + 245, + 294, + 96, + 150, + 150, + 294, + 95, + 95, + 95, + 140, + 11, + 11, + 11, + 11, + 11, + 163, + 294, + 5, + 179, + 304, + 241, + 241, + 346, + 346, + 393, + 396, + 371, + 141, + 371, + 385, + 385, + 51, + 51, + 16, + 190, + 189, + 197, + 151, + 301, + 198, + 198, + 6, + 6, + 6, + 31, + 31, + 198, + 294, + 294, + 294, + 318, + 298, + 306, + 93, + 251, + 251, + 89, + 89, + 240, + 240, + 240, + 202, + 251, + 251, + 251, + 251, + 251, + 104, + 318, + 33, + 160, + 160, + 160, + 179, + 317, + 103, + 103, + 103, + 103, + 103, + 155, + 155, + 222, + 222, + 224, + 317, + 385, + 80, + 80, + 80, + 80, + 53, + 53, + 53, + 169, + 149, + 17, + 301, + 164, + 164, + 203, + 203, + 385, + 385, + 385, + 385, + 385, + 385, + 385, + 12, + 385, + 398, + 398, + 331, + 331, + 331, + 311, + 311, + 375, + 94, + 388, + 155, + 340, + 340, + 382, + 113, + 234, + 279, + 361, + 369, + 175, + 369, + 201, + 350, + 350, + 396, + 334, + 334, + 334, + 334, + 334, + 145, + 340, + 335, + 290, + 290, + 290, + 290, + 290, + 276, + 276, + 335, + 340, + 152, + 152, + 152, + 187, + 187, + 187, + 187, + 282, + 282, + 60, + 54, + 54, + 336, + 70, + 363, + 363, + 98, + 312, + 359, + 203, + 203, + 49, + 369, + 346, + 341, + 201, + 201, + 341, + 315, + 40, + 219, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 1, + 14, + 14, + 65, + 147, + 166, + 166, + 166, + 208, + 208, + 44, + 15, + 208, + 208, + 170, + 170, + 170, + 170, + 191, + 191, + 191, + 199, + 199, + 199, + 303, + 45, + 45, + 45, + 212, + 303, + 363, + 363, + 363, + 382, + 388, + 388, + 393, + 393, + 393, + 393, + 95, + 74, + 95, + 95, + 95, + 126, + 97, + 79, + 79, + 79, + 73, + 73, + 97, + 237, + 237, + 259, + 277, + 260, + 115, + 40, + 40, + 40, + 40, + 40, + 138, + 138, + 138, + 138, + 313, + 313, + 305, + 3, + 3, + 393, + 349, + 366, + 393, + 353, + 353, + 295, + 243, + 36, + 243, + 353, + 152, + 152, + 238, + 111, + 238, + 147, + 147, + 147, + 147, + 217, + 217, + 374, + 374, + 374, + 160, + 18, + 18, + 374, + 391, + 391, + 356, + 352, + 352, + 53, + 18, + 18, + 67, + 67, + 36, + 126, + 126, + 126, + 27, + 27, + 27, + 27, + 27, + 267, + 352, + 351, + 351, + 45, + 45, + 345, + 272, + 211, + 211, + 211, + 99, + 345, + 323, + 291, + 26, + 15, + 15, + 164, + 164, + 27, + 27, + 237, + 36, + 232, + 94, + 94, + 322, + 1, + 1, + 1, + 1, + 1, + 21, + 21, + 283, + 270, + 7, + 142, + 142, + 142, + 142, + 69, + 111, + 111, + 48, + 48, + 210, + 210, + 38, + 38, + 38, + 38, + 122, + 122, + 103, + 103, + 69, + 69, + 69, + 103, + 103, + 103, + 136, + 160, + 229, + 229, + 229, + 116, + 44, + 232, + 49, + 216, + 216, + 216, + 225, + 225, + 225, + 175, + 175, + 218, + 230, + 230, + 240, + 240, + 227, + 199, + 313, + 313, + 272, + 272, + 272, + 307, + 151, + 151, + 151, + 36, + 36, + 36, + 36, + 36, + 316, + 316, + 316, + 316, + 251, + 273, + 63, + 121, + 273, + 273, + 112, + 195, + 154, + 273, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 32, + 32, + 123, + 123, + 123, + 189, + 189, + 189, + 189, + 61, + 61, + 189, + 312, + 312, + 319, + 319, + 285, + 239, + 239, + 285, + 301, + 253, + 355, + 378, + 378, + 378, + 156, + 156, + 127, + 127, + 127, + 130, + 130, + 77, + 130, + 237, + 202, + 378, + 378, + 378, + 89, + 374, + 340, + 399, + 382, + 382, + 382, + 65, + 65, + 65, + 65, + 382, + 366, + 308, + 308, + 370, + 209, + 209, + 209, + 290, + 325, + 325, + 292, + 292, + 322, + 322, + 374, + 374, + 374, + 374, + 374, + 374, + 72, + 235, + 374, + 82, + 203, + 203, + 245, + 374, + 393, + 393, + 295, + 399, + 399, + 399, + 335, + 180, + 93, + 180, + 180, + 180, + 361, + 385, + 385, + 370, + 370, + 370, + 366, + 152, + 152, + 77, + 77, + 207, + 104, + 180, + 157, + 344, + 383, + 383, + 383, + 220, + 9, + 9, + 9, + 383, + 383, + 20, + 20, + 20, + 158, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 145, + 174, + 171, + 171, + 171, + 171, + 302, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 13, + 120, + 162, + 201, + 208, + 208, + 258, + 310, + 269, + 269, + 333, + 333, + 337, + 337, + 337, + 180, + 83, + 83, + 40, + 83, + 337, + 98, + 63, + 370, + 86, + 86, + 370, + 31, + 31, + 186, + 186, + 176, + 241, + 366, + 271, + 372, + 372, + 82, + 26, + 26, + 26, + 378, + 237, + 237, + 321, + 321, + 394, + 391, + 290, + 51, + 39, + 313, + 322, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 47, + 285, + 285, + 285, + 286, + 299, + 113, + 113, + 122, + 122, + 122, + 20, + 118, + 236, + 372, + 160, + 160, + 160, + 57, + 100, + 100, + 100, + 100, + 138, + 138, + 196, + 196, + 230, + 230, + 226, + 328, + 328, + 328, + 328, + 328, + 328, + 204, + 39, + 39, + 192, + 397, + 10, + 10, + 101, + 101, + 282, + 282, + 261, + 261, + 214, + 214, + 261, + 396, + 396, + 236, + 236, + 236, + 76, + 76, + 76, + 236, + 363, + 199, + 199, + 199, + 199, + 0, + 135, + 68, + 68, + 168, + 168, + 136, + 136, + 136, + 211, + 223, + 219, + 174, + 279, + 286, + 144, + 144, + 144, + 145, + 119, + 119, + 97, + 97, + 145, + 39, + 152, + 152, + 152, + 152, + 152, + 152, + 152, + 152, + 87, + 87, + 87, + 128, + 7, + 7, + 128, + 37, + 169, + 169, + 169, + 44, + 80, + 80, + 139, + 139, + 176, + 203, + 65, + 232, + 229, + 55, + 55, + 19, + 19, + 19, + 36, + 34, + 34, + 34, + 34, + 54, + 65, + 63, + 100, + 137, + 137, + 137, + 229, + 229, + 197, + 197, + 197, + 189, + 221, + 286, + 286, + 286, + 286, + 286, + 286, + 256, + 260, + 260, + 169, + 260, + 260, + 260, + 260, + 254, + 296, + 296, + 315, + 315, + 243, + 243, + 188, + 188, + 243, + 243, + 243, + 387, + 168, + 168, + 168, + 168, + 107, + 106, + 168, + 168, + 261, + 315, + 312, + 312, + 312, + 150, + 312, + 56, + 62, + 62, + 62, + 113, + 145, + 231, + 187, + 187, + 101, + 101, + 194, + 173, + 180, + 301, + 301, + 304, + 381, + 382, + 382, + 90, + 237, + 136, + 136, + 136, + 291, + 180, + 180, + 180, + 180, + 19, + 19, + 16, + 16, + 16, + 16, + 3, + 61, + 61, + 61, + 61, + 176, + 216, + 216, + 144, + 144, + 216, + 88, + 88, + 142, + 142, + 142, + 142, + 142, + 216, + 216, + 177, + 206, + 291, + 291, + 291, + 282, + 281, + 296, + 382, + 392, + 309, + 309, + 309, + 381, + 381, + 324, + 324, + 393, + 351, + 351, + 351, + 355, + 329, + 141, + 254, + 398, + 398, + 368, + 271, + 368, + 368, + 151, + 269, + 368, + 254, + 368, + 21, + 36, + 36, + 348, + 348, + 13, + 2, + 330, + 330, + 330, + 322, + 322, + 322, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 138, + 100, + 100, + 125, + 125, + 400, + 72, + 72, + 72, + 72, + 13, + 62, + 56, + 306, + 260, + 344, + 344, + 26, + 2, + 2, + 2, + 86, + 66, + 66, + 66, + 66, + 21, + 22, + 22, + 151, + 154, + 154, + 148, + 148, + 170, + 134, + 170, + 172, + 202, + 162, + 162, + 289, + 289, + 34, + 146, + 250, + 250, + 362, + 389, + 200, + 346, + 346, + 390, + 390, + 390, + 200, + 200, + 110, + 136, + 390, + 390, + 282, + 252, + 252, + 252, + 252, + 252, + 158, + 46, + 158, + 158, + 252, + 252, + 240, + 210, + 320, + 320, + 320, + 220, + 320, + 253, + 268, + 27, + 27, + 27, + 27, + 114, + 165, + 39, + 74, + 74, + 61, + 61, + 24, + 66, + 66, + 66, + 66, + 1, + 1, + 1, + 1, + 1, + 140, + 140, + 140, + 140, + 140, + 100, + 100, + 90, + 90, + 90, + 90, + 99, + 82, + 82, + 82, + 86, + 116, + 116, + 165, + 165, + 165, + 165, + 236, + 236, + 236, + 236, + 236, + 161, + 161, + 300, + 300, + 252, + 252, + 16, + 16, + 76, + 151, + 151, + 180, + 307, + 279, + 129, + 113, + 152, + 152, + 107, + 107, + 107, + 13, + 13, + 13, + 13, + 13, + 279, + 262, + 283, + 41, + 41, + 41, + 41, + 41, + 314, + 286, + 309, + 188, + 148, + 148, + 148, + 145, + 145, + 112, + 112, + 62, + 112, + 112, + 106, + 106, + 106, + 106, + 114, + 188, + 189, + 393, + 354, + 354, + 90, + 354, + 321, + 330, + 330, + 229, + 59, + 279, + 279, + 283, + 41, + 41, + 41, + 41, + 89, + 89, + 84, + 84, + 275, + 275, + 275, + 300, + 330, + 330, + 330, + 354, + 354, + 354, + 354, + 252, + 194, + 394, + 394, + 394, + 394, + 394, + 111, + 111, + 206, + 206, + 139, + 148, + 148, + 361, + 253, + 181, + 181, + 17, + 370, + 391, + 254, + 140, + 140, + 99, + 81, + 81, + 254, + 254, + 254, + 254, + 254, + 306, + 200, + 270, + 264, + 264, + 264, + 264, + 72, + 67, + 144, + 24, + 148, + 35, + 148, + 162, + 154, + 154, + 162, + 162, + 162, + 162, + 209, + 101, + 101, + 101, + 101, + 101, + 122, + 133, + 162, + 202, + 202, + 212, + 212, + 202, + 202, + 202, + 67, + 67, + 264, + 313, + 88, + 206, + 206, + 206, + 206, + 49, + 164, + 308, + 308, + 52, + 147, + 147, + 256, + 256, + 256, + 256, + 256, + 256, + 303, + 303, + 264, + 264, + 242, + 242, + 260, + 255, + 251, + 400, + 400, + 36, + 334, + 334, + 334, + 379, + 337, + 337, + 396, + 396, + 342, + 34, + 29, + 357, + 346, + 346, + 335, + 335, + 75, + 75, + 75, + 75, + 319, + 319, + 335, + 335, + 380, + 380, + 380, + 91, + 91, + 166, + 289, + 289, + 380, + 380, + 102, + 380, + 380, + 95, + 95, + 288, + 393, + 331, + 97, + 97, + 99, + 23, + 99, + 99, + 99, + 99, + 99, + 85, + 120, + 120, + 116, + 174, + 174, + 164, + 164, + 279, + 241, + 241, + 240, + 241, + 241, + 331, + 216, + 216, + 216, + 219, + 377, + 47, + 180, + 348, + 348, + 371, + 120, + 120, + 120, + 120, + 207, + 207, + 125, + 125, + 125, + 125, + 187, + 298, + 298, + 256, + 62, + 116, + 116, + 116, + 115, + 115, + 199, + 0, + 229, + 256, + 54, + 54, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 256, + 39, + 39, + 39, + 287, + 287, + 253, + 24, + 199, + 253, + 253, + 287, + 287, + 189, + 275, + 104, + 275, + 184, + 184, + 184, + 184, + 184, + 275, + 371, + 371, + 379, + 358, + 47, + 390, + 390, + 142, + 142, + 149, + 149, + 95, + 186, + 186, + 186, + 186, + 305, + 211, + 211, + 37, + 98, + 98, + 162, + 162, + 291, + 291, + 135, + 291, + 390, + 390, + 390, + 3, + 3, + 355, + 363, + 85, + 96, + 57, + 57, + 96, + 387, + 356, + 81, + 390, + 102, + 390, + 269, + 390, + 257, + 301, + 301, + 390, + 130, + 130, + 130, + 163, + 179, + 260, + 260, + 82, + 280, + 29, + 29, + 29, + 21, + 234, + 320, + 263, + 142, + 142, + 142, + 263, + 302, + 302, + 213, + 213, + 213, + 216, + 229, + 16, + 16, + 16, + 229, + 263, + 278, + 390, + 136, + 390, + 390, + 130, + 130, + 173, + 373, + 355, + 326, + 326, + 109, + 245, + 245, + 243, + 331, + 331, + 211, + 211, + 323, + 189, + 86, + 86, + 15, + 140, + 106, + 189, + 189, + 120, + 120, + 120, + 120, + 189, + 189, + 188, + 188, + 314, + 319, + 209, + 209, + 209, + 319, + 319, + 384, + 367, + 367, + 367, + 82, + 367, + 367, + 382, + 382, + 382, + 149, + 149, + 198, + 335, + 151, + 151, + 151, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 170, + 63, + 195, + 238, + 253, + 335, + 372, + 394, + 397, + 336, + 336, + 336, + 336, + 142, + 362, + 336, + 336, + 19, + 19, + 29, + 207, + 207, + 267, + 336, + 379, + 369, + 369, + 369, + 369, + 369, + 383, + 383, + 383, + 383, + 255, + 255, + 255, + 326, + 10, + 10, + 10, + 50, + 58, + 199, + 239, + 78, + 78, + 239, + 276, + 276, + 276, + 326, + 334, + 334, + 334, + 12, + 161, + 161, + 161, + 109, + 92, + 92, + 39, + 161, + 106, + 106, + 106, + 106, + 106, + 140, + 213, + 213, + 180, + 180, + 198, + 164, + 164, + 164, + 230, + 56, + 86, + 191, + 87, + 87, + 191, + 195, + 174, + 174, + 209, + 209, + 334, + 327, + 327, + 330, + 364, + 392, + 381, + 253, + 252, + 194, + 252, + 252, + 279, + 279, + 241, + 241, + 240, + 241, + 381, + 381, + 4, + 4, + 4, + 176, + 271, + 271, + 96, + 139, + 139, + 239, + 70, + 239, + 20, + 20, + 130, + 73, + 73, + 130, + 130, + 239, + 57, + 57, + 17, + 239, + 150, + 182, + 271, + 257, + 123, + 123, + 123, + 217, + 29, + 236, + 236, + 228, + 228, + 260, + 260, + 260, + 260, + 260, + 57, + 292, + 335, + 367, + 24, + 24, + 24, + 24, + 302, + 288, + 266, + 266, + 367, + 358, + 172, + 304, + 328, + 328, + 328, + 378, + 92, + 2, + 92, + 321, + 153, + 156, + 321, + 323, + 370, + 45, + 45, + 254, + 167, + 207, + 207, + 1, + 1, + 1, + 1, + 151, + 207, + 207, + 9, + 149, + 207, + 155, + 207, + 26, + 26, + 26, + 17, + 207, + 207, + 207, + 207, + 199, + 199, + 28, + 187, + 186, + 186, + 254, + 301, + 301, + 268, + 268, + 268, + 268, + 50, + 50, + 50, + 50, + 232, + 268, + 268, + 268, + 268, + 268, + 199, + 199, + 302, + 302, + 21, + 302, + 238, + 238, + 238, + 114, + 114, + 302, + 269, + 269, + 390, + 64, + 64, + 144, + 144, + 316, + 147, + 316, + 316, + 183, + 270, + 270, + 270, + 390, + 374, + 384, + 394, + 217, + 217, + 332, + 354, + 354, + 330, + 0, + 127, + 127, + 330, + 140, + 339, + 323, + 323, + 331, + 331, + 210, + 315, + 85, + 85, + 85, + 331, + 379, + 48, + 142, + 101, + 5, + 101, + 165, + 227, + 227, + 175, + 175, + 175, + 293, + 285, + 12, + 12, + 12, + 92, + 92, + 194, + 194, + 194, + 285, + 285, + 285, + 379, + 379, + 371, + 397, + 397, + 397, + 255, + 239, + 342, + 342, + 265, + 34, + 192, + 192, + 265, + 377, + 330, + 31, + 66, + 66, + 66, + 66, + 297, + 51, + 330, + 84, + 84, + 84, + 84, + 84, + 281, + 281, + 182, + 182, + 281, + 282, + 255, + 255, + 255, + 119, + 255, + 255, + 317, + 317, + 263, + 132, + 263, + 200, + 68, + 68, + 68, + 200, + 200, + 398, + 43, + 43, + 43, + 76, + 126, + 215, + 215, + 215, + 64, + 172, + 188, + 188, + 279, + 279, + 287, + 339, + 342, + 342, + 388, + 395, + 395, + 384, + 400, + 139, + 255, + 255, + 255, + 264, + 400, + 363, + 380, + 346, + 346, + 346, + 353, + 235, + 333, + 168, + 168, + 333, + 86, + 333, + 366, + 69, + 366, + 392, + 342, + 342, + 342, + 342, + 342, + 19, + 149, + 255, + 255, + 255, + 255, + 255, + 255, + 123, + 323, + 371, + 274, + 310, + 310, + 310, + 310, + 388, + 388, + 359, + 57, + 56, + 56, + 181, + 250, + 250, + 34, + 34, + 250, + 250, + 250, + 359, + 327, + 364, + 364, + 364, + 361, + 361, + 376, + 357, + 400, + 400, + 212, + 214, + 116, + 116, + 54, + 266, + 165, + 88, + 18, + 92, + 92, + 77, + 77, + 352, + 352, + 352, + 193, + 193, + 352, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 32, + 215, + 251, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 148, + 244, + 388, + 388, + 55, + 74, + 74, + 119, + 330, + 330, + 121, + 121, + 121, + 204, + 145, + 26, + 145, + 145, + 144, + 144, + 144, + 130, + 130, + 130, + 130, + 204, + 204, + 40, + 204, + 39, + 39, + 132, + 197, + 211, + 232, + 217, + 8, + 8, + 8, + 8, + 42, + 131, + 131, + 108, + 108, + 108, + 5, + 217, + 281, + 295, + 76, + 76, + 232, + 65, + 65, + 65, + 65, + 65, + 71, + 68, + 68, + 31, + 97, + 97, + 97, + 97, + 75, + 75, + 232, + 204, + 204, + 183, + 183, + 295, + 295, + 244, + 244, + 244, + 299, + 254, + 253, + 253, + 315, + 334, + 334, + 108, + 12, + 12, + 23, + 23, + 23, + 23, + 108, + 168, + 168, + 286, + 334, + 338, + 249, + 347, + 166, + 166, + 166, + 166, + 347, + 347, + 347, + 347, + 347, + 347, + 295, + 347, + 347, + 347, + 322, + 322, + 182, + 182, + 182, + 322, + 397, + 395, + 330, + 330, + 274, + 150, + 217, + 217, + 217, + 175, + 125, + 125, + 33, + 125, + 146, + 175, + 175, + 212, + 212, + 206, + 206, + 206, + 201, + 201, + 166, + 194, + 194, + 194, + 274, + 274, + 274, + 37, + 37, + 37, + 40, + 40, + 49, + 24, + 24, + 24, + 140, + 140, + 273, + 100, + 273, + 273, + 273, + 273, + 246, + 131, + 246, + 72, + 209, + 67, + 67, + 131, + 131, + 111, + 242, + 398, + 398, + 398, + 398, + 355, + 355, + 349, + 349, + 341, + 386, + 336, + 336, + 194, + 194, + 194, + 314, + 339, + 339, + 325, + 325, + 325, + 73, + 367, + 334, + 248, + 248, + 0, + 140, + 192, + 186, + 248, + 248, + 315, + 224, + 315, + 269, + 6, + 6, + 24, + 240, + 273, + 273, + 145, + 249, + 138, + 167, + 330, + 330, + 398, + 398, + 157, + 157, + 340, + 268, + 268, + 319, + 78, + 319, + 319, + 340, + 372, + 174, + 174, + 174, + 87, + 179, + 179, + 179, + 316, + 177, + 91, + 91, + 247, + 247, + 91, + 16, + 16, + 91, + 247, + 249, + 249, + 152, + 152, + 152, + 152, + 372, + 366, + 388, + 365, + 365, + 354, + 148, + 148, + 283, + 354, + 16, + 16, + 30, + 30, + 60, + 210, + 210, + 210, + 210, + 202, + 263, + 263, + 263, + 354, + 354, + 203, + 346, + 346, + 324, + 345, + 132, + 394, + 274, + 274, + 274, + 274, + 274, + 146, + 146, + 187, + 25, + 144, + 144, + 144, + 144, + 131, + 274, + 274, + 274, + 274, + 38, + 38, + 38, + 38, + 38, + 34, + 96, + 212, + 256, + 256, + 237, + 237, + 237, + 0, + 0, + 0, + 0, + 0, + 0, + 76, + 76, + 59, + 59, + 59, + 59, + 142, + 113, + 237, + 237, + 188, + 231, + 231, + 231, + 231, + 295, + 309, + 309, + 77, + 224, + 149, + 149, + 149, + 149, + 143, + 143, + 143, + 224, + 224, + 224, + 309, + 309, + 309, + 309, + 309, + 309, + 257, + 308, + 308, + 66, + 66, + 119, + 119, + 199, + 199, + 199, + 199, + 166, + 294, + 294, + 55, + 245, + 25, + 25, + 245, + 245, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 167, + 245, + 394, + 394, + 394, + 394, + 394, + 251, + 251, + 394, + 394, + 340, + 340, + 340, + 340, + 216, + 216, + 216, + 216, + 48, + 48, + 48, + 48, + 48, + 169, + 225, + 288, + 124, + 224, + 288, + 288, + 60, + 311, + 265, + 265, + 139, + 139, + 139, + 139, + 139, + 139, + 139, + 199, + 314, + 314, + 314, + 310, + 363, + 363, + 14, + 14, + 14, + 363, + 363, + 361, + 361, + 371, + 216, + 375, + 375, + 385, + 385, + 385, + 193, + 193, + 5, + 5, + 5, + 24, + 385, + 382, + 382, + 382, + 343, + 343, + 379, + 26, + 26, + 379, + 385, + 312, + 312, + 312, + 329, + 329, + 355, + 221, + 229, + 242, + 319, + 319, + 307, + 278, + 278, + 261, + 261, + 323, + 263, + 323, + 392, + 392, + 79, + 113, + 72, + 72, + 72, + 99, + 317, + 317, + 144, + 58, + 58, + 144, + 144, + 155, + 155, + 216, + 216, + 45, + 45, + 216, + 216, + 166, + 166, + 317, + 254, + 254, + 56, + 56, + 56, + 56, + 254, + 36, + 178, + 178, + 178, + 254, + 232, + 232, + 232, + 280, + 60, + 256, + 256, + 260, + 277, + 277, + 316, + 316, + 243, + 243, + 319, + 319, + 392, + 18, + 227, + 392, + 392, + 385, + 364, + 51, + 51, + 51, + 92, + 22, + 92, + 148, + 148, + 23, + 148, + 214, + 214, + 214, + 266, + 266, + 202, + 364, + 400, + 400, + 400, + 380, + 356, + 358, + 76, + 76, + 76, + 76, + 44, + 44, + 120, + 120, + 120, + 125, + 307, + 259, + 259, + 259, + 259, + 259, + 83, + 160, + 160, + 266, + 367, + 367, + 346, + 329, + 329, + 331, + 364, + 364, + 194, + 364, + 182, + 15, + 360, + 360, + 72, + 72, + 150, + 202, + 304, + 304, + 304, + 304, + 304, + 304, + 304, + 254, + 116, + 116, + 111, + 201, + 201, + 254, + 316, + 316, + 316, + 316, + 254, + 254, + 254, + 254, + 254, + 247, + 302, + 360, + 333, + 333, + 336, + 336, + 286, + 286, + 286, + 286, + 286, + 193, + 193, + 296, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 33, + 33, + 336, + 336, + 336, + 336, + 393, + 178, + 178, + 393, + 393, + 393, + 385, + 389, + 169, + 169, + 169, + 267, + 384, + 384, + 384, + 384, + 384, + 352, + 136, + 136, + 136, + 21, + 262, + 262, + 262, + 262, + 198, + 262, + 291, + 222, + 222, + 114, + 216, + 100, + 291, + 291, + 141, + 141, + 200, + 291, + 139, + 114, + 114, + 114, + 82, + 291, + 291, + 291, + 284, + 266, + 245, + 309, + 309, + 246, + 246, + 73, + 352, + 349, + 349, + 379, + 379, + 379, + 333, + 333, + 333, + 193, + 333, + 400, + 376, + 282, + 29, + 29, + 46, + 169, + 200, + 193, + 268, + 283, + 376, + 15, + 15, + 15, + 15, + 22, + 22, + 376, + 376, + 341, + 312, + 341, + 373, + 372, + 372, + 372, + 372, + 369, + 383, + 383, + 370, + 370, + 370, + 377, + 377, + 62, + 397, + 397, + 397, + 392, + 246, + 246, + 392, + 344, + 104, + 201, + 162, + 162, + 22, + 15, + 15, + 162, + 171, + 171, + 19, + 19, + 19, + 49, + 89, + 89, + 89, + 89, + 99, + 161, + 212, + 212, + 212, + 212, + 222, + 131, + 190, + 259, + 42, + 42, + 42, + 42, + 42, + 42, + 259, + 259, + 13, + 153, + 153, + 153, + 98, + 98, + 38, + 13, + 13, + 131, + 131, + 158, + 158, + 169, + 259, + 259, + 259, + 259, + 275, + 275, + 137, + 137, + 319, + 319, + 319, + 319, + 251, + 251, + 254, + 301, + 28, + 28, + 28, + 17, + 157, + 237, + 283, + 276, + 23, + 279, + 279, + 159, + 181, + 53, + 53, + 53, + 181, + 181, + 181, + 181, + 228, + 225, + 225, + 225, + 225, + 281, + 281, + 298, + 298, + 298, + 249, + 249, + 83, + 249, + 249, + 100, + 289, + 289, + 319, + 396, + 234, + 234, + 181, + 181, + 181, + 239, + 323, + 142, + 142, + 142, + 142, + 142, + 374, + 374, + 374, + 374, + 339, + 372, + 19, + 19, + 0, + 0, + 215, + 372, + 340, + 340, + 354, + 141, + 141, + 391, + 344, + 344, + 227, + 359, + 359, + 326, + 325, + 345, + 345, + 396, + 272, + 64, + 64, + 64, + 297, + 297, + 297, + 153, + 117, + 81, + 117, + 117, + 117, + 17, + 6, + 6, + 117, + 382, + 382, + 285, + 285, + 329, + 40, + 319, + 252, + 56, + 252, + 252, + 4, + 252, + 252, + 250, + 278, + 9, + 55, + 128, + 128, + 128, + 128, + 101, + 194, + 24, + 24, + 24, + 71, + 71, + 234, + 234, + 220, + 30, + 220, + 278, + 278, + 260, + 260, + 260, + 29, + 29, + 260, + 367, + 15, + 15, + 15, + 204, + 217, + 217, + 181, + 181, + 267, + 267, + 93, + 93, + 9, + 9, + 93, + 93, + 107, + 107, + 107, + 133, + 133, + 133, + 133, + 133, + 133, + 133, + 154, + 154, + 154, + 154, + 154, + 154, + 154, + 85, + 5, + 85, + 85, + 85, + 92, + 203, + 230, + 230, + 57, + 38, + 38, + 127, + 127, + 127, + 94, + 169, + 194, + 163, + 22, + 22, + 163, + 163, + 294, + 278, + 73, + 278, + 188, + 55, + 188, + 188, + 188, + 188, + 217, + 278, + 318, + 318, + 125, + 270, + 270, + 282, + 111, + 111, + 111, + 145, + 145, + 206, + 206, + 163, + 189, + 237, + 237, + 253, + 253, + 367, + 367, + 361, + 78, + 78, + 111, + 111, + 354, + 354, + 235, + 235, + 235, + 235, + 357, + 254, + 352, + 334, + 334, + 331, + 331, + 239, + 331, + 339, + 324, + 161, + 46, + 46, + 161, + 315, + 315, + 315, + 324, + 90, + 90, + 365, + 154, + 154, + 2, + 274, + 274, + 274, + 186, + 119, + 119, + 119, + 274, + 291, + 31, + 102, + 102, + 116, + 88, + 159, + 159, + 159, + 159, + 147, + 147, + 147, + 112, + 112, + 49, + 112, + 112, + 94, + 138, + 138, + 95, + 127, + 238, + 70, + 70, + 308, + 262, + 260, + 286, + 336, + 221, + 336, + 151, + 241, + 320, + 320, + 320, + 8, + 8, + 213, + 297, + 319, + 336, + 336, + 336, + 340, + 350, + 284, + 284, + 284, + 284, + 284, + 284, + 247, + 224, + 247, + 247, + 304, + 304, + 246, + 246, + 246, + 163, + 296, + 296, + 296, + 296, + 296, + 296, + 171, + 171, + 171, + 188, + 257, + 257, + 23, + 23, + 34, + 24, + 110, + 49, + 49, + 49, + 49, + 49, + 110, + 110, + 23, + 257, + 376, + 323, + 352, + 367, + 367, + 332, + 181, + 372, + 372, + 372, + 372, + 395, + 318, + 318, + 395, + 125, + 270, + 385, + 333, + 165, + 165, + 145, + 145, + 145, + 112, + 333, + 174, + 148, + 148, + 148, + 174, + 249, + 249, + 38, + 110, + 110, + 110, + 110, + 111, + 86, + 249, + 90, + 258, + 134, + 373, + 373, + 171, + 179, + 179, + 179, + 179, + 3, + 179, + 243, + 296, + 1, + 1, + 77, + 77, + 77, + 177, + 187, + 81, + 95, + 187, + 187, + 37, + 37, + 37, + 37, + 37, + 100, + 149, + 149, + 80, + 296, + 262, + 262, + 297, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 150, + 137, + 137, + 137, + 121, + 121, + 121, + 172, + 326, + 326, + 326, + 326, + 61, + 190, + 326, + 324, + 253, + 253, + 378, + 378, + 378, + 376, + 376, + 376, + 219, + 219, + 376, + 7, + 101, + 341, + 68, + 127, + 127, + 127, + 127, + 33, + 127, + 127, + 128, + 215, + 60, + 60, + 137, + 215, + 212, + 212, + 130, + 54, + 70, + 70, + 111, + 111, + 111, + 111, + 111, + 212, + 212, + 212, + 212, + 212, + 212, + 108, + 33, + 221, + 193, + 236, + 198, + 198, + 198, + 198, + 213, + 257, + 288, + 341, + 341, + 341, + 342, + 322, + 107, + 56, + 107, + 208, + 208, + 208, + 276, + 239, + 276, + 270, + 25, + 270, + 314, + 322, + 322, + 322, + 325, + 119, + 119, + 119, + 14, + 119, + 51, + 51, + 119, + 105, + 105, + 58, + 90, + 90, + 94, + 97, + 208, + 325, + 325, + 360, + 360, + 360, + 383, + 326, + 38, + 38, + 326, + 30, + 30, + 318, + 318, + 318, + 318, + 189, + 318, + 318, + 241, + 250, + 250, + 250, + 191, + 250, + 250, + 250, + 250, + 72, + 250, + 242, + 133, + 133, + 47, + 133, + 229, + 229, + 229, + 229, + 161, + 242, + 143, + 242, + 271, + 296, + 296, + 326, + 326, + 326, + 356, + 370, + 389, + 389, + 258, + 389, + 389, + 370, + 370, + 374, + 374, + 374, + 387, + 387, + 387, + 211, + 211, + 211, + 211, + 211, + 2, + 153, + 153, + 153, + 209, + 209, + 209, + 209, + 163, + 373, + 67, + 164, + 323, + 323, + 323, + 323, + 385, + 385, + 335, + 154, + 335, + 361, + 396, + 313, + 227, + 227, + 169, + 169, + 169, + 169, + 169, + 107, + 79, + 130, + 169, + 164, + 164, + 164, + 163, + 271, + 107, + 107, + 107, + 271, + 319, + 285, + 300, + 300, + 300, + 300, + 299, + 108, + 222, + 222, + 222, + 222, + 222, + 222, + 299, + 299, + 35, + 35, + 204, + 299, + 288, + 330, + 347, + 397, + 327, + 336, + 129, + 129, + 129, + 129, + 192, + 262, + 154, + 144, + 224, + 224, + 244, + 283, + 283, + 257, + 115, + 115, + 257, + 323, + 371, + 334, + 213, + 213, + 301, + 175, + 175, + 84, + 171, + 171, + 51, + 117, + 117, + 171, + 171, + 181, + 276, + 276, + 276, + 290, + 233, + 334, + 363, + 363, + 34, + 34, + 149, + 149, + 121, + 195, + 190, + 35, + 35, + 48, + 133, + 88, + 295, + 363, + 380, + 336, + 336, + 336, + 336, + 186, + 367, + 367, + 124, + 124, + 100, + 100, + 363, + 356, + 125, + 44, + 152, + 152, + 152, + 386, + 346, + 346, + 268, + 71, + 71, + 268, + 268, + 306, + 306, + 195, + 195, + 195, + 222, + 222, + 222, + 222, + 83, + 298, + 298, + 384, + 217, + 217, + 217, + 282, + 282, + 366, + 366, + 366, + 38, + 203, + 203, + 128, + 203, + 203, + 39, + 219, + 243, + 269, + 379, + 23, + 23, + 46, + 15, + 278, + 144, + 144, + 218, + 218, + 304, + 271, + 57, + 16, + 271, + 271, + 375, + 42, + 397, + 327, + 25, + 25, + 34, + 68, + 30, + 30, + 30, + 30, + 30, + 26, + 26, + 26, + 19, + 18, + 129, + 129, + 130, + 130, + 130, + 130, + 19, + 19, + 19, + 130, + 196, + 196, + 201, + 234, + 318, + 207, + 207, + 244, + 123, + 123, + 123, + 283, + 283, + 15, + 264, + 377, + 377, + 377, + 377, + 377, + 377, + 377, + 68, + 68, + 68, + 68, + 377, + 284, + 245, + 266, + 377, + 377, + 364, + 199, + 304, + 78, + 78, + 78, + 78, + 338, + 338, + 338, + 203, + 203, + 203, + 303, + 238, + 238, + 207, + 207, + 153, + 102, + 102, + 301, + 301, + 301, + 301, + 301, + 119, + 119, + 32, + 121, + 121, + 121, + 153, + 153, + 180, + 240, + 61, + 61, + 61, + 1, + 240, + 191, + 183, + 182, + 197, + 197, + 197, + 32, + 32, + 32, + 177, + 318, + 307, + 287, + 298, + 298, + 376, + 376, + 376, + 73, + 73, + 73, + 73, + 73, + 103, + 228, + 189, + 80, + 183, + 183, + 285, + 285, + 316, + 316, + 316, + 316, + 110, + 110, + 156, + 65, + 156, + 156, + 316, + 276, + 260, + 260, + 260, + 260, + 260, + 376, + 376, + 252, + 107, + 353, + 373, + 373, + 373, + 369, + 344, + 351, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 54, + 54, + 54, + 116, + 116, + 291, + 291, + 284, + 194, + 284, + 284, + 34, + 194, + 300, + 392, + 96, + 96, + 161, + 161, + 161, + 307, + 392, + 79, + 92, + 155, + 63, + 63, + 171, + 171, + 290, + 326, + 306, + 97, + 97, + 97, + 230, + 230, + 159, + 230, + 230, + 25, + 32, + 80, + 80, + 23, + 306, + 306, + 262, + 60, + 262, + 269, + 266, + 358, + 358, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 312, + 102, + 338, + 338, + 338, + 338, + 338, + 368, + 368, + 368, + 124, + 73, + 124, + 77, + 77, + 77, + 77, + 77, + 47, + 47, + 47, + 47, + 47, + 47, + 47, + 123, + 123, + 177, + 177, + 102, + 102, + 177, + 32, + 177, + 177, + 225, + 225, + 7, + 7, + 22, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 207, + 201, + 210, + 278, + 278, + 367, + 391, + 387, + 344, + 30, + 399, + 0, + 399, + 140, + 140, + 140, + 399, + 243, + 77, + 77, + 77, + 77, + 77, + 77, + 77, + 38, + 84, + 234, + 143, + 128, + 128, + 128, + 233, + 233, + 243, + 79, + 79, + 387, + 14, + 22, + 22, + 22, + 188, + 118, + 118, + 118, + 188, + 196, + 203, + 222, + 49, + 49, + 54, + 54, + 54, + 54, + 54, + 54, + 54, + 54, + 84, + 164, + 127, + 127, + 127, + 127, + 127, + 164, + 310, + 310, + 314, + 82, + 314, + 314, + 179, + 47, + 179, + 179, + 179, + 165, + 59, + 97, + 97, + 38, + 97, + 97, + 97, + 97, + 75, + 75, + 97, + 97, + 99, + 98, + 98, + 26, + 26, + 26, + 172, + 172, + 281, + 292, + 292, + 289, + 289, + 98, + 7, + 7, + 15, + 123, + 236, + 221, + 221, + 224, + 93, + 93, + 93, + 93, + 168, + 168, + 168, + 192, + 192, + 192, + 314, + 308, + 298, + 293, + 24, + 261, + 363, + 363, + 361, + 169, + 361, + 361, + 0, + 0, + 0, + 0, + 0, + 309, + 391, + 391, + 285, + 314, + 236, + 282, + 391, + 391, + 391, + 385, + 346, + 346, + 346, + 363, + 399, + 321, + 321, + 373, + 324, + 324, + 382, + 356, + 389, + 357, + 357, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 22, + 22, + 22, + 22, + 62, + 207, + 300, + 319, + 393, + 384, + 384, + 384, + 25, + 25, + 25, + 25, + 267, + 267, + 267, + 296, + 53, + 53, + 8, + 296, + 37, + 130, + 130, + 130, + 109, + 109, + 206, + 206, + 206, + 224, + 238, + 316, + 270, + 43, + 43, + 43, + 43, + 270, + 270, + 257, + 257, + 353, + 96, + 353, + 395, + 169, + 195, + 32, + 56, + 56, + 195, + 223, + 395, + 395, + 395, + 343, + 343, + 334, + 126, + 126, + 126, + 126, + 61, + 126, + 14, + 14, + 14, + 14, + 155, + 155, + 155, + 155, + 240, + 230, + 62, + 62, + 130, + 230, + 230, + 186, + 186, + 207, + 232, + 209, + 203, + 203, + 203, + 258, + 306, + 306, + 334, + 161, + 161, + 189, + 104, + 104, + 104, + 257, + 257, + 231, + 303, + 348, + 354, + 178, + 178, + 354, + 354, + 250, + 250, + 354, + 50, + 50, + 211, + 291, + 291, + 291, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 397, + 391, + 391, + 66, + 367, + 370, + 370, + 370, + 370, + 370, + 370, + 214, + 214, + 214, + 214, + 152, + 152, + 152, + 194, + 254, + 265, + 265, + 386, + 386, + 355, + 355, + 355, + 55, + 375, + 375, + 375, + 230, + 95, + 95, + 95, + 69, + 69, + 38, + 38, + 38, + 7, + 121, + 230, + 230, + 230, + 230, + 229, + 229, + 229, + 197, + 197, + 197, + 187, + 187, + 187, + 157, + 157, + 187, + 199, + 199, + 292, + 63, + 292, + 292, + 392, + 116, + 116, + 116, + 116, + 116, + 180, + 180, + 316, + 316, + 391, + 194, + 391, + 346, + 36, + 65, + 65, + 394, + 348, + 27, + 27, + 348, + 378, + 185, + 185, + 378, + 343, + 343, + 382, + 93, + 211, + 295, + 295, + 295, + 295, + 295, + 295, + 363, + 369, + 6, + 76, + 21, + 227, + 227, + 102, + 163, + 163, + 163, + 256, + 256, + 367, + 367, + 393, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 156, + 156, + 156, + 93, + 183, + 192, + 192, + 261, + 114, + 114, + 130, + 261, + 294, + 256, + 286, + 286, + 286, + 286, + 391, + 347, + 298, + 35, + 35, + 35, + 87, + 165, + 2, + 2, + 165, + 165, + 165, + 157, + 50, + 157, + 157, + 157, + 157, + 157, + 165, + 165, + 32, + 194, + 194, + 194, + 194, + 194, + 48, + 48, + 48, + 84, + 84, + 84, + 144, + 144, + 194, + 84, + 84, + 71, + 84, + 198, + 267, + 295, + 295, + 273, + 81, + 81, + 81, + 192, + 150, + 273, + 273, + 273, + 0, + 109, + 175, + 273, + 273, + 273, + 245, + 277, + 127, + 127, + 127, + 127, + 213, + 7, + 284, + 284, + 252, + 252, + 252, + 252, + 257, + 286, + 286, + 286, + 259, + 223, + 223, + 259, + 259, + 353, + 14, + 51, + 208, + 131, + 131, + 131, + 131, + 131, + 348, + 348, + 273, + 384, + 384, + 57, + 328, + 138, + 138, + 138, + 138, + 336, + 336, + 336, + 336, + 336, + 82, + 82, + 336, + 152, + 152, + 152, + 152, + 152, + 152, + 175, + 175, + 201, + 9, + 9, + 336, + 336, + 324, + 97, + 324, + 397, + 336, + 336, + 204, + 23, + 43, + 43, + 204, + 204, + 204, + 204, + 64, + 218, + 223, + 351, + 351, + 374, + 374, + 47, + 47, + 374, + 350, + 393, + 160, + 8, + 133, + 178, + 227, + 227, + 300, + 244, + 304, + 305, + 231, + 231, + 231, + 305, + 296, + 246, + 0, + 310, + 310, + 74, + 74, + 246, + 246, + 254, + 211, + 310, + 361, + 361, + 344, + 360, + 368, + 368, + 289, + 2, + 2, + 58, + 58, + 58, + 58, + 58, + 58, + 105, + 153, + 153, + 173, + 228, + 228, + 258, + 81, + 81, + 81, + 81, + 81, + 204, + 204, + 246, + 246, + 246, + 256, + 256, + 256, + 256, + 256, + 248, + 248, + 242, + 356, + 356, + 362, + 359, + 223, + 386, + 62, + 62, + 62, + 126, + 126, + 126, + 126, + 126, + 126, + 187, + 187, + 187, + 187, + 288, + 322, + 322, + 322, + 322, + 346, + 128, + 182, + 182, + 9, + 9, + 182, + 161, + 243, + 378, + 378, + 378, + 125, + 125, + 332, + 205, + 277, + 11, + 11, + 11, + 11, + 11, + 58, + 0, + 130, + 130, + 16, + 16, + 16, + 20, + 130, + 130, + 109, + 147, + 147, + 86, + 170, + 170, + 170, + 166, + 303, + 303, + 22, + 22, + 41, + 57, + 57, + 57, + 57, + 44, + 47, + 14, + 14, + 137, + 137, + 137, + 137, + 141, + 185, + 208, + 238, + 238, + 180, + 180, + 106, + 180, + 180, + 175, + 294, + 287, + 132, + 132, + 132, + 132, + 132, + 132, + 302, + 125, + 125, + 125, + 216, + 216, + 193, + 193, + 193, + 156, + 156, + 0, + 0, + 0, + 0, + 0, + 72, + 72, + 72, + 72, + 72, + 263, + 263, + 263, + 103, + 263, + 27, + 163, + 263, + 274, + 245, + 141, + 141, + 279, + 384, + 384, + 386, + 386, + 395, + 395, + 375, + 375, + 376, + 373, + 341, + 252, + 149, + 149, + 76, + 149, + 149, + 253, + 246, + 252, + 341, + 14, + 192, + 341, + 333, + 341, + 206, + 206, + 341, + 341, + 341, + 149, + 28, + 28, + 28, + 28, + 76, + 59, + 10, + 10, + 10, + 10, + 10, + 10, + 8, + 138, + 138, + 138, + 138, + 157, + 157, + 157, + 157, + 159, + 159, + 159, + 156, + 227, + 260, + 292, + 266, + 297, + 297, + 341, + 341, + 7, + 7, + 216, + 216, + 201, + 201, + 260, + 260, + 260, + 341, + 341, + 341, + 341, + 348, + 140, + 348, + 348, + 325, + 325, + 325, + 0, + 384, + 384, + 81, + 81, + 373, + 215, + 370, + 368, + 330, + 330, + 375, + 358, + 358, + 400, + 352, + 108, + 9, + 9, + 352, + 353, + 161, + 161, + 36, + 12, + 12, + 136, + 155, + 155, + 155, + 200, + 308, + 308, + 390, + 390, + 131, + 224, + 226, + 390, + 261, + 389, + 335, + 207, + 215, + 6, + 154, + 352, + 38, + 38, + 359, + 359, + 98, + 98, + 98, + 359, + 359, + 359, + 188, + 139, + 289, + 82, + 82, + 82, + 16, + 16, + 52, + 52, + 130, + 130, + 156, + 75, + 75, + 77, + 156, + 156, + 124, + 124, + 199, + 145, + 135, + 135, + 135, + 199, + 199, + 199, + 141, + 174, + 174, + 174, + 174, + 213, + 228, + 289, + 289, + 289, + 289, + 289, + 33, + 14, + 14, + 14, + 125, + 247, + 131, + 247, + 49, + 123, + 247, + 247, + 145, + 125, + 253, + 83, + 83, + 244, + 142, + 109, + 134, + 134, + 134, + 273, + 273, + 273, + 180, + 273, + 86, + 86, + 382, + 382, + 381, + 397, + 397, + 82, + 397, + 397, + 352, + 352, + 338, + 395, + 380, + 380, + 380, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 42, + 271, + 279, + 279, + 49, + 49, + 163, + 381, + 135, + 22, + 135, + 168, + 168, + 168, + 168, + 233, + 233, + 380, + 246, + 246, + 234, + 232, + 232, + 165, + 15, + 250, + 51, + 250, + 343, + 32, + 32, + 32, + 32, + 115, + 115, + 203, + 203, + 203, + 203, + 22, + 165, + 165, + 247, + 247, + 318, + 141, + 91, + 235, + 276, + 286, + 262, + 262, + 272, + 272, + 357, + 357, + 357, + 79, + 103, + 234, + 234, + 144, + 46, + 46, + 46, + 46, + 144, + 144, + 180, + 114, + 114, + 114, + 114, + 114, + 204, + 68, + 65, + 65, + 144, + 226, + 226, + 277, + 43, + 121, + 121, + 108, + 108, + 108, + 196, + 196, + 277, + 277, + 277, + 277, + 21, + 114, + 114, + 271, + 283, + 283, + 357, + 357, + 333, + 99, + 99, + 102, + 102, + 162, + 208, + 208, + 187, + 333, + 368, + 354, + 145, + 66, + 66, + 66, + 145, + 145, + 145, + 49, + 145, + 151, + 258, + 258, + 186, + 186, + 186, + 186, + 186, + 218, + 218, + 258, + 312, + 30, + 312, + 250, + 250, + 317, + 320, + 354, + 354, + 323, + 360, + 7, + 7, + 7, + 7, + 200, + 341, + 341, + 390, + 390, + 390, + 390, + 390, + 2, + 154, + 109, + 109, + 109, + 242, + 400, + 375, + 200, + 375, + 203, + 203, + 203, + 303, + 303, + 146, + 303, + 312, + 65, + 242, + 375, + 375, + 375, + 375, + 182, + 182, + 318, + 38, + 257, + 257, + 257, + 375, + 375, + 348, + 358, + 102, + 102, + 358, + 364, + 364, + 364, + 376, + 376, + 376, + 376, + 343, + 397, + 397, + 400, + 299, + 299, + 337, + 337, + 274, + 337, + 337, + 51, + 61, + 86, + 223, + 223, + 84, + 223, + 32, + 262, + 339, + 23, + 30, + 58, + 58, + 261, + 261, + 79, + 79, + 79, + 79, + 191, + 261, + 261, + 261, + 241, + 241, + 246, + 246, + 365, + 365, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 5, + 88, + 161, + 161, + 161, + 161, + 161, + 161, + 247, + 36, + 192, + 192, + 69, + 69, + 69, + 73, + 90, + 197, + 197, + 197, + 221, + 221, + 221, + 221, + 247, + 15, + 15, + 15, + 3, + 3, + 247, + 60, + 60, + 163, + 151, + 163, + 81, + 81, + 81, + 81, + 81, + 81, + 81, + 125, + 15, + 15, + 163, + 163, + 204, + 125, + 314, + 314, + 257, + 278, + 278, + 278, + 350, + 96, + 239, + 239, + 291, + 291, + 331, + 380, + 122, + 122, + 122, + 122, + 122, + 122, + 134, + 209, + 174, + 213, + 385, + 147, + 253, + 385, + 163, + 163, + 163, + 385, + 290, + 290, + 290, + 385, + 262, + 262, + 385, + 385, + 341, + 244, + 365, + 369, + 369, + 149, + 136, + 179, + 26, + 26, + 297, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 65, + 17, + 17, + 80, + 213, + 213, + 264, + 395, + 158, + 61, + 61, + 58, + 58, + 58, + 58, + 62, + 62, + 62, + 12, + 12, + 62, + 23, + 23, + 150, + 150, + 150, + 140, + 111, + 154, + 289, + 302, + 1, + 302, + 379, + 373, + 373, + 47, + 90, + 90, + 90, + 90, + 233, + 218, + 218, + 218, + 218, + 218, + 308, + 308, + 272, + 272, + 293, + 290, + 290, + 57, + 110, + 137, + 28, + 154, + 154, + 154, + 154, + 191, + 191, + 191, + 191, + 195, + 89, + 195, + 227, + 227, + 55, + 320, + 320, + 320, + 320, + 320, + 71, + 71, + 227, + 227, + 239, + 239, + 239, + 10, + 10, + 10, + 170, + 200, + 200, + 320, + 393, + 315, + 315, + 315, + 393, + 393, + 393, + 393, + 311, + 180, + 180, + 81, + 81, + 81, + 81, + 138, + 138, + 138, + 104, + 111, + 125, + 180, + 226, + 311, + 311, + 311, + 311, + 311, + 155, + 15, + 15, + 155, + 264, + 264, + 103, + 103, + 103, + 103, + 99, + 99, + 99, + 227, + 84, + 84, + 80, + 80, + 86, + 194, + 194, + 194, + 194, + 53, + 199, + 199, + 199, + 199, + 302, + 41, + 41, + 41, + 266, + 266, + 270, + 270, + 253, + 253, + 117, + 117, + 117, + 117, + 117, + 117, + 256, + 295, + 282, + 154, + 154, + 42, + 42, + 44, + 154, + 282, + 259, + 259, + 312, + 247, + 38, + 352, + 350, + 350, + 350, + 321, + 23, + 45, + 45, + 45, + 60, + 146, + 274, + 274, + 274, + 274, + 274, + 245, + 245, + 321, + 321, + 321, + 321, + 321, + 373, + 373, + 373, + 77, + 215, + 399, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.py new file mode 100644 index 0000000000..8684c63bf5 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_5flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 5 flows.""" + build(5, False).emit() \ No newline at end of file diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.data b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.data new file mode 100644 index 0000000000..f11feeb3d0 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.data @@ -0,0 +1,60029 @@ +{ + "commands": { + "data": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 2 + } + }, + "values": { + "data": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + }, + "ans_mem": { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "format": { + "is_signed": false, + "numeric_type": "bitnum", + "width": 32 + } + } +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.expect b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.expect new file mode 100644 index 0000000000..5fee688d20 --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.expect @@ -0,0 +1,60008 @@ +{ + "ans_mem": [ + 275, + 275, + 203, + 330, + 330, + 329, + 310, + 121, + 275, + 275, + 275, + 243, + 243, + 291, + 256, + 268, + 354, + 354, + 380, + 307, + 130, + 80, + 262, + 262, + 262, + 363, + 388, + 388, + 106, + 106, + 106, + 106, + 106, + 106, + 242, + 242, + 325, + 242, + 299, + 299, + 243, + 243, + 243, + 287, + 287, + 287, + 176, + 287, + 287, + 321, + 40, + 61, + 125, + 95, + 95, + 95, + 306, + 306, + 306, + 125, + 125, + 296, + 205, + 205, + 145, + 145, + 309, + 145, + 83, + 83, + 83, + 145, + 79, + 341, + 341, + 341, + 212, + 171, + 215, + 215, + 125, + 318, + 318, + 318, + 318, + 318, + 133, + 216, + 238, + 238, + 238, + 221, + 80, + 306, + 306, + 221, + 361, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 168, + 231, + 5, + 5, + 241, + 241, + 241, + 11, + 98, + 98, + 312, + 312, + 181, + 181, + 216, + 216, + 216, + 216, + 216, + 216, + 314, + 366, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 82, + 69, + 69, + 69, + 69, + 366, + 330, + 372, + 372, + 372, + 372, + 219, + 219, + 378, + 378, + 378, + 378, + 181, + 167, + 323, + 82, + 323, + 162, + 90, + 391, + 391, + 177, + 183, + 150, + 281, + 300, + 300, + 254, + 254, + 238, + 293, + 293, + 293, + 293, + 219, + 293, + 253, + 129, + 129, + 251, + 251, + 251, + 251, + 251, + 305, + 305, + 98, + 98, + 318, + 90, + 203, + 203, + 203, + 90, + 90, + 90, + 90, + 90, + 318, + 332, + 332, + 332, + 343, + 76, + 119, + 119, + 151, + 151, + 267, + 308, + 356, + 209, + 209, + 209, + 209, + 356, + 356, + 356, + 356, + 356, + 356, + 89, + 89, + 89, + 89, + 89, + 89, + 354, + 354, + 354, + 354, + 354, + 346, + 346, + 306, + 217, + 217, + 267, + 267, + 250, + 290, + 290, + 276, + 220, + 220, + 276, + 276, + 246, + 12, + 12, + 12, + 113, + 113, + 113, + 113, + 208, + 374, + 310, + 113, + 113, + 113, + 113, + 113, + 170, + 170, + 170, + 91, + 170, + 161, + 183, + 81, + 81, + 388, + 378, + 183, + 183, + 310, + 310, + 310, + 310, + 310, + 332, + 332, + 332, + 183, + 183, + 95, + 95, + 95, + 95, + 95, + 303, + 109, + 400, + 400, + 400, + 109, + 109, + 120, + 86, + 191, + 191, + 162, + 297, + 255, + 255, + 255, + 300, + 120, + 120, + 300, + 3, + 36, + 359, + 351, + 256, + 256, + 256, + 278, + 400, + 60, + 60, + 21, + 223, + 66, + 238, + 222, + 157, + 222, + 222, + 332, + 380, + 220, + 380, + 21, + 21, + 0, + 301, + 301, + 301, + 301, + 301, + 180, + 312, + 312, + 323, + 323, + 397, + 397, + 103, + 121, + 121, + 121, + 154, + 269, + 269, + 269, + 269, + 248, + 182, + 218, + 218, + 87, + 165, + 252, + 195, + 195, + 296, + 296, + 296, + 296, + 296, + 144, + 195, + 195, + 227, + 0, + 380, + 152, + 0, + 11, + 11, + 18, + 128, + 128, + 128, + 255, + 255, + 367, + 367, + 367, + 367, + 198, + 201, + 201, + 201, + 201, + 198, + 337, + 149, + 149, + 255, + 286, + 63, + 6, + 45, + 54, + 41, + 7, + 7, + 310, + 310, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 12, + 8, + 40, + 41, + 36, + 36, + 36, + 36, + 154, + 154, + 51, + 51, + 237, + 44, + 397, + 397, + 397, + 244, + 244, + 244, + 127, + 101, + 244, + 240, + 83, + 165, + 256, + 256, + 164, + 164, + 256, + 256, + 256, + 256, + 362, + 362, + 256, + 30, + 234, + 374, + 374, + 374, + 137, + 137, + 192, + 192, + 192, + 176, + 314, + 314, + 382, + 123, + 14, + 14, + 142, + 122, + 82, + 321, + 321, + 92, + 181, + 189, + 189, + 357, + 313, + 25, + 160, + 43, + 43, + 43, + 348, + 348, + 206, + 387, + 80, + 80, + 387, + 327, + 237, + 237, + 237, + 43, + 43, + 43, + 43, + 260, + 239, + 25, + 58, + 58, + 151, + 296, + 21, + 304, + 4, + 205, + 207, + 79, + 79, + 79, + 8, + 338, + 8, + 8, + 143, + 143, + 143, + 217, + 366, + 13, + 281, + 315, + 315, + 157, + 3, + 3, + 374, + 353, + 105, + 105, + 105, + 105, + 3, + 3, + 3, + 3, + 51, + 241, + 241, + 51, + 51, + 82, + 185, + 185, + 185, + 200, + 9, + 164, + 180, + 180, + 180, + 180, + 243, + 243, + 0, + 0, + 0, + 277, + 342, + 342, + 342, + 342, + 72, + 72, + 119, + 119, + 135, + 2, + 209, + 2, + 208, + 333, + 333, + 240, + 240, + 74, + 74, + 74, + 74, + 74, + 213, + 74, + 347, + 347, + 81, + 203, + 347, + 347, + 347, + 360, + 361, + 348, + 348, + 348, + 348, + 339, + 85, + 339, + 360, + 363, + 189, + 189, + 382, + 398, + 398, + 189, + 109, + 144, + 144, + 144, + 144, + 382, + 382, + 382, + 175, + 107, + 107, + 107, + 107, + 316, + 316, + 320, + 393, + 188, + 188, + 188, + 71, + 188, + 255, + 223, + 223, + 256, + 194, + 325, + 325, + 325, + 149, + 149, + 309, + 149, + 149, + 149, + 149, + 168, + 168, + 184, + 184, + 260, + 223, + 235, + 235, + 282, + 282, + 235, + 101, + 92, + 206, + 92, + 132, + 132, + 235, + 249, + 249, + 257, + 257, + 257, + 305, + 305, + 181, + 299, + 154, + 239, + 256, + 254, + 254, + 42, + 313, + 105, + 105, + 105, + 201, + 87, + 87, + 86, + 112, + 260, + 42, + 42, + 42, + 9, + 379, + 9, + 59, + 320, + 320, + 320, + 59, + 40, + 40, + 222, + 30, + 30, + 30, + 215, + 30, + 95, + 95, + 30, + 26, + 26, + 316, + 26, + 26, + 26, + 64, + 64, + 312, + 76, + 64, + 64, + 64, + 64, + 141, + 141, + 24, + 34, + 34, + 16, + 108, + 16, + 20, + 20, + 313, + 313, + 313, + 98, + 98, + 55, + 33, + 33, + 33, + 13, + 13, + 304, + 13, + 331, + 301, + 301, + 142, + 287, + 121, + 88, + 346, + 121, + 272, + 272, + 272, + 272, + 272, + 239, + 226, + 226, + 7, + 7, + 17, + 17, + 128, + 52, + 57, + 57, + 258, + 320, + 320, + 320, + 320, + 361, + 361, + 94, + 123, + 123, + 123, + 213, + 77, + 77, + 159, + 292, + 292, + 292, + 292, + 292, + 206, + 206, + 386, + 147, + 147, + 292, + 187, + 187, + 238, + 75, + 364, + 87, + 179, + 179, + 237, + 40, + 222, + 222, + 222, + 95, + 95, + 95, + 95, + 114, + 190, + 394, + 394, + 394, + 394, + 392, + 190, + 190, + 75, + 219, + 219, + 166, + 394, + 394, + 394, + 166, + 166, + 166, + 200, + 200, + 343, + 321, + 321, + 175, + 150, + 192, + 295, + 295, + 234, + 234, + 234, + 234, + 234, + 234, + 113, + 16, + 16, + 16, + 306, + 306, + 306, + 35, + 255, + 144, + 144, + 255, + 362, + 161, + 161, + 190, + 233, + 233, + 323, + 72, + 323, + 331, + 331, + 197, + 309, + 309, + 92, + 197, + 86, + 173, + 181, + 113, + 113, + 308, + 113, + 113, + 154, + 154, + 154, + 154, + 154, + 154, + 154, + 132, + 354, + 354, + 354, + 354, + 132, + 150, + 150, + 150, + 167, + 167, + 222, + 266, + 266, + 160, + 160, + 77, + 77, + 160, + 256, + 242, + 242, + 127, + 321, + 321, + 127, + 274, + 274, + 274, + 324, + 142, + 86, + 274, + 365, + 365, + 365, + 99, + 365, + 274, + 274, + 274, + 162, + 162, + 162, + 274, + 362, + 269, + 269, + 299, + 267, + 380, + 267, + 370, + 370, + 220, + 220, + 220, + 174, + 174, + 174, + 238, + 238, + 299, + 319, + 319, + 319, + 319, + 299, + 287, + 287, + 53, + 37, + 0, + 212, + 212, + 150, + 150, + 150, + 45, + 50, + 50, + 297, + 297, + 397, + 397, + 397, + 386, + 386, + 386, + 293, + 281, + 51, + 222, + 21, + 128, + 128, + 128, + 148, + 148, + 148, + 148, + 148, + 186, + 170, + 237, + 313, + 165, + 237, + 179, + 237, + 0, + 0, + 312, + 312, + 312, + 97, + 97, + 97, + 68, + 68, + 68, + 68, + 68, + 312, + 324, + 129, + 323, + 129, + 129, + 154, + 132, + 293, + 320, + 264, + 264, + 185, + 185, + 264, + 264, + 272, + 69, + 69, + 69, + 70, + 72, + 186, + 101, + 101, + 101, + 365, + 365, + 365, + 338, + 338, + 91, + 91, + 91, + 91, + 91, + 358, + 358, + 333, + 101, + 117, + 117, + 155, + 155, + 155, + 155, + 155, + 155, + 87, + 87, + 155, + 79, + 218, + 79, + 79, + 79, + 79, + 109, + 167, + 188, + 188, + 67, + 188, + 132, + 184, + 272, + 186, + 272, + 272, + 160, + 272, + 272, + 261, + 170, + 275, + 339, + 339, + 339, + 339, + 85, + 158, + 92, + 92, + 158, + 158, + 155, + 178, + 178, + 297, + 297, + 299, + 226, + 255, + 46, + 23, + 23, + 23, + 23, + 23, + 79, + 23, + 199, + 332, + 199, + 304, + 304, + 330, + 125, + 125, + 155, + 122, + 122, + 260, + 231, + 280, + 280, + 40, + 29, + 29, + 46, + 46, + 97, + 97, + 97, + 32, + 14, + 150, + 14, + 23, + 46, + 46, + 46, + 11, + 11, + 63, + 63, + 194, + 397, + 397, + 128, + 63, + 63, + 304, + 80, + 304, + 339, + 71, + 214, + 71, + 339, + 167, + 74, + 327, + 327, + 327, + 167, + 167, + 195, + 318, + 173, + 173, + 75, + 118, + 118, + 118, + 298, + 298, + 295, + 295, + 285, + 264, + 264, + 264, + 398, + 398, + 398, + 398, + 110, + 110, + 310, + 310, + 110, + 264, + 264, + 264, + 274, + 351, + 351, + 63, + 351, + 351, + 272, + 202, + 202, + 202, + 63, + 63, + 63, + 57, + 288, + 314, + 83, + 323, + 186, + 186, + 186, + 158, + 158, + 158, + 57, + 57, + 71, + 71, + 339, + 349, + 349, + 120, + 120, + 57, + 57, + 57, + 57, + 62, + 32, + 32, + 32, + 43, + 43, + 3, + 80, + 3, + 3, + 3, + 26, + 26, + 26, + 235, + 171, + 235, + 236, + 236, + 236, + 236, + 372, + 372, + 74, + 74, + 74, + 353, + 353, + 353, + 304, + 350, + 192, + 192, + 192, + 236, + 236, + 236, + 164, + 136, + 236, + 245, + 245, + 55, + 55, + 119, + 178, + 134, + 58, + 65, + 266, + 266, + 266, + 266, + 239, + 65, + 65, + 65, + 65, + 291, + 318, + 318, + 318, + 318, + 357, + 124, + 124, + 124, + 124, + 148, + 291, + 291, + 291, + 291, + 131, + 291, + 291, + 291, + 291, + 291, + 9, + 129, + 129, + 129, + 129, + 49, + 34, + 34, + 300, + 300, + 300, + 300, + 208, + 26, + 145, + 145, + 26, + 26, + 26, + 49, + 43, + 148, + 148, + 22, + 325, + 160, + 142, + 142, + 22, + 22, + 102, + 102, + 22, + 8, + 57, + 28, + 28, + 22, + 22, + 216, + 22, + 201, + 44, + 44, + 121, + 67, + 67, + 67, + 67, + 67, + 340, + 340, + 340, + 141, + 141, + 361, + 393, + 393, + 334, + 334, + 334, + 246, + 246, + 237, + 237, + 48, + 91, + 15, + 245, + 245, + 99, + 295, + 384, + 384, + 384, + 384, + 384, + 324, + 324, + 324, + 390, + 333, + 187, + 122, + 295, + 295, + 275, + 299, + 198, + 103, + 103, + 254, + 66, + 102, + 102, + 164, + 164, + 398, + 398, + 164, + 317, + 317, + 320, + 320, + 320, + 325, + 325, + 213, + 344, + 367, + 367, + 367, + 367, + 74, + 74, + 92, + 367, + 367, + 382, + 395, + 150, + 150, + 190, + 190, + 180, + 114, + 378, + 114, + 114, + 114, + 114, + 143, + 143, + 143, + 153, + 155, + 200, + 298, + 298, + 298, + 298, + 298, + 237, + 237, + 237, + 237, + 245, + 337, + 337, + 245, + 124, + 245, + 394, + 394, + 394, + 155, + 155, + 155, + 149, + 74, + 309, + 149, + 149, + 267, + 267, + 267, + 194, + 267, + 267, + 267, + 267, + 83, + 267, + 287, + 311, + 397, + 287, + 241, + 271, + 271, + 88, + 374, + 330, + 271, + 203, + 367, + 350, + 271, + 231, + 231, + 231, + 277, + 246, + 278, + 278, + 378, + 378, + 314, + 278, + 278, + 336, + 336, + 278, + 278, + 291, + 291, + 279, + 10, + 20, + 20, + 20, + 20, + 347, + 14, + 14, + 246, + 246, + 246, + 51, + 51, + 51, + 51, + 23, + 23, + 23, + 5, + 5, + 15, + 23, + 63, + 63, + 63, + 63, + 63, + 52, + 52, + 318, + 318, + 318, + 102, + 102, + 156, + 107, + 233, + 286, + 286, + 286, + 334, + 4, + 4, + 4, + 37, + 60, + 60, + 60, + 60, + 24, + 361, + 211, + 361, + 185, + 64, + 64, + 174, + 160, + 377, + 377, + 377, + 160, + 160, + 396, + 160, + 160, + 160, + 353, + 353, + 160, + 78, + 160, + 76, + 82, + 219, + 82, + 82, + 82, + 98, + 313, + 166, + 174, + 333, + 333, + 333, + 132, + 132, + 132, + 276, + 276, + 276, + 276, + 15, + 23, + 23, + 23, + 23, + 15, + 15, + 100, + 100, + 100, + 391, + 391, + 191, + 151, + 1, + 6, + 226, + 284, + 6, + 6, + 62, + 233, + 233, + 53, + 278, + 181, + 278, + 278, + 133, + 133, + 152, + 384, + 384, + 384, + 384, + 317, + 317, + 317, + 317, + 150, + 123, + 346, + 346, + 346, + 346, + 346, + 346, + 123, + 178, + 138, + 138, + 3, + 4, + 23, + 375, + 207, + 375, + 375, + 370, + 370, + 294, + 294, + 23, + 19, + 19, + 19, + 61, + 61, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 366, + 366, + 366, + 366, + 325, + 203, + 203, + 89, + 89, + 325, + 325, + 325, + 325, + 385, + 365, + 375, + 375, + 67, + 89, + 89, + 89, + 325, + 397, + 397, + 397, + 380, + 376, + 319, + 319, + 319, + 382, + 216, + 382, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 93, + 93, + 93, + 93, + 345, + 345, + 350, + 365, + 330, + 86, + 86, + 135, + 135, + 130, + 130, + 130, + 115, + 360, + 360, + 69, + 69, + 360, + 302, + 115, + 115, + 111, + 123, + 123, + 123, + 368, + 398, + 101, + 101, + 105, + 131, + 131, + 290, + 360, + 360, + 309, + 71, + 309, + 81, + 86, + 367, + 367, + 367, + 367, + 352, + 141, + 94, + 94, + 94, + 94, + 208, + 341, + 341, + 341, + 165, + 174, + 174, + 228, + 228, + 222, + 335, + 335, + 335, + 335, + 335, + 341, + 341, + 341, + 341, + 341, + 301, + 222, + 233, + 97, + 97, + 304, + 304, + 304, + 304, + 231, + 231, + 231, + 231, + 293, + 224, + 208, + 260, + 336, + 292, + 296, + 37, + 37, + 37, + 37, + 37, + 56, + 56, + 63, + 14, + 98, + 98, + 98, + 394, + 394, + 394, + 394, + 394, + 367, + 371, + 253, + 5, + 276, + 5, + 52, + 30, + 30, + 30, + 30, + 30, + 30, + 27, + 99, + 27, + 27, + 391, + 141, + 360, + 236, + 236, + 9, + 26, + 26, + 311, + 362, + 362, + 338, + 36, + 36, + 36, + 0, + 65, + 375, + 30, + 30, + 30, + 30, + 47, + 277, + 112, + 277, + 47, + 230, + 230, + 230, + 233, + 233, + 233, + 225, + 49, + 34, + 201, + 201, + 194, + 215, + 91, + 91, + 91, + 73, + 73, + 378, + 378, + 400, + 400, + 263, + 263, + 61, + 111, + 111, + 111, + 198, + 17, + 17, + 154, + 196, + 196, + 196, + 388, + 388, + 301, + 89, + 89, + 87, + 87, + 325, + 155, + 155, + 155, + 155, + 120, + 106, + 106, + 322, + 106, + 106, + 106, + 106, + 382, + 106, + 106, + 106, + 152, + 152, + 152, + 196, + 106, + 106, + 106, + 106, + 106, + 106, + 117, + 106, + 106, + 222, + 222, + 367, + 231, + 297, + 18, + 28, + 119, + 28, + 80, + 80, + 80, + 80, + 308, + 308, + 308, + 308, + 308, + 308, + 137, + 117, + 124, + 350, + 350, + 197, + 290, + 290, + 290, + 235, + 235, + 235, + 235, + 108, + 235, + 389, + 389, + 235, + 235, + 394, + 394, + 376, + 376, + 302, + 302, + 309, + 155, + 155, + 149, + 118, + 118, + 118, + 123, + 123, + 123, + 263, + 186, + 384, + 186, + 186, + 252, + 252, + 260, + 381, + 381, + 381, + 202, + 202, + 182, + 260, + 290, + 358, + 236, + 236, + 236, + 387, + 387, + 388, + 236, + 207, + 236, + 276, + 125, + 125, + 177, + 36, + 36, + 246, + 93, + 386, + 69, + 69, + 69, + 343, + 246, + 246, + 119, + 246, + 76, + 397, + 397, + 218, + 218, + 218, + 218, + 80, + 336, + 336, + 355, + 187, + 101, + 296, + 231, + 231, + 231, + 231, + 226, + 360, + 360, + 360, + 360, + 31, + 31, + 31, + 31, + 31, + 41, + 41, + 26, + 12, + 299, + 299, + 92, + 105, + 211, + 211, + 366, + 366, + 96, + 96, + 105, + 105, + 105, + 105, + 118, + 299, + 299, + 379, + 299, + 12, + 125, + 12, + 148, + 342, + 342, + 210, + 210, + 210, + 210, + 210, + 210, + 148, + 138, + 138, + 167, + 394, + 394, + 167, + 146, + 146, + 146, + 130, + 115, + 115, + 115, + 112, + 112, + 112, + 271, + 230, + 230, + 230, + 353, + 12, + 12, + 23, + 68, + 68, + 68, + 319, + 331, + 331, + 331, + 365, + 365, + 159, + 104, + 104, + 104, + 335, + 335, + 335, + 222, + 17, + 17, + 17, + 17, + 10, + 10, + 86, + 61, + 53, + 25, + 41, + 379, + 379, + 379, + 208, + 208, + 208, + 208, + 379, + 220, + 379, + 372, + 123, + 355, + 355, + 123, + 158, + 391, + 272, + 41, + 41, + 382, + 382, + 97, + 97, + 382, + 382, + 105, + 57, + 57, + 29, + 29, + 262, + 218, + 218, + 366, + 67, + 67, + 67, + 81, + 383, + 113, + 340, + 340, + 159, + 159, + 159, + 124, + 193, + 88, + 88, + 88, + 88, + 373, + 373, + 373, + 373, + 373, + 152, + 189, + 198, + 295, + 246, + 260, + 260, + 260, + 250, + 253, + 16, + 16, + 16, + 51, + 51, + 51, + 131, + 198, + 198, + 198, + 117, + 117, + 73, + 69, + 69, + 69, + 187, + 386, + 187, + 186, + 344, + 187, + 250, + 250, + 270, + 270, + 270, + 270, + 249, + 233, + 332, + 332, + 233, + 233, + 219, + 219, + 219, + 103, + 386, + 386, + 386, + 386, + 233, + 300, + 214, + 214, + 214, + 214, + 253, + 280, + 278, + 278, + 25, + 190, + 32, + 32, + 38, + 64, + 66, + 106, + 71, + 71, + 398, + 150, + 172, + 172, + 205, + 172, + 172, + 172, + 172, + 172, + 125, + 296, + 296, + 389, + 389, + 218, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 96, + 96, + 139, + 139, + 160, + 160, + 166, + 166, + 374, + 374, + 374, + 72, + 72, + 72, + 72, + 72, + 72, + 374, + 374, + 374, + 374, + 381, + 391, + 166, + 166, + 354, + 354, + 325, + 325, + 166, + 168, + 135, + 241, + 241, + 225, + 225, + 225, + 295, + 295, + 295, + 304, + 298, + 383, + 377, + 353, + 353, + 353, + 353, + 147, + 147, + 298, + 341, + 341, + 338, + 338, + 338, + 243, + 330, + 330, + 250, + 380, + 380, + 266, + 266, + 261, + 261, + 234, + 23, + 27, + 11, + 38, + 38, + 16, + 16, + 16, + 55, + 313, + 82, + 81, + 81, + 55, + 23, + 59, + 386, + 386, + 59, + 59, + 194, + 91, + 139, + 76, + 342, + 342, + 342, + 139, + 172, + 172, + 172, + 172, + 172, + 172, + 372, + 372, + 172, + 179, + 207, + 207, + 367, + 304, + 161, + 358, + 344, + 344, + 165, + 165, + 274, + 274, + 274, + 242, + 242, + 344, + 344, + 344, + 344, + 114, + 124, + 124, + 339, + 339, + 339, + 124, + 359, + 359, + 242, + 242, + 264, + 308, + 308, + 308, + 308, + 264, + 264, + 251, + 251, + 239, + 340, + 365, + 239, + 239, + 239, + 59, + 59, + 59, + 246, + 259, + 28, + 28, + 28, + 263, + 263, + 251, + 28, + 53, + 53, + 91, + 53, + 204, + 204, + 258, + 10, + 10, + 10, + 26, + 33, + 33, + 24, + 26, + 51, + 51, + 23, + 62, + 32, + 213, + 213, + 213, + 73, + 73, + 68, + 85, + 16, + 138, + 49, + 62, + 62, + 324, + 62, + 392, + 62, + 316, + 205, + 205, + 205, + 316, + 153, + 118, + 145, + 195, + 315, + 195, + 181, + 181, + 212, + 288, + 254, + 254, + 22, + 22, + 37, + 394, + 39, + 219, + 377, + 100, + 217, + 100, + 100, + 67, + 73, + 321, + 321, + 319, + 319, + 319, + 319, + 319, + 319, + 343, + 343, + 335, + 335, + 368, + 176, + 176, + 265, + 204, + 204, + 223, + 78, + 78, + 78, + 78, + 400, + 400, + 207, + 207, + 207, + 348, + 286, + 286, + 287, + 287, + 229, + 39, + 39, + 67, + 67, + 67, + 67, + 39, + 39, + 5, + 52, + 0, + 28, + 16, + 16, + 16, + 9, + 9, + 38, + 249, + 38, + 231, + 34, + 6, + 338, + 208, + 22, + 22, + 22, + 351, + 297, + 323, + 323, + 323, + 241, + 241, + 81, + 241, + 129, + 129, + 218, + 218, + 241, + 350, + 84, + 338, + 338, + 338, + 90, + 90, + 90, + 90, + 90, + 338, + 338, + 391, + 397, + 397, + 302, + 302, + 302, + 365, + 73, + 200, + 316, + 377, + 377, + 200, + 200, + 393, + 200, + 189, + 118, + 118, + 118, + 118, + 185, + 290, + 343, + 290, + 85, + 308, + 290, + 102, + 186, + 186, + 186, + 186, + 400, + 189, + 189, + 189, + 121, + 115, + 115, + 394, + 394, + 394, + 394, + 394, + 394, + 394, + 145, + 145, + 145, + 103, + 103, + 218, + 336, + 336, + 115, + 115, + 188, + 129, + 261, + 261, + 94, + 261, + 261, + 211, + 225, + 112, + 112, + 231, + 306, + 306, + 306, + 301, + 301, + 327, + 385, + 385, + 119, + 119, + 231, + 283, + 283, + 249, + 249, + 249, + 234, + 234, + 234, + 209, + 209, + 114, + 90, + 229, + 296, + 296, + 260, + 260, + 241, + 140, + 228, + 25, + 3, + 179, + 179, + 3, + 54, + 393, + 212, + 212, + 393, + 393, + 393, + 393, + 314, + 380, + 380, + 386, + 340, + 340, + 388, + 388, + 353, + 216, + 216, + 183, + 119, + 119, + 119, + 124, + 124, + 145, + 167, + 167, + 167, + 167, + 167, + 167, + 167, + 185, + 137, + 137, + 274, + 367, + 367, + 274, + 274, + 146, + 274, + 274, + 274, + 274, + 330, + 330, + 254, + 277, + 133, + 133, + 133, + 309, + 309, + 133, + 153, + 153, + 153, + 153, + 277, + 259, + 248, + 141, + 141, + 166, + 104, + 104, + 104, + 193, + 193, + 248, + 248, + 226, + 196, + 324, + 324, + 115, + 115, + 226, + 231, + 11, + 11, + 56, + 288, + 288, + 64, + 203, + 203, + 203, + 207, + 77, + 325, + 324, + 143, + 143, + 180, + 180, + 180, + 299, + 299, + 203, + 100, + 100, + 176, + 137, + 137, + 244, + 244, + 64, + 27, + 12, + 12, + 18, + 18, + 245, + 245, + 375, + 124, + 124, + 333, + 333, + 333, + 162, + 141, + 141, + 245, + 273, + 273, + 273, + 241, + 241, + 67, + 333, + 348, + 348, + 348, + 348, + 150, + 150, + 92, + 92, + 349, + 347, + 195, + 146, + 215, + 146, + 146, + 146, + 149, + 149, + 162, + 198, + 112, + 94, + 112, + 112, + 147, + 267, + 240, + 12, + 12, + 279, + 279, + 279, + 216, + 58, + 58, + 58, + 9, + 9, + 9, + 9, + 9, + 99, + 99, + 80, + 80, + 333, + 214, + 333, + 349, + 165, + 165, + 165, + 203, + 203, + 203, + 151, + 151, + 151, + 151, + 151, + 391, + 127, + 127, + 123, + 223, + 349, + 223, + 224, + 224, + 224, + 224, + 6, + 6, + 20, + 12, + 135, + 135, + 135, + 12, + 216, + 216, + 97, + 97, + 332, + 332, + 332, + 332, + 154, + 257, + 153, + 257, + 258, + 262, + 262, + 299, + 89, + 89, + 332, + 332, + 332, + 361, + 361, + 361, + 299, + 299, + 268, + 297, + 297, + 297, + 179, + 357, + 271, + 271, + 12, + 16, + 134, + 134, + 399, + 399, + 134, + 134, + 268, + 189, + 244, + 244, + 110, + 244, + 321, + 321, + 270, + 269, + 269, + 31, + 17, + 324, + 192, + 286, + 288, + 70, + 70, + 288, + 288, + 288, + 249, + 113, + 113, + 249, + 192, + 286, + 286, + 286, + 233, + 233, + 374, + 374, + 374, + 374, + 374, + 70, + 388, + 388, + 388, + 107, + 126, + 161, + 161, + 313, + 247, + 231, + 30, + 19, + 122, + 38, + 38, + 385, + 27, + 27, + 52, + 97, + 97, + 97, + 224, + 65, + 61, + 44, + 396, + 396, + 27, + 27, + 27, + 206, + 206, + 206, + 206, + 206, + 352, + 355, + 171, + 83, + 231, + 24, + 0, + 266, + 266, + 340, + 267, + 267, + 54, + 54, + 54, + 54, + 370, + 370, + 183, + 274, + 274, + 274, + 295, + 295, + 94, + 94, + 94, + 128, + 395, + 395, + 361, + 128, + 198, + 198, + 198, + 198, + 378, + 369, + 192, + 164, + 361, + 400, + 164, + 169, + 144, + 121, + 219, + 121, + 273, + 302, + 326, + 338, + 175, + 247, + 253, + 253, + 342, + 342, + 253, + 136, + 136, + 264, + 252, + 252, + 278, + 238, + 238, + 129, + 183, + 325, + 145, + 238, + 230, + 307, + 307, + 307, + 93, + 93, + 93, + 75, + 75, + 307, + 307, + 307, + 298, + 49, + 78, + 133, + 133, + 49, + 130, + 130, + 193, + 394, + 100, + 85, + 394, + 331, + 193, + 193, + 170, + 170, + 386, + 170, + 185, + 247, + 245, + 13, + 38, + 272, + 28, + 28, + 28, + 28, + 29, + 388, + 29, + 247, + 247, + 269, + 305, + 269, + 269, + 156, + 112, + 37, + 39, + 372, + 372, + 78, + 78, + 372, + 245, + 392, + 373, + 217, + 217, + 217, + 110, + 289, + 289, + 379, + 182, + 134, + 355, + 143, + 69, + 69, + 202, + 338, + 338, + 164, + 224, + 299, + 299, + 299, + 91, + 91, + 377, + 377, + 91, + 91, + 316, + 316, + 316, + 304, + 143, + 83, + 83, + 76, + 76, + 76, + 76, + 76, + 392, + 143, + 384, + 384, + 143, + 185, + 116, + 116, + 384, + 384, + 116, + 116, + 116, + 149, + 149, + 80, + 149, + 149, + 397, + 397, + 149, + 149, + 161, + 161, + 125, + 159, + 159, + 155, + 236, + 236, + 236, + 274, + 197, + 274, + 225, + 260, + 252, + 252, + 252, + 238, + 238, + 100, + 255, + 88, + 4, + 17, + 180, + 388, + 388, + 388, + 388, + 388, + 180, + 112, + 175, + 245, + 249, + 17, + 8, + 8, + 45, + 5, + 5, + 26, + 115, + 26, + 62, + 62, + 344, + 77, + 77, + 355, + 78, + 78, + 78, + 78, + 355, + 355, + 395, + 358, + 184, + 297, + 180, + 180, + 180, + 297, + 89, + 89, + 89, + 398, + 398, + 160, + 279, + 205, + 394, + 394, + 274, + 121, + 188, + 287, + 287, + 123, + 287, + 217, + 49, + 53, + 177, + 177, + 342, + 177, + 93, + 43, + 43, + 92, + 92, + 92, + 92, + 378, + 378, + 378, + 378, + 93, + 93, + 93, + 93, + 378, + 378, + 378, + 387, + 387, + 115, + 334, + 334, + 320, + 115, + 115, + 166, + 166, + 207, + 207, + 166, + 136, + 201, + 136, + 136, + 136, + 136, + 200, + 128, + 128, + 173, + 173, + 214, + 214, + 214, + 173, + 153, + 369, + 153, + 128, + 128, + 165, + 224, + 302, + 279, + 279, + 279, + 267, + 258, + 300, + 296, + 341, + 296, + 296, + 135, + 296, + 218, + 296, + 296, + 296, + 296, + 285, + 334, + 334, + 334, + 334, + 73, + 334, + 43, + 43, + 131, + 131, + 131, + 334, + 131, + 342, + 342, + 342, + 342, + 150, + 67, + 67, + 67, + 150, + 179, + 179, + 179, + 146, + 193, + 130, + 103, + 103, + 103, + 103, + 103, + 103, + 103, + 232, + 295, + 295, + 295, + 297, + 195, + 43, + 4, + 4, + 57, + 57, + 296, + 57, + 59, + 59, + 339, + 321, + 335, + 59, + 59, + 303, + 303, + 303, + 83, + 83, + 83, + 83, + 74, + 345, + 345, + 103, + 124, + 124, + 182, + 182, + 120, + 128, + 99, + 286, + 270, + 270, + 100, + 100, + 100, + 236, + 236, + 236, + 316, + 204, + 377, + 377, + 267, + 209, + 209, + 204, + 204, + 186, + 186, + 159, + 259, + 221, + 221, + 221, + 348, + 348, + 348, + 348, + 397, + 397, + 397, + 397, + 130, + 349, + 349, + 349, + 250, + 250, + 219, + 59, + 59, + 36, + 15, + 15, + 23, + 58, + 344, + 344, + 344, + 344, + 97, + 344, + 352, + 168, + 379, + 379, + 379, + 319, + 319, + 319, + 368, + 246, + 246, + 246, + 257, + 240, + 240, + 322, + 390, + 390, + 74, + 74, + 390, + 329, + 385, + 178, + 211, + 211, + 211, + 58, + 161, + 58, + 53, + 270, + 347, + 112, + 112, + 112, + 112, + 112, + 104, + 129, + 194, + 194, + 194, + 130, + 130, + 112, + 270, + 279, + 279, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 76, + 345, + 345, + 345, + 279, + 266, + 364, + 266, + 382, + 217, + 380, + 357, + 219, + 357, + 357, + 357, + 175, + 144, + 153, + 153, + 153, + 153, + 390, + 390, + 377, + 180, + 180, + 180, + 180, + 165, + 165, + 165, + 165, + 165, + 165, + 165, + 165, + 248, + 248, + 248, + 137, + 245, + 245, + 295, + 53, + 31, + 376, + 376, + 318, + 318, + 318, + 144, + 258, + 258, + 10, + 399, + 399, + 319, + 170, + 226, + 265, + 265, + 265, + 282, + 383, + 383, + 282, + 282, + 105, + 105, + 282, + 282, + 345, + 282, + 185, + 282, + 282, + 350, + 282, + 282, + 233, + 382, + 382, + 382, + 382, + 200, + 200, + 200, + 200, + 276, + 251, + 29, + 29, + 50, + 387, + 387, + 387, + 387, + 16, + 23, + 275, + 23, + 58, + 77, + 217, + 77, + 58, + 58, + 58, + 63, + 349, + 349, + 349, + 349, + 349, + 188, + 188, + 188, + 241, + 321, + 340, + 156, + 63, + 63, + 48, + 127, + 48, + 35, + 248, + 376, + 217, + 217, + 217, + 212, + 212, + 376, + 127, + 248, + 248, + 248, + 248, + 289, + 289, + 289, + 35, + 355, + 355, + 355, + 355, + 88, + 355, + 340, + 340, + 340, + 318, + 325, + 161, + 55, + 326, + 66, + 354, + 157, + 263, + 42, + 150, + 5, + 5, + 55, + 55, + 55, + 345, + 55, + 55, + 42, + 55, + 55, + 26, + 10, + 60, + 354, + 76, + 76, + 76, + 340, + 329, + 329, + 190, + 190, + 179, + 179, + 208, + 208, + 208, + 208, + 329, + 329, + 329, + 329, + 329, + 329, + 329, + 309, + 179, + 175, + 231, + 334, + 252, + 252, + 296, + 299, + 185, + 185, + 185, + 60, + 204, + 41, + 85, + 313, + 313, + 30, + 59, + 183, + 219, + 127, + 127, + 370, + 282, + 163, + 163, + 85, + 70, + 138, + 138, + 10, + 129, + 196, + 196, + 196, + 366, + 21, + 174, + 133, + 183, + 183, + 368, + 18, + 45, + 386, + 8, + 368, + 21, + 21, + 126, + 126, + 126, + 249, + 276, + 211, + 211, + 211, + 318, + 157, + 259, + 218, + 156, + 156, + 200, + 200, + 259, + 57, + 57, + 57, + 57, + 62, + 62, + 331, + 331, + 37, + 37, + 37, + 37, + 287, + 86, + 57, + 57, + 57, + 57, + 57, + 57, + 57, + 9, + 9, + 9, + 102, + 102, + 364, + 73, + 73, + 339, + 339, + 396, + 349, + 169, + 169, + 181, + 181, + 251, + 251, + 251, + 251, + 224, + 224, + 176, + 34, + 6, + 4, + 4, + 154, + 154, + 213, + 154, + 163, + 269, + 269, + 393, + 393, + 269, + 269, + 343, + 260, + 215, + 393, + 213, + 213, + 213, + 393, + 334, + 334, + 334, + 375, + 375, + 387, + 260, + 260, + 302, + 302, + 317, + 258, + 391, + 391, + 391, + 391, + 391, + 391, + 153, + 153, + 120, + 159, + 173, + 258, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 252, + 245, + 333, + 149, + 149, + 323, + 323, + 149, + 169, + 169, + 179, + 179, + 245, + 272, + 272, + 272, + 272, + 125, + 272, + 229, + 229, + 365, + 365, + 158, + 229, + 233, + 233, + 233, + 233, + 343, + 344, + 344, + 344, + 344, + 205, + 344, + 344, + 356, + 259, + 288, + 285, + 285, + 285, + 32, + 32, + 32, + 182, + 15, + 325, + 90, + 154, + 154, + 130, + 130, + 130, + 383, + 383, + 383, + 144, + 213, + 144, + 144, + 144, + 247, + 256, + 256, + 256, + 256, + 256, + 187, + 268, + 84, + 368, + 335, + 335, + 335, + 335, + 326, + 326, + 398, + 398, + 398, + 144, + 111, + 111, + 385, + 111, + 268, + 228, + 269, + 269, + 295, + 72, + 75, + 75, + 91, + 340, + 191, + 191, + 297, + 181, + 181, + 119, + 334, + 297, + 352, + 297, + 297, + 297, + 297, + 297, + 297, + 280, + 280, + 294, + 339, + 327, + 327, + 336, + 336, + 126, + 126, + 103, + 103, + 103, + 103, + 103, + 103, + 294, + 264, + 264, + 345, + 345, + 345, + 345, + 345, + 345, + 345, + 250, + 250, + 250, + 250, + 250, + 252, + 266, + 40, + 351, + 351, + 274, + 274, + 274, + 40, + 55, + 350, + 69, + 69, + 69, + 69, + 69, + 230, + 104, + 104, + 230, + 213, + 279, + 155, + 241, + 55, + 55, + 35, + 289, + 193, + 193, + 54, + 54, + 54, + 54, + 310, + 310, + 310, + 310, + 169, + 169, + 67, + 363, + 232, + 46, + 46, + 68, + 46, + 46, + 164, + 164, + 52, + 17, + 147, + 17, + 15, + 244, + 70, + 70, + 70, + 262, + 262, + 140, + 140, + 140, + 262, + 131, + 110, + 110, + 110, + 200, + 200, + 15, + 15, + 15, + 53, + 62, + 92, + 92, + 92, + 92, + 92, + 327, + 327, + 109, + 377, + 267, + 62, + 62, + 146, + 62, + 62, + 126, + 126, + 62, + 3, + 164, + 378, + 164, + 164, + 339, + 339, + 164, + 386, + 197, + 161, + 211, + 355, + 355, + 355, + 161, + 395, + 161, + 161, + 246, + 66, + 61, + 142, + 22, + 54, + 54, + 64, + 64, + 183, + 183, + 175, + 231, + 231, + 95, + 95, + 95, + 95, + 179, + 179, + 179, + 209, + 209, + 209, + 146, + 146, + 199, + 199, + 199, + 156, + 156, + 101, + 119, + 119, + 119, + 154, + 94, + 154, + 154, + 154, + 231, + 231, + 235, + 224, + 224, + 51, + 51, + 51, + 51, + 51, + 26, + 63, + 156, + 156, + 156, + 45, + 5, + 5, + 7, + 270, + 179, + 87, + 87, + 179, + 179, + 179, + 179, + 229, + 7, + 281, + 281, + 281, + 281, + 273, + 19, + 34, + 34, + 47, + 207, + 47, + 100, + 100, + 100, + 100, + 26, + 63, + 108, + 99, + 25, + 393, + 393, + 203, + 203, + 203, + 393, + 393, + 393, + 393, + 393, + 115, + 226, + 33, + 22, + 23, + 37, + 346, + 346, + 82, + 346, + 346, + 346, + 346, + 346, + 346, + 346, + 383, + 316, + 316, + 316, + 281, + 240, + 37, + 113, + 113, + 113, + 86, + 113, + 113, + 340, + 115, + 115, + 375, + 375, + 375, + 375, + 121, + 135, + 25, + 15, + 15, + 15, + 376, + 15, + 230, + 15, + 61, + 61, + 294, + 294, + 85, + 83, + 10, + 83, + 83, + 83, + 83, + 354, + 97, + 354, + 151, + 317, + 151, + 151, + 151, + 377, + 377, + 118, + 310, + 310, + 310, + 47, + 206, + 318, + 318, + 364, + 364, + 96, + 96, + 240, + 364, + 160, + 160, + 155, + 155, + 341, + 240, + 240, + 240, + 240, + 47, + 14, + 190, + 190, + 190, + 190, + 69, + 329, + 329, + 164, + 283, + 283, + 172, + 390, + 390, + 326, + 216, + 216, + 216, + 306, + 306, + 312, + 312, + 312, + 312, + 331, + 331, + 331, + 93, + 93, + 331, + 352, + 164, + 164, + 164, + 186, + 343, + 180, + 180, + 180, + 180, + 180, + 180, + 197, + 275, + 288, + 230, + 230, + 230, + 230, + 224, + 239, + 59, + 218, + 59, + 59, + 41, + 41, + 41, + 336, + 41, + 177, + 41, + 41, + 41, + 94, + 137, + 137, + 179, + 152, + 37, + 212, + 182, + 376, + 385, + 224, + 224, + 8, + 309, + 309, + 322, + 322, + 351, + 137, + 137, + 137, + 208, + 325, + 137, + 137, + 181, + 184, + 187, + 335, + 187, + 187, + 141, + 101, + 191, + 275, + 275, + 388, + 388, + 389, + 389, + 389, + 322, + 322, + 322, + 322, + 322, + 247, + 247, + 247, + 247, + 247, + 238, + 238, + 238, + 206, + 206, + 204, + 204, + 204, + 345, + 345, + 345, + 345, + 345, + 345, + 374, + 114, + 372, + 242, + 345, + 345, + 54, + 54, + 185, + 1, + 39, + 55, + 164, + 336, + 336, + 4, + 39, + 5, + 5, + 63, + 142, + 142, + 94, + 307, + 307, + 142, + 109, + 282, + 228, + 254, + 292, + 228, + 228, + 310, + 205, + 123, + 123, + 150, + 297, + 297, + 283, + 283, + 241, + 277, + 277, + 277, + 220, + 89, + 261, + 273, + 63, + 63, + 63, + 343, + 343, + 343, + 255, + 255, + 63, + 164, + 198, + 198, + 42, + 32, + 32, + 32, + 32, + 352, + 270, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 180, + 244, + 244, + 361, + 28, + 56, + 182, + 182, + 182, + 81, + 81, + 182, + 357, + 357, + 357, + 357, + 352, + 352, + 352, + 389, + 389, + 79, + 95, + 389, + 339, + 383, + 342, + 238, + 238, + 298, + 282, + 21, + 21, + 33, + 297, + 349, + 349, + 341, + 341, + 154, + 154, + 75, + 75, + 75, + 319, + 319, + 154, + 154, + 154, + 196, + 196, + 297, + 238, + 339, + 77, + 77, + 77, + 77, + 77, + 77, + 339, + 222, + 310, + 310, + 360, + 136, + 197, + 197, + 197, + 197, + 197, + 197, + 222, + 89, + 241, + 298, + 33, + 56, + 7, + 55, + 55, + 55, + 55, + 340, + 340, + 234, + 55, + 361, + 361, + 361, + 217, + 217, + 334, + 334, + 334, + 334, + 334, + 334, + 307, + 307, + 307, + 342, + 342, + 111, + 111, + 120, + 313, + 220, + 220, + 74, + 74, + 74, + 376, + 376, + 120, + 255, + 255, + 212, + 212, + 267, + 261, + 261, + 261, + 202, + 231, + 231, + 223, + 223, + 107, + 107, + 107, + 207, + 186, + 223, + 223, + 223, + 96, + 269, + 221, + 221, + 221, + 360, + 399, + 399, + 399, + 298, + 262, + 288, + 288, + 288, + 10, + 164, + 90, + 90, + 307, + 210, + 210, + 327, + 327, + 327, + 299, + 342, + 342, + 148, + 380, + 148, + 266, + 252, + 256, + 328, + 256, + 54, + 5, + 5, + 5, + 5, + 2, + 43, + 24, + 24, + 7, + 82, + 82, + 194, + 194, + 230, + 32, + 32, + 104, + 104, + 115, + 65, + 6, + 24, + 24, + 24, + 24, + 24, + 240, + 240, + 240, + 298, + 298, + 79, + 79, + 79, + 50, + 158, + 91, + 91, + 91, + 390, + 158, + 176, + 308, + 203, + 203, + 203, + 229, + 165, + 165, + 165, + 133, + 189, + 189, + 135, + 229, + 85, + 297, + 170, + 170, + 170, + 122, + 142, + 142, + 198, + 198, + 198, + 198, + 271, + 215, + 106, + 271, + 122, + 122, + 122, + 122, + 122, + 271, + 105, + 288, + 86, + 86, + 86, + 363, + 54, + 188, + 188, + 188, + 242, + 242, + 189, + 242, + 242, + 242, + 281, + 372, + 372, + 103, + 103, + 386, + 103, + 103, + 103, + 103, + 195, + 389, + 214, + 315, + 120, + 213, + 213, + 194, + 194, + 187, + 187, + 147, + 373, + 147, + 147, + 147, + 147, + 109, + 343, + 185, + 78, + 185, + 185, + 185, + 189, + 119, + 272, + 272, + 284, + 301, + 347, + 284, + 277, + 173, + 73, + 293, + 293, + 235, + 235, + 162, + 162, + 162, + 310, + 310, + 209, + 209, + 376, + 376, + 376, + 376, + 376, + 376, + 328, + 83, + 83, + 396, + 379, + 345, + 162, + 162, + 162, + 161, + 194, + 194, + 148, + 148, + 390, + 200, + 123, + 123, + 123, + 258, + 245, + 204, + 204, + 204, + 204, + 204, + 217, + 245, + 352, + 194, + 194, + 359, + 189, + 189, + 189, + 245, + 229, + 229, + 320, + 320, + 320, + 320, + 320, + 330, + 330, + 330, + 96, + 330, + 346, + 256, + 256, + 236, + 286, + 286, + 286, + 286, + 286, + 222, + 330, + 296, + 296, + 188, + 296, + 129, + 339, + 339, + 129, + 129, + 296, + 254, + 254, + 54, + 81, + 40, + 40, + 157, + 157, + 40, + 245, + 245, + 149, + 149, + 149, + 245, + 319, + 319, + 319, + 319, + 122, + 253, + 253, + 16, + 43, + 18, + 167, + 167, + 167, + 81, + 368, + 348, + 167, + 167, + 167, + 167, + 146, + 146, + 131, + 258, + 258, + 128, + 201, + 201, + 201, + 201, + 201, + 359, + 142, + 258, + 14, + 287, + 338, + 287, + 363, + 340, + 340, + 14, + 369, + 381, + 315, + 130, + 130, + 130, + 243, + 76, + 76, + 76, + 76, + 76, + 76, + 85, + 85, + 85, + 85, + 85, + 85, + 351, + 182, + 243, + 153, + 115, + 14, + 14, + 14, + 32, + 32, + 32, + 32, + 32, + 173, + 300, + 372, + 372, + 372, + 372, + 303, + 303, + 303, + 332, + 309, + 309, + 309, + 309, + 309, + 309, + 363, + 363, + 167, + 259, + 259, + 32, + 49, + 49, + 49, + 31, + 229, + 229, + 229, + 229, + 229, + 307, + 110, + 110, + 334, + 385, + 385, + 110, + 195, + 256, + 234, + 129, + 129, + 129, + 173, + 195, + 234, + 296, + 31, + 10, + 10, + 10, + 37, + 362, + 57, + 57, + 57, + 18, + 19, + 54, + 126, + 352, + 352, + 17, + 156, + 47, + 104, + 217, + 217, + 217, + 217, + 217, + 217, + 217, + 371, + 371, + 371, + 371, + 371, + 104, + 372, + 91, + 91, + 346, + 346, + 346, + 171, + 133, + 185, + 177, + 106, + 106, + 106, + 169, + 219, + 399, + 399, + 399, + 399, + 399, + 399, + 161, + 286, + 182, + 182, + 182, + 286, + 286, + 256, + 256, + 256, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 162, + 256, + 256, + 256, + 242, + 242, + 355, + 199, + 199, + 242, + 265, + 68, + 329, + 329, + 213, + 213, + 213, + 213, + 213, + 329, + 161, + 303, + 303, + 303, + 303, + 174, + 174, + 182, + 182, + 396, + 396, + 396, + 203, + 189, + 189, + 189, + 382, + 189, + 189, + 238, + 270, + 258, + 47, + 342, + 342, + 342, + 342, + 342, + 370, + 389, + 175, + 101, + 169, + 246, + 246, + 304, + 304, + 246, + 246, + 122, + 79, + 79, + 246, + 275, + 351, + 351, + 397, + 170, + 243, + 296, + 115, + 115, + 115, + 296, + 296, + 283, + 283, + 283, + 68, + 68, + 283, + 16, + 49, + 49, + 46, + 12, + 209, + 301, + 130, + 374, + 374, + 374, + 374, + 252, + 9, + 9, + 131, + 81, + 81, + 171, + 171, + 165, + 48, + 48, + 48, + 36, + 36, + 219, + 36, + 36, + 194, + 286, + 330, + 330, + 260, + 85, + 85, + 395, + 253, + 253, + 253, + 253, + 253, + 377, + 98, + 334, + 334, + 334, + 12, + 54, + 134, + 187, + 54, + 0, + 363, + 347, + 354, + 354, + 354, + 354, + 354, + 354, + 220, + 75, + 75, + 75, + 180, + 193, + 191, + 266, + 266, + 136, + 84, + 136, + 0, + 123, + 123, + 67, + 67, + 67, + 57, + 28, + 326, + 11, + 11, + 19, + 76, + 76, + 380, + 380, + 380, + 380, + 165, + 55, + 54, + 190, + 201, + 201, + 397, + 379, + 142, + 158, + 353, + 336, + 209, + 328, + 328, + 108, + 142, + 142, + 142, + 260, + 386, + 75, + 75, + 75, + 386, + 386, + 386, + 389, + 352, + 171, + 171, + 160, + 160, + 160, + 160, + 160, + 160, + 130, + 130, + 170, + 331, + 170, + 170, + 269, + 397, + 397, + 102, + 251, + 243, + 243, + 264, + 264, + 273, + 273, + 273, + 273, + 273, + 273, + 150, + 54, + 54, + 65, + 65, + 34, + 34, + 13, + 0, + 389, + 47, + 47, + 47, + 53, + 148, + 148, + 148, + 148, + 365, + 365, + 365, + 365, + 365, + 148, + 283, + 109, + 109, + 262, + 262, + 262, + 324, + 324, + 150, + 324, + 324, + 324, + 324, + 324, + 150, + 152, + 152, + 338, + 152, + 153, + 153, + 153, + 146, + 146, + 83, + 83, + 116, + 161, + 98, + 284, + 246, + 246, + 90, + 90, + 397, + 397, + 397, + 80, + 80, + 356, + 102, + 102, + 265, + 264, + 293, + 229, + 322, + 322, + 229, + 229, + 229, + 229, + 247, + 234, + 53, + 53, + 53, + 21, + 59, + 59, + 42, + 92, + 366, + 366, + 19, + 19, + 19, + 36, + 36, + 9, + 212, + 212, + 74, + 74, + 91, + 322, + 29, + 131, + 29, + 321, + 29, + 320, + 26, + 26, + 3, + 263, + 7, + 105, + 105, + 150, + 7, + 7, + 92, + 92, + 365, + 65, + 310, + 310, + 310, + 350, + 224, + 36, + 36, + 36, + 4, + 4, + 159, + 397, + 159, + 159, + 317, + 317, + 317, + 356, + 324, + 159, + 108, + 138, + 138, + 138, + 178, + 178, + 178, + 178, + 118, + 295, + 151, + 151, + 151, + 295, + 4, + 344, + 344, + 344, + 363, + 236, + 211, + 211, + 211, + 211, + 266, + 385, + 385, + 151, + 151, + 266, + 4, + 4, + 23, + 35, + 3, + 318, + 123, + 123, + 123, + 113, + 40, + 349, + 349, + 355, + 221, + 221, + 208, + 208, + 347, + 149, + 92, + 92, + 92, + 303, + 149, + 149, + 149, + 321, + 321, + 321, + 321, + 138, + 138, + 138, + 111, + 111, + 152, + 152, + 129, + 129, + 142, + 353, + 142, + 104, + 104, + 104, + 171, + 171, + 292, + 72, + 72, + 239, + 225, + 253, + 235, + 235, + 235, + 235, + 130, + 294, + 226, + 387, + 176, + 226, + 16, + 38, + 95, + 95, + 95, + 102, + 237, + 237, + 155, + 350, + 350, + 155, + 320, + 320, + 320, + 385, + 155, + 155, + 155, + 126, + 126, + 126, + 176, + 176, + 237, + 237, + 38, + 38, + 11, + 29, + 29, + 152, + 29, + 29, + 2, + 2, + 2, + 2, + 80, + 387, + 170, + 170, + 203, + 86, + 230, + 230, + 230, + 4, + 4, + 4, + 22, + 92, + 90, + 22, + 22, + 31, + 31, + 31, + 327, + 122, + 122, + 31, + 31, + 31, + 11, + 87, + 87, + 87, + 87, + 72, + 93, + 99, + 99, + 353, + 101, + 101, + 182, + 335, + 335, + 335, + 335, + 335, + 335, + 382, + 382, + 382, + 382, + 382, + 182, + 77, + 77, + 77, + 77, + 128, + 298, + 298, + 236, + 337, + 337, + 278, + 278, + 278, + 297, + 235, + 210, + 210, + 210, + 377, + 126, + 321, + 321, + 321, + 337, + 337, + 337, + 337, + 327, + 327, + 327, + 327, + 340, + 176, + 152, + 135, + 135, + 267, + 267, + 267, + 223, + 223, + 243, + 243, + 243, + 284, + 279, + 239, + 239, + 239, + 192, + 192, + 192, + 192, + 216, + 99, + 77, + 77, + 77, + 77, + 77, + 77, + 373, + 283, + 283, + 283, + 283, + 265, + 254, + 254, + 11, + 322, + 185, + 69, + 69, + 353, + 353, + 196, + 196, + 244, + 244, + 244, + 86, + 375, + 336, + 177, + 177, + 207, + 207, + 177, + 177, + 74, + 194, + 166, + 241, + 241, + 79, + 79, + 79, + 348, + 216, + 241, + 163, + 163, + 273, + 273, + 237, + 237, + 0, + 0, + 285, + 208, + 208, + 208, + 342, + 285, + 188, + 40, + 219, + 219, + 219, + 219, + 219, + 213, + 213, + 334, + 334, + 71, + 71, + 71, + 71, + 138, + 138, + 40, + 40, + 41, + 41, + 161, + 121, + 121, + 41, + 41, + 41, + 392, + 349, + 349, + 349, + 349, + 349, + 349, + 349, + 378, + 378, + 171, + 171, + 137, + 137, + 247, + 247, + 247, + 258, + 1, + 1, + 66, + 66, + 21, + 226, + 197, + 50, + 28, + 48, + 25, + 100, + 100, + 100, + 100, + 100, + 100, + 161, + 197, + 197, + 197, + 197, + 197, + 118, + 118, + 118, + 292, + 292, + 348, + 259, + 259, + 259, + 37, + 37, + 37, + 64, + 64, + 55, + 2, + 61, + 15, + 36, + 36, + 5, + 29, + 29, + 146, + 146, + 146, + 123, + 123, + 29, + 25, + 25, + 16, + 16, + 22, + 117, + 84, + 84, + 84, + 4, + 4, + 88, + 88, + 393, + 363, + 363, + 63, + 37, + 210, + 108, + 123, + 123, + 163, + 387, + 14, + 45, + 355, + 206, + 206, + 355, + 355, + 214, + 214, + 355, + 169, + 169, + 371, + 371, + 371, + 371, + 258, + 56, + 254, + 378, + 378, + 378, + 196, + 196, + 97, + 216, + 216, + 97, + 97, + 196, + 196, + 196, + 146, + 146, + 119, + 224, + 292, + 292, + 91, + 91, + 91, + 292, + 136, + 136, + 292, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 194, + 384, + 384, + 384, + 384, + 139, + 139, + 139, + 104, + 104, + 104, + 104, + 104, + 211, + 88, + 88, + 88, + 397, + 397, + 168, + 317, + 317, + 317, + 317, + 168, + 333, + 106, + 106, + 101, + 101, + 207, + 101, + 101, + 184, + 193, + 72, + 329, + 329, + 329, + 360, + 313, + 313, + 387, + 387, + 340, + 340, + 340, + 115, + 115, + 115, + 115, + 115, + 115, + 147, + 140, + 334, + 331, + 331, + 184, + 184, + 184, + 184, + 184, + 184, + 184, + 190, + 190, + 298, + 298, + 298, + 223, + 251, + 298, + 108, + 108, + 237, + 237, + 205, + 333, + 119, + 119, + 375, + 375, + 375, + 375, + 125, + 279, + 297, + 227, + 227, + 291, + 225, + 283, + 283, + 283, + 281, + 281, + 5, + 5, + 5, + 36, + 36, + 190, + 274, + 36, + 36, + 38, + 61, + 56, + 56, + 56, + 338, + 322, + 213, + 213, + 213, + 213, + 322, + 322, + 274, + 274, + 383, + 111, + 274, + 234, + 234, + 28, + 15, + 38, + 38, + 24, + 81, + 81, + 81, + 366, + 366, + 366, + 366, + 322, + 322, + 317, + 317, + 317, + 85, + 317, + 317, + 317, + 318, + 318, + 318, + 307, + 348, + 348, + 348, + 170, + 172, + 172, + 110, + 77, + 77, + 77, + 77, + 162, + 286, + 286, + 286, + 228, + 253, + 24, + 8, + 8, + 3, + 311, + 335, + 335, + 294, + 20, + 381, + 20, + 172, + 384, + 172, + 377, + 377, + 353, + 342, + 342, + 342, + 342, + 342, + 362, + 362, + 362, + 362, + 362, + 362, + 303, + 303, + 303, + 336, + 172, + 197, + 197, + 285, + 348, + 285, + 285, + 276, + 276, + 87, + 87, + 87, + 87, + 219, + 103, + 135, + 135, + 143, + 396, + 396, + 389, + 389, + 324, + 143, + 283, + 233, + 233, + 321, + 233, + 267, + 20, + 20, + 20, + 179, + 179, + 294, + 135, + 135, + 294, + 89, + 183, + 84, + 350, + 350, + 350, + 350, + 350, + 350, + 350, + 74, + 350, + 345, + 383, + 334, + 90, + 90, + 354, + 354, + 198, + 198, + 140, + 140, + 294, + 161, + 249, + 243, + 243, + 243, + 243, + 118, + 243, + 243, + 243, + 261, + 240, + 240, + 284, + 306, + 186, + 143, + 189, + 300, + 182, + 182, + 182, + 182, + 182, + 78, + 398, + 398, + 182, + 180, + 192, + 300, + 136, + 136, + 155, + 155, + 300, + 265, + 42, + 353, + 211, + 353, + 198, + 305, + 42, + 42, + 42, + 42, + 42, + 42, + 35, + 35, + 59, + 59, + 49, + 318, + 318, + 45, + 23, + 23, + 280, + 141, + 141, + 141, + 141, + 43, + 215, + 12, + 87, + 149, + 149, + 149, + 214, + 214, + 330, + 116, + 194, + 194, + 12, + 199, + 199, + 199, + 216, + 216, + 216, + 350, + 326, + 326, + 376, + 320, + 398, + 398, + 398, + 398, + 398, + 184, + 184, + 120, + 120, + 120, + 120, + 182, + 182, + 186, + 263, + 343, + 189, + 189, + 170, + 170, + 320, + 297, + 297, + 138, + 363, + 363, + 363, + 138, + 98, + 98, + 148, + 377, + 307, + 381, + 83, + 83, + 148, + 148, + 388, + 388, + 388, + 303, + 303, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 368, + 368, + 138, + 149, + 149, + 189, + 189, + 297, + 297, + 297, + 241, + 241, + 241, + 241, + 12, + 50, + 84, + 203, + 50, + 50, + 50, + 358, + 358, + 399, + 399, + 399, + 399, + 183, + 183, + 179, + 119, + 84, + 84, + 216, + 216, + 84, + 84, + 84, + 118, + 69, + 119, + 233, + 233, + 216, + 216, + 216, + 233, + 233, + 368, + 50, + 31, + 56, + 1, + 11, + 65, + 65, + 1, + 1, + 362, + 362, + 202, + 202, + 202, + 215, + 215, + 94, + 383, + 358, + 358, + 358, + 112, + 128, + 128, + 156, + 115, + 115, + 358, + 223, + 288, + 14, + 135, + 4, + 355, + 72, + 72, + 72, + 355, + 355, + 358, + 173, + 83, + 348, + 388, + 173, + 130, + 130, + 4, + 49, + 49, + 370, + 181, + 247, + 247, + 367, + 367, + 111, + 111, + 293, + 49, + 49, + 49, + 28, + 28, + 27, + 21, + 10, + 30, + 185, + 185, + 185, + 185, + 335, + 335, + 335, + 335, + 339, + 185, + 185, + 241, + 239, + 122, + 187, + 239, + 156, + 156, + 79, + 79, + 79, + 79, + 79, + 79, + 79, + 79, + 366, + 366, + 399, + 47, + 42, + 22, + 22, + 145, + 328, + 339, + 339, + 145, + 9, + 9, + 56, + 56, + 320, + 137, + 282, + 282, + 282, + 282, + 282, + 249, + 249, + 249, + 120, + 354, + 120, + 120, + 120, + 120, + 120, + 249, + 249, + 309, + 180, + 180, + 288, + 288, + 228, + 228, + 226, + 226, + 286, + 286, + 314, + 286, + 286, + 239, + 278, + 278, + 278, + 337, + 354, + 269, + 269, + 309, + 309, + 269, + 269, + 269, + 294, + 56, + 56, + 376, + 61, + 61, + 139, + 61, + 2, + 15, + 12, + 237, + 12, + 350, + 39, + 125, + 375, + 71, + 71, + 48, + 48, + 222, + 380, + 268, + 268, + 268, + 109, + 394, + 394, + 394, + 268, + 268, + 221, + 296, + 25, + 63, + 124, + 40, + 40, + 147, + 40, + 108, + 108, + 108, + 40, + 20, + 59, + 59, + 213, + 213, + 197, + 74, + 74, + 395, + 395, + 395, + 339, + 339, + 339, + 365, + 308, + 399, + 399, + 365, + 107, + 193, + 288, + 71, + 71, + 346, + 393, + 93, + 393, + 393, + 393, + 396, + 396, + 101, + 277, + 283, + 195, + 195, + 195, + 195, + 195, + 163, + 248, + 248, + 248, + 113, + 191, + 161, + 161, + 236, + 135, + 236, + 273, + 273, + 273, + 318, + 318, + 141, + 141, + 371, + 202, + 385, + 385, + 273, + 398, + 331, + 331, + 331, + 331, + 375, + 375, + 375, + 375, + 375, + 375, + 388, + 388, + 340, + 382, + 111, + 133, + 133, + 133, + 146, + 146, + 161, + 105, + 105, + 105, + 105, + 105, + 105, + 105, + 269, + 223, + 187, + 223, + 264, + 231, + 96, + 150, + 150, + 231, + 95, + 95, + 95, + 140, + 163, + 163, + 163, + 163, + 163, + 304, + 231, + 179, + 265, + 251, + 245, + 245, + 224, + 224, + 294, + 241, + 28, + 141, + 28, + 36, + 36, + 36, + 301, + 190, + 189, + 36, + 361, + 197, + 151, + 369, + 369, + 369, + 369, + 369, + 350, + 350, + 396, + 334, + 334, + 334, + 318, + 306, + 198, + 93, + 294, + 294, + 89, + 89, + 202, + 202, + 202, + 318, + 294, + 317, + 317, + 317, + 317, + 340, + 104, + 179, + 160, + 160, + 160, + 294, + 298, + 103, + 103, + 103, + 103, + 103, + 155, + 155, + 298, + 298, + 251, + 335, + 240, + 80, + 80, + 80, + 80, + 169, + 169, + 169, + 240, + 301, + 149, + 222, + 203, + 203, + 164, + 164, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 57, + 25, + 25, + 5, + 5, + 340, + 311, + 311, + 5, + 94, + 41, + 155, + 11, + 11, + 5, + 113, + 234, + 279, + 51, + 16, + 175, + 16, + 201, + 6, + 6, + 31, + 33, + 33, + 33, + 33, + 33, + 145, + 53, + 17, + 290, + 290, + 290, + 290, + 290, + 276, + 276, + 17, + 12, + 187, + 336, + 336, + 363, + 363, + 363, + 363, + 359, + 359, + 369, + 346, + 346, + 187, + 70, + 341, + 341, + 98, + 312, + 152, + 203, + 203, + 282, + 60, + 54, + 49, + 201, + 201, + 49, + 315, + 219, + 40, + 62, + 62, + 62, + 101, + 101, + 112, + 149, + 149, + 214, + 214, + 214, + 214, + 363, + 166, + 166, + 147, + 1, + 208, + 208, + 208, + 14, + 170, + 303, + 170, + 382, + 382, + 14, + 14, + 14, + 191, + 14, + 199, + 388, + 199, + 199, + 199, + 14, + 212, + 212, + 212, + 14, + 65, + 393, + 393, + 393, + 44, + 15, + 15, + 45, + 45, + 45, + 45, + 95, + 95, + 74, + 74, + 74, + 97, + 349, + 79, + 79, + 79, + 73, + 73, + 349, + 366, + 366, + 393, + 353, + 126, + 374, + 115, + 115, + 115, + 115, + 115, + 138, + 313, + 313, + 313, + 305, + 305, + 138, + 237, + 237, + 259, + 277, + 260, + 45, + 40, + 40, + 391, + 295, + 295, + 243, + 356, + 152, + 152, + 238, + 111, + 238, + 147, + 147, + 147, + 147, + 217, + 217, + 352, + 352, + 352, + 352, + 160, + 160, + 40, + 3, + 3, + 36, + 18, + 18, + 267, + 67, + 67, + 126, + 126, + 18, + 53, + 53, + 53, + 18, + 351, + 351, + 351, + 351, + 345, + 18, + 36, + 36, + 323, + 323, + 27, + 272, + 211, + 211, + 211, + 99, + 27, + 45, + 291, + 26, + 15, + 15, + 164, + 164, + 237, + 237, + 232, + 27, + 36, + 94, + 94, + 322, + 1, + 355, + 355, + 355, + 355, + 378, + 378, + 374, + 313, + 340, + 210, + 210, + 210, + 210, + 69, + 307, + 307, + 142, + 142, + 111, + 111, + 216, + 216, + 216, + 216, + 122, + 122, + 103, + 103, + 69, + 69, + 69, + 399, + 399, + 399, + 103, + 175, + 136, + 136, + 136, + 160, + 382, + 116, + 218, + 316, + 316, + 316, + 366, + 366, + 366, + 370, + 370, + 283, + 270, + 270, + 229, + 199, + 229, + 272, + 232, + 232, + 225, + 225, + 225, + 230, + 151, + 151, + 151, + 240, + 240, + 240, + 325, + 325, + 312, + 312, + 312, + 312, + 322, + 319, + 319, + 121, + 240, + 240, + 112, + 195, + 154, + 240, + 251, + 189, + 189, + 189, + 189, + 189, + 123, + 123, + 123, + 251, + 251, + 251, + 227, + 301, + 301, + 301, + 301, + 301, + 227, + 273, + 273, + 285, + 285, + 253, + 253, + 253, + 239, + 374, + 1, + 21, + 7, + 7, + 7, + 156, + 156, + 127, + 127, + 127, + 130, + 130, + 77, + 393, + 202, + 399, + 130, + 130, + 130, + 89, + 237, + 7, + 48, + 38, + 38, + 38, + 38, + 335, + 335, + 335, + 38, + 44, + 308, + 308, + 361, + 209, + 209, + 209, + 290, + 385, + 385, + 292, + 292, + 49, + 49, + 36, + 36, + 36, + 36, + 36, + 36, + 72, + 370, + 235, + 203, + 82, + 82, + 235, + 245, + 36, + 36, + 295, + 63, + 63, + 63, + 0, + 180, + 93, + 180, + 180, + 180, + 32, + 61, + 61, + 65, + 65, + 65, + 366, + 152, + 152, + 207, + 207, + 77, + 180, + 104, + 344, + 383, + 157, + 157, + 157, + 220, + 157, + 157, + 157, + 9, + 9, + 158, + 158, + 158, + 20, + 132, + 132, + 127, + 127, + 127, + 174, + 174, + 174, + 174, + 174, + 302, + 171, + 171, + 171, + 171, + 145, + 104, + 359, + 359, + 117, + 165, + 165, + 343, + 343, + 243, + 243, + 140, + 71, + 71, + 201, + 201, + 201, + 201, + 201, + 201, + 208, + 71, + 310, + 333, + 337, + 337, + 120, + 162, + 258, + 258, + 269, + 269, + 13, + 13, + 13, + 180, + 83, + 83, + 83, + 13, + 40, + 98, + 63, + 370, + 86, + 86, + 370, + 366, + 366, + 186, + 186, + 176, + 241, + 31, + 271, + 372, + 372, + 82, + 26, + 378, + 378, + 321, + 394, + 394, + 237, + 237, + 26, + 391, + 290, + 322, + 313, + 51, + 39, + 209, + 209, + 209, + 379, + 3, + 3, + 3, + 285, + 285, + 285, + 285, + 286, + 299, + 299, + 299, + 3, + 47, + 113, + 113, + 122, + 122, + 122, + 118, + 20, + 236, + 372, + 160, + 160, + 160, + 100, + 328, + 328, + 328, + 328, + 196, + 196, + 138, + 138, + 230, + 230, + 226, + 57, + 57, + 57, + 57, + 57, + 57, + 204, + 397, + 397, + 192, + 39, + 10, + 10, + 101, + 101, + 282, + 396, + 282, + 282, + 214, + 214, + 282, + 261, + 261, + 363, + 363, + 363, + 76, + 76, + 76, + 363, + 236, + 199, + 199, + 199, + 199, + 135, + 0, + 68, + 68, + 168, + 168, + 136, + 136, + 211, + 219, + 136, + 174, + 279, + 223, + 286, + 144, + 144, + 144, + 169, + 387, + 97, + 387, + 387, + 145, + 119, + 87, + 87, + 87, + 87, + 87, + 87, + 203, + 203, + 87, + 87, + 87, + 145, + 145, + 145, + 152, + 176, + 128, + 128, + 128, + 80, + 381, + 381, + 139, + 139, + 286, + 232, + 229, + 256, + 197, + 197, + 100, + 197, + 197, + 197, + 260, + 382, + 382, + 382, + 382, + 189, + 137, + 254, + 296, + 221, + 221, + 392, + 221, + 221, + 39, + 315, + 315, + 39, + 7, + 37, + 37, + 37, + 37, + 381, + 381, + 37, + 324, + 324, + 324, + 169, + 169, + 169, + 169, + 44, + 65, + 65, + 55, + 393, + 243, + 243, + 188, + 188, + 243, + 243, + 243, + 55, + 168, + 168, + 168, + 168, + 315, + 168, + 107, + 107, + 106, + 312, + 261, + 261, + 261, + 150, + 261, + 187, + 113, + 113, + 113, + 194, + 145, + 173, + 351, + 351, + 180, + 180, + 101, + 231, + 301, + 19, + 19, + 304, + 36, + 34, + 34, + 90, + 291, + 136, + 355, + 355, + 136, + 136, + 216, + 216, + 216, + 136, + 206, + 136, + 136, + 136, + 136, + 329, + 180, + 398, + 398, + 398, + 180, + 176, + 176, + 176, + 176, + 177, + 88, + 88, + 177, + 177, + 177, + 177, + 177, + 144, + 144, + 142, + 237, + 368, + 368, + 368, + 348, + 282, + 281, + 296, + 34, + 309, + 309, + 309, + 54, + 54, + 330, + 330, + 65, + 63, + 63, + 63, + 56, + 62, + 141, + 254, + 19, + 19, + 16, + 271, + 16, + 16, + 151, + 269, + 16, + 254, + 16, + 322, + 3, + 3, + 61, + 61, + 21, + 36, + 13, + 13, + 13, + 2, + 2, + 2, + 72, + 72, + 72, + 263, + 263, + 47, + 305, + 268, + 71, + 71, + 74, + 100, + 138, + 400, + 138, + 138, + 125, + 72, + 72, + 72, + 72, + 306, + 344, + 260, + 13, + 62, + 56, + 56, + 170, + 26, + 86, + 86, + 151, + 172, + 172, + 172, + 202, + 362, + 172, + 172, + 154, + 148, + 148, + 289, + 289, + 26, + 134, + 162, + 26, + 2, + 66, + 66, + 21, + 21, + 22, + 389, + 146, + 146, + 346, + 250, + 200, + 390, + 390, + 34, + 34, + 34, + 200, + 200, + 110, + 136, + 34, + 34, + 282, + 252, + 252, + 320, + 320, + 320, + 320, + 320, + 158, + 158, + 252, + 252, + 253, + 210, + 240, + 240, + 240, + 220, + 240, + 268, + 46, + 27, + 27, + 165, + 165, + 114, + 300, + 74, + 307, + 307, + 300, + 140, + 300, + 252, + 252, + 252, + 100, + 252, + 252, + 252, + 252, + 252, + 236, + 236, + 90, + 90, + 90, + 393, + 393, + 99, + 99, + 99, + 99, + 82, + 236, + 86, + 86, + 236, + 354, + 354, + 321, + 321, + 321, + 321, + 116, + 116, + 116, + 314, + 314, + 116, + 116, + 161, + 161, + 279, + 279, + 262, + 76, + 151, + 262, + 180, + 262, + 309, + 283, + 129, + 113, + 152, + 152, + 107, + 107, + 107, + 283, + 283, + 283, + 283, + 283, + 286, + 27, + 39, + 61, + 61, + 61, + 61, + 61, + 24, + 66, + 330, + 188, + 188, + 188, + 188, + 189, + 354, + 189, + 189, + 189, + 148, + 394, + 148, + 148, + 148, + 148, + 145, + 112, + 106, + 114, + 361, + 361, + 90, + 361, + 1, + 16, + 370, + 370, + 391, + 279, + 279, + 229, + 283, + 283, + 400, + 400, + 89, + 89, + 84, + 84, + 283, + 283, + 283, + 275, + 300, + 300, + 334, + 300, + 300, + 300, + 300, + 379, + 194, + 252, + 252, + 252, + 252, + 252, + 206, + 206, + 111, + 111, + 139, + 148, + 148, + 337, + 253, + 181, + 181, + 16, + 13, + 41, + 254, + 99, + 99, + 81, + 306, + 306, + 140, + 140, + 140, + 140, + 140, + 254, + 200, + 270, + 264, + 264, + 264, + 264, + 72, + 67, + 396, + 209, + 342, + 342, + 144, + 162, + 202, + 202, + 162, + 162, + 162, + 162, + 313, + 212, + 212, + 212, + 212, + 212, + 202, + 357, + 346, + 148, + 148, + 162, + 162, + 154, + 154, + 154, + 67, + 67, + 308, + 101, + 88, + 206, + 206, + 206, + 206, + 335, + 380, + 303, + 303, + 122, + 133, + 133, + 164, + 164, + 164, + 164, + 164, + 164, + 393, + 393, + 147, + 147, + 331, + 331, + 264, + 256, + 264, + 242, + 377, + 242, + 260, + 260, + 260, + 255, + 251, + 348, + 251, + 251, + 371, + 379, + 62, + 59, + 41, + 41, + 17, + 17, + 75, + 75, + 75, + 75, + 319, + 319, + 17, + 358, + 17, + 17, + 17, + 91, + 91, + 166, + 289, + 289, + 390, + 390, + 390, + 102, + 102, + 95, + 95, + 288, + 17, + 24, + 97, + 97, + 99, + 99, + 85, + 85, + 85, + 85, + 85, + 355, + 174, + 363, + 174, + 164, + 164, + 120, + 120, + 116, + 279, + 279, + 387, + 279, + 279, + 241, + 216, + 216, + 216, + 219, + 356, + 390, + 180, + 240, + 240, + 24, + 120, + 120, + 120, + 207, + 120, + 120, + 125, + 125, + 125, + 373, + 355, + 125, + 125, + 187, + 187, + 116, + 326, + 326, + 116, + 116, + 199, + 115, + 298, + 256, + 256, + 256, + 229, + 229, + 229, + 229, + 229, + 229, + 229, + 229, + 287, + 287, + 287, + 253, + 253, + 287, + 331, + 199, + 287, + 287, + 275, + 275, + 189, + 24, + 104, + 24, + 323, + 323, + 323, + 323, + 323, + 384, + 184, + 184, + 24, + 35, + 49, + 52, + 52, + 305, + 95, + 305, + 305, + 142, + 367, + 367, + 367, + 367, + 149, + 211, + 211, + 186, + 98, + 98, + 162, + 162, + 382, + 382, + 382, + 135, + 291, + 291, + 291, + 52, + 52, + 36, + 34, + 85, + 96, + 96, + 96, + 29, + 23, + 47, + 81, + 62, + 102, + 62, + 269, + 62, + 257, + 301, + 301, + 335, + 335, + 335, + 335, + 372, + 320, + 130, + 130, + 82, + 163, + 179, + 179, + 394, + 179, + 260, + 280, + 302, + 302, + 302, + 302, + 142, + 263, + 263, + 213, + 213, + 213, + 216, + 234, + 234, + 234, + 234, + 229, + 397, + 263, + 278, + 336, + 136, + 136, + 362, + 362, + 130, + 173, + 278, + 62, + 62, + 109, + 245, + 245, + 243, + 0, + 0, + 211, + 211, + 54, + 314, + 86, + 86, + 314, + 336, + 189, + 188, + 188, + 188, + 188, + 319, + 319, + 188, + 188, + 140, + 140, + 106, + 120, + 209, + 209, + 209, + 120, + 120, + 39, + 24, + 379, + 379, + 82, + 379, + 379, + 24, + 24, + 24, + 149, + 149, + 198, + 369, + 369, + 369, + 369, + 383, + 383, + 383, + 383, + 383, + 383, + 383, + 383, + 326, + 170, + 151, + 195, + 253, + 238, + 47, + 37, + 3, + 3, + 334, + 334, + 142, + 3, + 57, + 57, + 327, + 327, + 330, + 207, + 207, + 267, + 57, + 29, + 21, + 21, + 21, + 21, + 21, + 16, + 16, + 16, + 16, + 255, + 255, + 255, + 15, + 15, + 15, + 199, + 239, + 15, + 63, + 19, + 78, + 78, + 276, + 19, + 19, + 19, + 29, + 10, + 10, + 10, + 161, + 10, + 10, + 10, + 213, + 92, + 92, + 364, + 392, + 381, + 381, + 381, + 381, + 381, + 335, + 109, + 109, + 180, + 180, + 198, + 106, + 106, + 106, + 164, + 191, + 86, + 367, + 87, + 87, + 367, + 195, + 209, + 209, + 140, + 140, + 174, + 230, + 358, + 230, + 10, + 50, + 58, + 253, + 252, + 194, + 252, + 252, + 279, + 279, + 241, + 241, + 328, + 241, + 240, + 240, + 58, + 58, + 58, + 176, + 271, + 271, + 96, + 139, + 139, + 271, + 70, + 271, + 130, + 130, + 271, + 73, + 73, + 271, + 271, + 378, + 378, + 378, + 321, + 323, + 150, + 182, + 239, + 257, + 370, + 217, + 217, + 370, + 123, + 260, + 260, + 236, + 236, + 228, + 228, + 228, + 228, + 228, + 292, + 12, + 39, + 56, + 390, + 390, + 390, + 390, + 374, + 302, + 288, + 288, + 266, + 56, + 172, + 304, + 4, + 4, + 4, + 20, + 92, + 92, + 57, + 17, + 153, + 384, + 156, + 17, + 29, + 57, + 254, + 57, + 167, + 207, + 207, + 207, + 207, + 207, + 207, + 151, + 301, + 301, + 301, + 199, + 394, + 394, + 332, + 332, + 332, + 332, + 354, + 149, + 149, + 149, + 149, + 155, + 155, + 187, + 186, + 268, + 268, + 57, + 24, + 24, + 2, + 2, + 2, + 2, + 2, + 2, + 302, + 302, + 232, + 2, + 2, + 2, + 330, + 330, + 199, + 199, + 330, + 330, + 330, + 339, + 339, + 339, + 339, + 323, + 323, + 114, + 269, + 269, + 238, + 316, + 316, + 331, + 331, + 144, + 144, + 147, + 147, + 183, + 238, + 238, + 238, + 270, + 2, + 45, + 1, + 217, + 217, + 9, + 26, + 379, + 26, + 17, + 371, + 371, + 397, + 342, + 127, + 140, + 140, + 28, + 28, + 210, + 315, + 85, + 85, + 85, + 28, + 50, + 377, + 142, + 165, + 165, + 101, + 293, + 175, + 330, + 175, + 175, + 175, + 227, + 285, + 285, + 92, + 92, + 398, + 398, + 194, + 194, + 194, + 285, + 285, + 285, + 50, + 50, + 21, + 64, + 64, + 64, + 255, + 239, + 339, + 339, + 265, + 265, + 342, + 342, + 192, + 0, + 388, + 388, + 48, + 48, + 48, + 395, + 297, + 48, + 5, + 84, + 84, + 84, + 84, + 84, + 281, + 281, + 384, + 384, + 400, + 363, + 380, + 380, + 380, + 380, + 346, + 346, + 317, + 317, + 182, + 182, + 119, + 132, + 68, + 68, + 68, + 132, + 132, + 200, + 281, + 281, + 215, + 76, + 126, + 172, + 172, + 172, + 188, + 353, + 281, + 281, + 333, + 333, + 282, + 255, + 263, + 263, + 366, + 392, + 392, + 279, + 287, + 342, + 139, + 139, + 323, + 139, + 287, + 255, + 264, + 12, + 12, + 12, + 34, + 235, + 31, + 168, + 371, + 168, + 86, + 168, + 31, + 69, + 388, + 31, + 66, + 66, + 66, + 359, + 359, + 255, + 149, + 66, + 66, + 66, + 327, + 327, + 327, + 123, + 66, + 51, + 310, + 274, + 274, + 274, + 274, + 43, + 43, + 64, + 364, + 181, + 181, + 250, + 64, + 64, + 64, + 64, + 19, + 361, + 361, + 19, + 57, + 56, + 56, + 56, + 34, + 34, + 376, + 357, + 400, + 400, + 212, + 214, + 116, + 116, + 266, + 54, + 165, + 88, + 18, + 92, + 92, + 77, + 77, + 352, + 352, + 352, + 352, + 352, + 193, + 125, + 125, + 344, + 344, + 344, + 93, + 90, + 90, + 365, + 365, + 365, + 388, + 388, + 120, + 215, + 251, + 32, + 362, + 362, + 362, + 362, + 362, + 362, + 395, + 388, + 148, + 244, + 244, + 55, + 74, + 74, + 119, + 330, + 330, + 121, + 204, + 204, + 121, + 121, + 334, + 121, + 121, + 145, + 338, + 338, + 145, + 145, + 145, + 145, + 144, + 144, + 211, + 144, + 130, + 130, + 197, + 217, + 132, + 281, + 232, + 131, + 131, + 131, + 347, + 131, + 108, + 108, + 232, + 232, + 232, + 295, + 244, + 299, + 254, + 76, + 76, + 254, + 71, + 71, + 71, + 71, + 71, + 68, + 204, + 204, + 97, + 315, + 315, + 315, + 315, + 75, + 75, + 322, + 397, + 397, + 183, + 183, + 254, + 254, + 395, + 395, + 395, + 253, + 232, + 26, + 26, + 40, + 39, + 39, + 108, + 108, + 108, + 168, + 168, + 168, + 168, + 286, + 330, + 330, + 39, + 8, + 42, + 249, + 5, + 398, + 398, + 398, + 398, + 166, + 355, + 355, + 355, + 355, + 355, + 355, + 166, + 349, + 349, + 166, + 166, + 166, + 166, + 166, + 182, + 295, + 5, + 65, + 65, + 274, + 217, + 341, + 341, + 341, + 150, + 212, + 212, + 212, + 206, + 201, + 386, + 386, + 336, + 336, + 339, + 339, + 339, + 150, + 150, + 175, + 125, + 125, + 125, + 146, + 325, + 325, + 367, + 367, + 367, + 146, + 146, + 166, + 194, + 194, + 194, + 140, + 140, + 274, + 100, + 274, + 274, + 274, + 274, + 273, + 131, + 273, + 209, + 72, + 67, + 67, + 334, + 334, + 330, + 398, + 340, + 340, + 340, + 340, + 131, + 131, + 111, + 111, + 246, + 242, + 31, + 31, + 194, + 314, + 314, + 194, + 12, + 12, + 23, + 23, + 23, + 73, + 33, + 37, + 372, + 372, + 372, + 315, + 192, + 186, + 140, + 140, + 248, + 248, + 269, + 224, + 366, + 366, + 388, + 365, + 273, + 273, + 145, + 240, + 138, + 354, + 346, + 346, + 167, + 167, + 324, + 324, + 157, + 319, + 319, + 157, + 78, + 157, + 157, + 249, + 268, + 345, + 345, + 345, + 87, + 394, + 394, + 394, + 340, + 316, + 91, + 91, + 363, + 363, + 91, + 91, + 91, + 363, + 361, + 174, + 174, + 179, + 179, + 179, + 179, + 371, + 177, + 152, + 268, + 268, + 247, + 148, + 148, + 247, + 249, + 249, + 210, + 202, + 202, + 249, + 283, + 283, + 283, + 283, + 375, + 263, + 263, + 263, + 40, + 40, + 203, + 49, + 49, + 24, + 0, + 132, + 6, + 274, + 274, + 274, + 274, + 274, + 146, + 146, + 187, + 385, + 144, + 309, + 309, + 309, + 144, + 131, + 131, + 131, + 131, + 274, + 274, + 274, + 96, + 96, + 274, + 212, + 256, + 295, + 295, + 237, + 237, + 237, + 237, + 237, + 76, + 76, + 76, + 76, + 188, + 188, + 142, + 142, + 142, + 382, + 142, + 113, + 308, + 308, + 343, + 237, + 237, + 237, + 237, + 379, + 257, + 257, + 77, + 257, + 149, + 149, + 149, + 149, + 143, + 143, + 143, + 257, + 257, + 257, + 231, + 385, + 385, + 385, + 385, + 385, + 231, + 294, + 294, + 329, + 329, + 119, + 119, + 199, + 199, + 199, + 199, + 355, + 166, + 166, + 224, + 245, + 245, + 245, + 6, + 6, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 213, + 167, + 6, + 24, + 24, + 24, + 24, + 24, + 251, + 323, + 251, + 251, + 24, + 24, + 24, + 24, + 216, + 216, + 216, + 216, + 169, + 169, + 169, + 169, + 169, + 288, + 225, + 16, + 311, + 124, + 265, + 265, + 224, + 392, + 314, + 314, + 310, + 310, + 310, + 310, + 310, + 310, + 310, + 139, + 199, + 199, + 385, + 199, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 364, + 364, + 400, + 216, + 30, + 380, + 30, + 30, + 30, + 193, + 356, + 193, + 193, + 193, + 30, + 60, + 25, + 25, + 358, + 25, + 25, + 38, + 38, + 38, + 34, + 0, + 312, + 312, + 312, + 59, + 59, + 66, + 367, + 319, + 221, + 242, + 307, + 346, + 242, + 242, + 229, + 229, + 278, + 278, + 261, + 263, + 263, + 79, + 113, + 72, + 72, + 72, + 99, + 317, + 317, + 317, + 317, + 317, + 144, + 144, + 216, + 216, + 155, + 155, + 155, + 155, + 166, + 166, + 263, + 263, + 254, + 280, + 280, + 329, + 329, + 329, + 329, + 280, + 280, + 178, + 178, + 178, + 256, + 331, + 331, + 331, + 260, + 316, + 277, + 277, + 232, + 243, + 319, + 243, + 243, + 364, + 364, + 55, + 55, + 25, + 360, + 227, + 25, + 25, + 48, + 60, + 60, + 60, + 60, + 92, + 92, + 14, + 148, + 148, + 214, + 333, + 148, + 148, + 148, + 266, + 266, + 202, + 336, + 393, + 393, + 393, + 5, + 385, + 389, + 76, + 76, + 76, + 76, + 384, + 384, + 307, + 307, + 307, + 384, + 120, + 125, + 125, + 125, + 125, + 125, + 83, + 160, + 160, + 259, + 266, + 266, + 352, + 24, + 349, + 24, + 26, + 379, + 379, + 194, + 182, + 26, + 58, + 58, + 72, + 202, + 72, + 333, + 304, + 304, + 304, + 304, + 304, + 304, + 304, + 316, + 316, + 316, + 400, + 201, + 201, + 150, + 116, + 116, + 116, + 116, + 376, + 376, + 376, + 376, + 376, + 341, + 302, + 373, + 111, + 111, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 193, + 193, + 254, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 247, + 286, + 286, + 296, + 296, + 296, + 296, + 58, + 178, + 178, + 58, + 58, + 58, + 45, + 56, + 169, + 169, + 372, + 169, + 267, + 267, + 267, + 36, + 36, + 60, + 136, + 136, + 136, + 262, + 60, + 291, + 291, + 291, + 198, + 291, + 284, + 284, + 284, + 216, + 114, + 100, + 266, + 266, + 200, + 200, + 141, + 372, + 372, + 309, + 309, + 309, + 82, + 369, + 369, + 369, + 139, + 114, + 266, + 222, + 222, + 245, + 383, + 73, + 245, + 246, + 246, + 60, + 60, + 60, + 18, + 18, + 18, + 193, + 18, + 51, + 22, + 282, + 169, + 169, + 200, + 193, + 268, + 370, + 283, + 22, + 23, + 23, + 377, + 377, + 377, + 23, + 23, + 44, + 44, + 15, + 312, + 15, + 17, + 33, + 21, + 397, + 397, + 21, + 392, + 392, + 29, + 29, + 29, + 344, + 344, + 46, + 15, + 15, + 15, + 22, + 396, + 396, + 246, + 22, + 104, + 201, + 162, + 162, + 162, + 259, + 171, + 259, + 275, + 323, + 275, + 161, + 89, + 374, + 319, + 212, + 212, + 212, + 99, + 319, + 339, + 339, + 339, + 339, + 161, + 190, + 131, + 275, + 275, + 275, + 275, + 275, + 275, + 275, + 222, + 222, + 372, + 169, + 169, + 98, + 169, + 169, + 153, + 301, + 301, + 131, + 131, + 158, + 158, + 222, + 251, + 251, + 251, + 251, + 254, + 254, + 340, + 340, + 137, + 137, + 137, + 137, + 283, + 283, + 276, + 279, + 281, + 354, + 354, + 281, + 157, + 298, + 391, + 249, + 237, + 289, + 289, + 344, + 159, + 159, + 159, + 159, + 181, + 181, + 181, + 181, + 228, + 225, + 225, + 225, + 225, + 359, + 359, + 62, + 326, + 326, + 62, + 325, + 83, + 325, + 325, + 100, + 319, + 319, + 62, + 22, + 234, + 234, + 181, + 181, + 181, + 239, + 15, + 142, + 142, + 142, + 142, + 142, + 19, + 19, + 345, + 345, + 19, + 49, + 215, + 215, + 49, + 49, + 396, + 42, + 13, + 13, + 38, + 141, + 141, + 13, + 28, + 28, + 227, + 17, + 17, + 23, + 53, + 19, + 19, + 0, + 272, + 297, + 297, + 297, + 64, + 64, + 64, + 153, + 382, + 81, + 117, + 117, + 117, + 117, + 117, + 117, + 17, + 6, + 6, + 285, + 285, + 329, + 319, + 252, + 367, + 367, + 250, + 250, + 250, + 40, + 40, + 56, + 278, + 194, + 128, + 101, + 101, + 101, + 220, + 101, + 278, + 220, + 220, + 220, + 71, + 71, + 361, + 361, + 234, + 260, + 4, + 9, + 9, + 55, + 55, + 55, + 55, + 55, + 354, + 24, + 24, + 24, + 204, + 217, + 267, + 181, + 267, + 267, + 24, + 24, + 93, + 93, + 93, + 93, + 107, + 107, + 133, + 133, + 133, + 203, + 203, + 203, + 203, + 203, + 203, + 203, + 154, + 154, + 154, + 85, + 85, + 85, + 85, + 318, + 318, + 357, + 92, + 92, + 357, + 154, + 169, + 169, + 194, + 127, + 352, + 127, + 94, + 94, + 127, + 163, + 294, + 278, + 278, + 278, + 230, + 230, + 270, + 282, + 73, + 282, + 188, + 188, + 282, + 217, + 217, + 217, + 282, + 253, + 30, + 30, + 334, + 125, + 125, + 29, + 206, + 206, + 206, + 111, + 111, + 163, + 163, + 145, + 189, + 237, + 237, + 15, + 15, + 331, + 331, + 9, + 78, + 78, + 339, + 339, + 111, + 111, + 235, + 235, + 235, + 324, + 235, + 254, + 5, + 57, + 57, + 38, + 38, + 239, + 38, + 22, + 55, + 315, + 315, + 315, + 365, + 161, + 161, + 161, + 55, + 90, + 90, + 46, + 154, + 154, + 274, + 2, + 2, + 291, + 186, + 119, + 119, + 119, + 291, + 2, + 336, + 340, + 340, + 88, + 102, + 116, + 116, + 116, + 116, + 159, + 159, + 94, + 350, + 350, + 350, + 95, + 95, + 376, + 159, + 323, + 308, + 159, + 147, + 70, + 70, + 112, + 138, + 127, + 238, + 262, + 262, + 260, + 151, + 320, + 260, + 352, + 352, + 213, + 213, + 367, + 319, + 260, + 286, + 286, + 286, + 221, + 241, + 297, + 297, + 297, + 297, + 297, + 297, + 284, + 284, + 304, + 304, + 332, + 332, + 247, + 247, + 247, + 372, + 163, + 163, + 163, + 163, + 163, + 163, + 171, + 171, + 171, + 188, + 224, + 224, + 224, + 224, + 246, + 110, + 296, + 395, + 395, + 395, + 395, + 395, + 296, + 296, + 257, + 31, + 49, + 8, + 23, + 34, + 34, + 24, + 181, + 49, + 49, + 49, + 49, + 23, + 318, + 318, + 23, + 125, + 270, + 385, + 333, + 333, + 333, + 165, + 165, + 165, + 145, + 112, + 174, + 174, + 174, + 174, + 148, + 249, + 249, + 86, + 110, + 110, + 110, + 110, + 111, + 249, + 38, + 90, + 373, + 134, + 258, + 258, + 171, + 179, + 179, + 179, + 179, + 326, + 179, + 243, + 296, + 177, + 77, + 324, + 324, + 324, + 378, + 376, + 81, + 95, + 376, + 376, + 100, + 100, + 100, + 100, + 100, + 177, + 187, + 187, + 80, + 149, + 296, + 296, + 262, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 376, + 341, + 341, + 341, + 342, + 342, + 342, + 322, + 150, + 150, + 150, + 150, + 150, + 137, + 121, + 172, + 325, + 325, + 190, + 360, + 360, + 190, + 297, + 297, + 219, + 219, + 297, + 101, + 253, + 3, + 215, + 68, + 68, + 212, + 212, + 212, + 68, + 68, + 127, + 383, + 383, + 383, + 326, + 128, + 137, + 137, + 356, + 70, + 370, + 370, + 137, + 137, + 137, + 137, + 137, + 193, + 193, + 193, + 193, + 193, + 193, + 130, + 111, + 198, + 108, + 221, + 257, + 257, + 213, + 213, + 257, + 288, + 236, + 3, + 3, + 3, + 1, + 37, + 208, + 208, + 107, + 276, + 276, + 276, + 37, + 314, + 389, + 239, + 239, + 270, + 37, + 389, + 389, + 389, + 370, + 370, + 370, + 370, + 370, + 90, + 90, + 90, + 94, + 97, + 97, + 119, + 105, + 105, + 61, + 208, + 7, + 374, + 374, + 33, + 33, + 33, + 60, + 54, + 374, + 374, + 54, + 54, + 387, + 318, + 318, + 318, + 318, + 318, + 373, + 373, + 323, + 385, + 385, + 385, + 385, + 189, + 189, + 189, + 189, + 72, + 189, + 191, + 191, + 191, + 191, + 133, + 161, + 161, + 161, + 161, + 241, + 250, + 143, + 250, + 242, + 229, + 229, + 271, + 335, + 335, + 271, + 296, + 54, + 54, + 258, + 33, + 33, + 56, + 56, + 25, + 14, + 14, + 51, + 51, + 51, + 211, + 211, + 211, + 211, + 211, + 58, + 153, + 153, + 209, + 153, + 153, + 361, + 361, + 153, + 163, + 67, + 164, + 38, + 38, + 38, + 396, + 38, + 38, + 30, + 154, + 30, + 47, + 2, + 313, + 227, + 227, + 169, + 169, + 169, + 169, + 330, + 330, + 79, + 347, + 319, + 169, + 169, + 169, + 164, + 163, + 163, + 163, + 163, + 107, + 130, + 107, + 271, + 271, + 271, + 271, + 285, + 397, + 108, + 108, + 108, + 108, + 108, + 108, + 285, + 285, + 204, + 204, + 285, + 300, + 299, + 288, + 222, + 327, + 35, + 336, + 323, + 323, + 323, + 323, + 129, + 192, + 371, + 154, + 144, + 144, + 262, + 244, + 244, + 283, + 115, + 115, + 283, + 334, + 224, + 257, + 213, + 213, + 301, + 175, + 175, + 84, + 171, + 171, + 171, + 117, + 117, + 181, + 181, + 257, + 276, + 276, + 276, + 290, + 233, + 363, + 51, + 51, + 380, + 380, + 336, + 336, + 149, + 195, + 121, + 190, + 190, + 133, + 295, + 88, + 51, + 34, + 35, + 48, + 48, + 48, + 48, + 186, + 367, + 367, + 100, + 100, + 363, + 363, + 124, + 356, + 125, + 152, + 44, + 44, + 44, + 386, + 346, + 346, + 306, + 71, + 71, + 306, + 306, + 268, + 268, + 195, + 195, + 384, + 195, + 195, + 195, + 195, + 83, + 222, + 222, + 298, + 217, + 217, + 217, + 282, + 366, + 282, + 282, + 282, + 38, + 203, + 203, + 203, + 219, + 219, + 379, + 128, + 243, + 269, + 39, + 23, + 23, + 46, + 15, + 278, + 144, + 218, + 304, + 304, + 375, + 144, + 144, + 271, + 57, + 57, + 16, + 42, + 397, + 327, + 318, + 68, + 318, + 377, + 129, + 129, + 129, + 129, + 129, + 196, + 196, + 196, + 130, + 244, + 25, + 283, + 25, + 201, + 201, + 201, + 201, + 201, + 201, + 364, + 264, + 264, + 25, + 234, + 34, + 207, + 207, + 30, + 123, + 123, + 123, + 26, + 26, + 338, + 19, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 68, + 68, + 68, + 68, + 18, + 376, + 284, + 245, + 266, + 266, + 18, + 304, + 199, + 78, + 78, + 78, + 78, + 19, + 19, + 19, + 203, + 203, + 203, + 303, + 301, + 207, + 301, + 301, + 353, + 318, + 318, + 153, + 153, + 153, + 153, + 153, + 102, + 307, + 102, + 180, + 180, + 373, + 180, + 180, + 119, + 121, + 121, + 121, + 121, + 153, + 191, + 183, + 182, + 197, + 177, + 369, + 369, + 177, + 177, + 177, + 238, + 287, + 240, + 298, + 15, + 15, + 32, + 32, + 32, + 73, + 73, + 73, + 73, + 73, + 103, + 189, + 183, + 80, + 316, + 316, + 285, + 285, + 344, + 344, + 344, + 344, + 344, + 344, + 110, + 351, + 110, + 110, + 156, + 228, + 276, + 276, + 276, + 276, + 276, + 260, + 260, + 252, + 107, + 32, + 61, + 61, + 61, + 1, + 32, + 65, + 386, + 386, + 99, + 381, + 77, + 77, + 77, + 77, + 77, + 77, + 291, + 291, + 116, + 291, + 291, + 284, + 284, + 54, + 194, + 300, + 300, + 194, + 54, + 392, + 34, + 96, + 96, + 307, + 307, + 307, + 161, + 34, + 79, + 92, + 155, + 326, + 326, + 171, + 171, + 290, + 63, + 306, + 97, + 97, + 97, + 306, + 306, + 306, + 159, + 159, + 262, + 80, + 230, + 230, + 269, + 358, + 358, + 25, + 25, + 266, + 32, + 23, + 60, + 60, + 19, + 19, + 19, + 19, + 19, + 46, + 366, + 338, + 338, + 312, + 368, + 368, + 368, + 368, + 368, + 367, + 367, + 367, + 391, + 73, + 391, + 77, + 77, + 77, + 77, + 77, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 207, + 124, + 123, + 123, + 123, + 123, + 123, + 201, + 123, + 123, + 387, + 387, + 344, + 344, + 177, + 210, + 210, + 210, + 210, + 210, + 210, + 210, + 210, + 102, + 278, + 225, + 225, + 47, + 32, + 7, + 22, + 30, + 399, + 399, + 0, + 140, + 140, + 140, + 0, + 243, + 77, + 77, + 77, + 77, + 77, + 77, + 77, + 84, + 243, + 387, + 363, + 143, + 143, + 143, + 128, + 128, + 234, + 79, + 79, + 233, + 38, + 188, + 188, + 188, + 14, + 118, + 203, + 203, + 310, + 118, + 196, + 222, + 14, + 361, + 14, + 14, + 14, + 14, + 84, + 84, + 84, + 84, + 314, + 164, + 391, + 391, + 391, + 391, + 391, + 385, + 164, + 164, + 127, + 82, + 346, + 346, + 127, + 127, + 179, + 179, + 179, + 165, + 14, + 97, + 97, + 97, + 363, + 99, + 99, + 99, + 99, + 99, + 75, + 75, + 98, + 363, + 363, + 314, + 314, + 314, + 399, + 399, + 172, + 281, + 281, + 321, + 321, + 98, + 373, + 373, + 324, + 382, + 123, + 308, + 308, + 168, + 93, + 93, + 93, + 93, + 292, + 292, + 192, + 292, + 292, + 292, + 289, + 236, + 221, + 224, + 298, + 293, + 261, + 261, + 22, + 169, + 22, + 22, + 49, + 49, + 309, + 309, + 309, + 49, + 54, + 54, + 285, + 356, + 314, + 389, + 236, + 236, + 236, + 282, + 54, + 54, + 54, + 47, + 59, + 38, + 38, + 357, + 26, + 26, + 7, + 15, + 24, + 0, + 0, + 22, + 22, + 165, + 165, + 74, + 82, + 82, + 82, + 82, + 85, + 34, + 34, + 286, + 134, + 47, + 320, + 388, + 230, + 230, + 383, + 207, + 207, + 207, + 207, + 393, + 384, + 319, + 300, + 22, + 62, + 62, + 62, + 25, + 267, + 267, + 267, + 25, + 296, + 296, + 25, + 25, + 353, + 25, + 395, + 53, + 206, + 206, + 206, + 316, + 316, + 343, + 343, + 343, + 130, + 109, + 224, + 270, + 270, + 270, + 270, + 270, + 238, + 238, + 334, + 334, + 257, + 96, + 257, + 8, + 169, + 195, + 348, + 195, + 195, + 223, + 8, + 37, + 37, + 37, + 43, + 43, + 32, + 354, + 354, + 354, + 354, + 354, + 397, + 207, + 207, + 207, + 207, + 209, + 209, + 209, + 209, + 397, + 391, + 391, + 391, + 306, + 126, + 126, + 155, + 155, + 186, + 203, + 130, + 240, + 240, + 240, + 230, + 258, + 367, + 258, + 161, + 161, + 189, + 104, + 370, + 370, + 303, + 303, + 104, + 232, + 257, + 231, + 178, + 178, + 231, + 231, + 231, + 231, + 250, + 211, + 211, + 291, + 32, + 32, + 32, + 56, + 56, + 56, + 386, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 355, + 375, + 375, + 56, + 61, + 14, + 14, + 14, + 14, + 14, + 14, + 214, + 214, + 214, + 214, + 392, + 392, + 392, + 194, + 391, + 152, + 152, + 254, + 254, + 265, + 265, + 265, + 62, + 50, + 50, + 50, + 230, + 95, + 95, + 95, + 69, + 69, + 121, + 121, + 121, + 197, + 230, + 229, + 187, + 187, + 187, + 229, + 229, + 199, + 229, + 229, + 229, + 292, + 292, + 292, + 157, + 157, + 292, + 66, + 66, + 55, + 346, + 55, + 55, + 38, + 116, + 116, + 116, + 116, + 394, + 316, + 316, + 116, + 116, + 180, + 180, + 194, + 7, + 63, + 36, + 36, + 65, + 348, + 348, + 348, + 27, + 378, + 378, + 378, + 343, + 185, + 382, + 185, + 93, + 211, + 295, + 295, + 295, + 295, + 363, + 363, + 295, + 369, + 76, + 6, + 367, + 227, + 227, + 102, + 163, + 393, + 393, + 163, + 163, + 256, + 256, + 21, + 68, + 68, + 48, + 48, + 48, + 40, + 40, + 40, + 7, + 7, + 7, + 183, + 183, + 93, + 93, + 93, + 183, + 156, + 192, + 192, + 391, + 391, + 391, + 347, + 114, + 130, + 261, + 294, + 294, + 294, + 294, + 256, + 286, + 298, + 87, + 87, + 87, + 165, + 267, + 267, + 267, + 35, + 35, + 35, + 353, + 353, + 157, + 157, + 157, + 157, + 157, + 194, + 194, + 295, + 273, + 348, + 348, + 348, + 348, + 84, + 84, + 84, + 348, + 348, + 348, + 144, + 144, + 273, + 84, + 84, + 84, + 71, + 198, + 245, + 277, + 277, + 284, + 81, + 81, + 81, + 384, + 192, + 150, + 150, + 150, + 150, + 109, + 175, + 284, + 328, + 328, + 284, + 252, + 213, + 213, + 213, + 213, + 336, + 127, + 324, + 324, + 257, + 397, + 397, + 397, + 257, + 286, + 286, + 286, + 259, + 259, + 259, + 223, + 223, + 35, + 208, + 2, + 50, + 131, + 131, + 131, + 336, + 336, + 131, + 131, + 273, + 32, + 32, + 48, + 0, + 138, + 138, + 138, + 138, + 7, + 7, + 7, + 7, + 7, + 82, + 82, + 351, + 351, + 351, + 351, + 351, + 351, + 201, + 351, + 351, + 374, + 152, + 152, + 175, + 175, + 350, + 97, + 350, + 7, + 14, + 14, + 204, + 204, + 218, + 218, + 223, + 223, + 223, + 223, + 51, + 57, + 9, + 393, + 393, + 23, + 23, + 23, + 23, + 43, + 64, + 47, + 160, + 8, + 361, + 304, + 344, + 344, + 305, + 360, + 178, + 310, + 310, + 310, + 310, + 133, + 300, + 244, + 227, + 296, + 368, + 74, + 74, + 296, + 310, + 296, + 211, + 246, + 231, + 231, + 246, + 254, + 0, + 0, + 289, + 173, + 173, + 105, + 105, + 356, + 356, + 356, + 356, + 105, + 153, + 153, + 258, + 362, + 362, + 246, + 81, + 81, + 81, + 204, + 204, + 81, + 81, + 256, + 256, + 256, + 248, + 248, + 248, + 248, + 248, + 228, + 228, + 359, + 242, + 242, + 2, + 58, + 223, + 386, + 126, + 322, + 322, + 126, + 126, + 126, + 126, + 126, + 126, + 187, + 187, + 346, + 346, + 187, + 288, + 288, + 288, + 288, + 62, + 128, + 182, + 182, + 182, + 182, + 161, + 243, + 9, + 378, + 378, + 378, + 332, + 332, + 125, + 205, + 384, + 277, + 303, + 303, + 303, + 303, + 170, + 130, + 166, + 166, + 166, + 166, + 166, + 109, + 147, + 147, + 86, + 277, + 277, + 294, + 287, + 287, + 386, + 287, + 11, + 11, + 58, + 302, + 137, + 208, + 208, + 208, + 208, + 141, + 185, + 238, + 238, + 395, + 395, + 395, + 395, + 375, + 376, + 373, + 180, + 180, + 341, + 341, + 341, + 333, + 333, + 175, + 106, + 263, + 132, + 132, + 132, + 132, + 132, + 132, + 58, + 216, + 216, + 125, + 125, + 125, + 193, + 193, + 193, + 156, + 156, + 274, + 341, + 341, + 341, + 341, + 72, + 72, + 72, + 72, + 72, + 348, + 348, + 348, + 348, + 103, + 103, + 163, + 325, + 274, + 245, + 141, + 141, + 384, + 279, + 279, + 0, + 0, + 16, + 16, + 20, + 20, + 22, + 41, + 57, + 252, + 149, + 149, + 76, + 149, + 149, + 253, + 246, + 252, + 373, + 373, + 192, + 57, + 44, + 47, + 206, + 206, + 47, + 47, + 47, + 149, + 76, + 76, + 76, + 76, + 370, + 138, + 157, + 157, + 157, + 157, + 368, + 368, + 330, + 157, + 157, + 157, + 157, + 159, + 375, + 375, + 375, + 159, + 159, + 159, + 156, + 260, + 292, + 227, + 266, + 297, + 297, + 47, + 47, + 216, + 216, + 201, + 201, + 358, + 358, + 400, + 400, + 400, + 260, + 260, + 260, + 260, + 47, + 140, + 47, + 47, + 14, + 14, + 14, + 0, + 27, + 27, + 81, + 81, + 14, + 215, + 28, + 59, + 10, + 10, + 352, + 8, + 353, + 8, + 7, + 108, + 7, + 7, + 0, + 9, + 161, + 161, + 36, + 308, + 308, + 390, + 136, + 136, + 136, + 200, + 155, + 155, + 389, + 389, + 389, + 131, + 224, + 226, + 335, + 261, + 12, + 207, + 215, + 6, + 352, + 154, + 38, + 359, + 38, + 38, + 98, + 98, + 98, + 38, + 38, + 38, + 188, + 139, + 289, + 82, + 82, + 82, + 382, + 382, + 381, + 381, + 397, + 397, + 213, + 213, + 213, + 75, + 77, + 77, + 352, + 352, + 199, + 199, + 174, + 174, + 174, + 130, + 130, + 130, + 156, + 124, + 124, + 124, + 124, + 145, + 135, + 141, + 141, + 141, + 289, + 289, + 289, + 125, + 125, + 125, + 247, + 253, + 131, + 253, + 253, + 338, + 123, + 123, + 145, + 125, + 228, + 83, + 83, + 395, + 380, + 142, + 109, + 109, + 109, + 134, + 134, + 134, + 134, + 180, + 86, + 86, + 244, + 244, + 273, + 16, + 16, + 82, + 16, + 16, + 52, + 52, + 33, + 14, + 49, + 49, + 49, + 400, + 400, + 400, + 400, + 400, + 142, + 234, + 234, + 157, + 384, + 384, + 282, + 282, + 282, + 282, + 297, + 297, + 244, + 244, + 244, + 244, + 244, + 381, + 271, + 279, + 279, + 42, + 163, + 42, + 49, + 168, + 380, + 343, + 168, + 168, + 168, + 168, + 135, + 135, + 233, + 246, + 246, + 234, + 232, + 232, + 165, + 250, + 22, + 22, + 15, + 51, + 115, + 115, + 203, + 203, + 115, + 115, + 318, + 318, + 318, + 318, + 165, + 247, + 247, + 276, + 276, + 286, + 91, + 141, + 262, + 272, + 235, + 357, + 357, + 32, + 32, + 22, + 22, + 22, + 79, + 103, + 234, + 234, + 144, + 144, + 144, + 144, + 144, + 180, + 180, + 204, + 114, + 114, + 114, + 114, + 114, + 277, + 68, + 144, + 144, + 22, + 226, + 226, + 46, + 121, + 46, + 46, + 196, + 196, + 196, + 108, + 108, + 333, + 333, + 333, + 333, + 114, + 271, + 271, + 283, + 65, + 65, + 43, + 43, + 21, + 99, + 99, + 368, + 208, + 368, + 354, + 354, + 102, + 162, + 323, + 360, + 360, + 360, + 360, + 360, + 187, + 341, + 341, + 341, + 390, + 400, + 187, + 187, + 218, + 218, + 218, + 218, + 218, + 312, + 312, + 317, + 320, + 320, + 187, + 145, + 145, + 151, + 186, + 258, + 258, + 250, + 375, + 21, + 21, + 21, + 21, + 200, + 66, + 66, + 49, + 49, + 49, + 49, + 49, + 30, + 154, + 109, + 348, + 348, + 109, + 242, + 7, + 200, + 7, + 203, + 203, + 203, + 303, + 303, + 303, + 358, + 312, + 364, + 376, + 146, + 343, + 343, + 343, + 343, + 343, + 318, + 146, + 397, + 397, + 397, + 182, + 182, + 242, + 400, + 400, + 400, + 102, + 257, + 257, + 257, + 7, + 7, + 7, + 7, + 2, + 65, + 65, + 38, + 299, + 299, + 337, + 337, + 337, + 339, + 339, + 274, + 262, + 86, + 223, + 223, + 84, + 223, + 51, + 61, + 32, + 23, + 30, + 261, + 261, + 58, + 58, + 79, + 79, + 79, + 79, + 191, + 241, + 241, + 241, + 246, + 246, + 365, + 365, + 58, + 58, + 292, + 66, + 66, + 66, + 302, + 305, + 305, + 305, + 302, + 302, + 88, + 88, + 88, + 161, + 5, + 5, + 5, + 5, + 5, + 5, + 350, + 350, + 331, + 331, + 69, + 69, + 69, + 73, + 90, + 314, + 314, + 314, + 380, + 380, + 380, + 380, + 192, + 192, + 192, + 385, + 192, + 192, + 197, + 163, + 163, + 247, + 151, + 247, + 204, + 204, + 204, + 204, + 204, + 204, + 204, + 81, + 341, + 341, + 125, + 125, + 247, + 125, + 221, + 221, + 257, + 278, + 278, + 278, + 36, + 96, + 239, + 239, + 291, + 291, + 15, + 3, + 122, + 122, + 122, + 209, + 209, + 209, + 213, + 365, + 122, + 134, + 174, + 174, + 147, + 253, + 163, + 163, + 163, + 253, + 253, + 253, + 369, + 253, + 253, + 253, + 290, + 290, + 262, + 244, + 60, + 15, + 15, + 149, + 136, + 179, + 26, + 297, + 26, + 42, + 5, + 5, + 223, + 176, + 176, + 176, + 176, + 176, + 176, + 176, + 213, + 80, + 80, + 395, + 65, + 65, + 264, + 17, + 158, + 61, + 61, + 58, + 58, + 150, + 379, + 150, + 150, + 150, + 58, + 140, + 58, + 62, + 289, + 111, + 111, + 373, + 111, + 154, + 62, + 12, + 302, + 302, + 62, + 23, + 1, + 1, + 47, + 90, + 90, + 90, + 218, + 90, + 308, + 308, + 308, + 308, + 308, + 233, + 233, + 272, + 272, + 293, + 290, + 290, + 110, + 57, + 137, + 393, + 352, + 352, + 352, + 352, + 350, + 350, + 350, + 350, + 191, + 89, + 191, + 154, + 154, + 320, + 195, + 195, + 195, + 195, + 195, + 71, + 71, + 195, + 195, + 227, + 227, + 170, + 200, + 200, + 200, + 227, + 227, + 227, + 239, + 28, + 315, + 315, + 315, + 28, + 28, + 28, + 28, + 311, + 311, + 311, + 81, + 81, + 81, + 81, + 311, + 311, + 311, + 321, + 302, + 373, + 180, + 138, + 104, + 104, + 104, + 104, + 104, + 111, + 111, + 111, + 125, + 155, + 155, + 103, + 99, + 99, + 99, + 103, + 399, + 399, + 327, + 84, + 84, + 80, + 80, + 86, + 330, + 330, + 330, + 330, + 342, + 103, + 103, + 103, + 103, + 194, + 199, + 199, + 199, + 264, + 264, + 266, + 266, + 226, + 353, + 117, + 117, + 117, + 117, + 117, + 117, + 226, + 270, + 253, + 154, + 154, + 154, + 154, + 253, + 312, + 227, + 256, + 256, + 295, + 282, + 259, + 247, + 55, + 384, + 384, + 350, + 350, + 378, + 378, + 378, + 146, + 274, + 245, + 245, + 245, + 245, + 245, + 55, + 55, + 10, + 10, + 10, + 352, + 352, + 10, + 10, + 10, + 77, + 215, + 15, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "commands": [ + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 2, + 2, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 2, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 0, + 2, + 2, + 0, + 1, + 2, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 1, + 0, + 2, + 2, + 2, + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 0, + 2, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 0, + 2, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2, + 2, + 2, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 2, + 0, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 1, + 0, + 2, + 1, + 0, + 1, + 0, + 1, + 0, + 2, + 0, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 1, + 2, + 2, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 2, + 2, + 1, + 1, + 2, + 2, + 0, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 2, + 1, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 2, + 1, + 2, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 2, + 1, + 2, + 2, + 1, + 1, + 2, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 0, + 1, + 0, + 2, + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 0, + 1, + 2, + 2, + 1, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 0, + 1, + 2, + 2, + 2, + 1, + 0, + 2, + 2, + 0, + 2, + 1, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 0, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 1, + 2, + 1, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 2, + 1, + 2, + 0, + 1, + 2, + 2, + 2, + 2, + 0, + 1, + 1, + 2, + 0, + 0, + 2, + 0, + 2, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "values": [ + 275, + 292, + 243, + 137, + 121, + 330, + 329, + 203, + 190, + 306, + 312, + 310, + 160, + 38, + 109, + 181, + 200, + 163, + 196, + 291, + 103, + 256, + 134, + 82, + 268, + 39, + 310, + 78, + 115, + 248, + 254, + 94, + 99, + 354, + 380, + 175, + 72, + 221, + 294, + 377, + 398, + 282, + 207, + 305, + 189, + 209, + 144, + 307, + 262, + 130, + 111, + 182, + 80, + 118, + 398, + 76, + 263, + 297, + 364, + 330, + 310, + 123, + 275, + 12, + 228, + 363, + 388, + 304, + 40, + 106, + 242, + 243, + 283, + 210, + 376, + 208, + 129, + 299, + 294, + 51, + 213, + 126, + 325, + 186, + 157, + 154, + 392, + 243, + 388, + 148, + 203, + 287, + 151, + 198, + 14, + 176, + 324, + 283, + 286, + 321, + 373, + 61, + 262, + 178, + 335, + 75, + 337, + 125, + 388, + 95, + 254, + 5, + 249, + 306, + 296, + 385, + 108, + 270, + 345, + 180, + 270, + 150, + 145, + 205, + 77, + 254, + 135, + 265, + 309, + 171, + 58, + 146, + 83, + 213, + 20, + 389, + 368, + 79, + 211, + 125, + 341, + 140, + 392, + 295, + 212, + 362, + 181, + 133, + 215, + 214, + 251, + 264, + 238, + 318, + 130, + 102, + 274, + 221, + 65, + 397, + 30, + 216, + 38, + 378, + 296, + 355, + 334, + 306, + 80, + 35, + 221, + 15, + 13, + 106, + 391, + 197, + 342, + 68, + 109, + 0, + 59, + 200, + 361, + 244, + 168, + 240, + 174, + 5, + 231, + 269, + 190, + 369, + 108, + 332, + 214, + 30, + 336, + 352, + 11, + 291, + 241, + 151, + 106, + 23, + 21, + 362, + 191, + 181, + 312, + 98, + 400, + 174, + 188, + 281, + 12, + 300, + 352, + 131, + 315, + 167, + 254, + 216, + 233, + 180, + 198, + 314, + 238, + 291, + 134, + 366, + 238, + 162, + 116, + 239, + 82, + 217, + 184, + 3, + 253, + 400, + 49, + 330, + 293, + 177, + 186, + 55, + 182, + 69, + 110, + 36, + 11, + 111, + 97, + 253, + 114, + 326, + 383, + 129, + 195, + 372, + 385, + 101, + 235, + 298, + 119, + 183, + 148, + 378, + 219, + 142, + 371, + 185, + 60, + 21, + 240, + 299, + 397, + 237, + 251, + 153, + 39, + 325, + 164, + 298, + 134, + 179, + 323, + 270, + 150, + 82, + 188, + 126, + 251, + 342, + 391, + 90, + 292, + 338, + 78, + 57, + 325, + 240, + 82, + 103, + 362, + 69, + 4, + 267, + 264, + 373, + 313, + 109, + 23, + 21, + 219, + 341, + 250, + 30, + 68, + 129, + 90, + 172, + 31, + 109, + 283, + 342, + 119, + 66, + 305, + 9, + 261, + 98, + 318, + 215, + 237, + 353, + 90, + 332, + 303, + 203, + 74, + 212, + 321, + 394, + 2, + 343, + 290, + 21, + 312, + 84, + 120, + 136, + 119, + 51, + 0, + 314, + 183, + 324, + 76, + 180, + 338, + 151, + 103, + 366, + 304, + 187, + 276, + 308, + 356, + 96, + 116, + 354, + 209, + 213, + 193, + 17, + 47, + 241, + 30, + 210, + 346, + 208, + 26, + 283, + 306, + 89, + 20, + 353, + 315, + 164, + 146, + 264, + 15, + 160, + 107, + 348, + 44, + 8, + 276, + 63, + 69, + 11, + 217, + 63, + 161, + 360, + 106, + 307, + 121, + 103, + 345, + 220, + 246, + 168, + 135, + 330, + 79, + 110, + 176, + 75, + 209, + 113, + 129, + 269, + 121, + 170, + 23, + 374, + 208, + 310, + 18, + 99, + 290, + 213, + 370, + 133, + 297, + 161, + 281, + 183, + 150, + 109, + 120, + 346, + 278, + 111, + 298, + 91, + 131, + 219, + 186, + 100, + 169, + 325, + 81, + 136, + 191, + 152, + 388, + 378, + 8, + 30, + 324, + 278, + 310, + 332, + 86, + 129, + 98, + 239, + 369, + 209, + 104, + 262, + 382, + 173, + 400, + 131, + 310, + 255, + 176, + 302, + 95, + 360, + 162, + 398, + 303, + 196, + 156, + 391, + 83, + 364, + 400, + 63, + 160, + 381, + 257, + 193, + 72, + 255, + 262, + 294, + 362, + 86, + 262, + 261, + 137, + 219, + 300, + 128, + 363, + 6, + 48, + 8, + 103, + 120, + 234, + 121, + 339, + 17, + 177, + 359, + 256, + 301, + 351, + 223, + 203, + 278, + 126, + 316, + 150, + 400, + 125, + 283, + 199, + 43, + 223, + 22, + 180, + 238, + 334, + 222, + 175, + 157, + 18, + 228, + 37, + 332, + 45, + 199, + 380, + 68, + 220, + 49, + 314, + 386, + 63, + 281, + 269, + 301, + 266, + 306, + 290, + 180, + 398, + 224, + 270, + 312, + 78, + 237, + 323, + 103, + 121, + 248, + 386, + 54, + 41, + 397, + 74, + 299, + 49, + 252, + 332, + 240, + 162, + 154, + 98, + 241, + 149, + 346, + 296, + 1, + 269, + 15, + 182, + 148, + 218, + 152, + 0, + 87, + 165, + 249, + 244, + 219, + 7, + 195, + 275, + 299, + 214, + 232, + 140, + 400, + 144, + 144, + 387, + 227, + 195, + 228, + 254, + 368, + 154, + 380, + 101, + 152, + 319, + 147, + 12, + 251, + 45, + 388, + 128, + 255, + 220, + 250, + 45, + 372, + 400, + 367, + 198, + 233, + 111, + 134, + 141, + 286, + 28, + 201, + 185, + 8, + 55, + 191, + 40, + 289, + 149, + 41, + 67, + 337, + 190, + 53, + 204, + 286, + 42, + 29, + 388, + 349, + 201, + 280, + 392, + 106, + 310, + 6, + 101, + 296, + 294, + 355, + 36, + 347, + 141, + 277, + 317, + 166, + 108, + 5, + 51, + 3, + 205, + 249, + 334, + 238, + 284, + 154, + 270, + 105, + 143, + 291, + 332, + 237, + 220, + 252, + 40, + 141, + 378, + 182, + 166, + 335, + 44, + 397, + 397, + 218, + 357, + 24, + 318, + 244, + 269, + 10, + 152, + 127, + 17, + 101, + 344, + 191, + 387, + 240, + 178, + 83, + 121, + 165, + 172, + 256, + 374, + 30, + 376, + 164, + 390, + 376, + 174, + 113, + 102, + 259, + 362, + 256, + 306, + 113, + 62, + 32, + 234, + 63, + 263, + 374, + 137, + 69, + 192, + 257, + 374, + 140, + 51, + 36, + 176, + 383, + 381, + 164, + 262, + 123, + 314, + 382, + 65, + 238, + 14, + 279, + 191, + 13, + 342, + 119, + 323, + 142, + 384, + 122, + 154, + 320, + 41, + 115, + 87, + 267, + 37, + 168, + 20, + 82, + 137, + 387, + 370, + 118, + 181, + 189, + 321, + 11, + 66, + 92, + 48, + 155, + 380, + 156, + 308, + 357, + 32, + 313, + 72, + 25, + 229, + 160, + 225, + 277, + 43, + 88, + 210, + 340, + 348, + 354, + 237, + 387, + 209, + 206, + 109, + 241, + 80, + 114, + 245, + 327, + 333, + 351, + 66, + 66, + 371, + 247, + 282, + 240, + 326, + 171, + 260, + 341, + 10, + 322, + 239, + 139, + 39, + 25, + 58, + 282, + 220, + 304, + 189, + 151, + 222, + 55, + 296, + 56, + 22, + 261, + 235, + 36, + 252, + 82, + 356, + 21, + 151, + 158, + 304, + 171, + 4, + 184, + 65, + 74, + 205, + 207, + 329, + 8, + 57, + 79, + 161, + 95, + 46, + 366, + 338, + 220, + 116, + 108, + 301, + 2, + 111, + 307, + 84, + 143, + 253, + 13, + 294, + 219, + 366, + 217, + 13, + 140, + 269, + 240, + 307, + 239, + 300, + 66, + 191, + 281, + 391, + 280, + 315, + 267, + 127, + 225, + 39, + 126, + 100, + 159, + 251, + 3, + 157, + 267, + 3, + 19, + 204, + 374, + 105, + 119, + 353, + 51, + 247, + 101, + 38, + 92, + 4, + 359, + 229, + 10, + 373, + 328, + 241, + 188, + 118, + 332, + 131, + 82, + 100, + 185, + 22, + 319, + 200, + 145, + 64, + 17, + 177, + 9, + 374, + 172, + 319, + 43, + 164, + 218, + 257, + 180, + 57, + 50, + 135, + 9, + 268, + 72, + 249, + 342, + 0, + 243, + 214, + 209, + 165, + 229, + 97, + 277, + 273, + 342, + 333, + 319, + 287, + 189, + 38, + 226, + 329, + 86, + 160, + 308, + 200, + 346, + 51, + 72, + 312, + 126, + 272, + 164, + 119, + 145, + 2, + 135, + 146, + 272, + 24, + 209, + 50, + 262, + 240, + 208, + 333, + 255, + 297, + 23, + 193, + 348, + 223, + 293, + 74, + 261, + 42, + 171, + 347, + 209, + 256, + 360, + 361, + 264, + 137, + 189, + 213, + 260, + 348, + 347, + 339, + 306, + 373, + 215, + 81, + 302, + 203, + 109, + 179, + 318, + 110, + 231, + 157, + 361, + 374, + 360, + 144, + 363, + 227, + 112, + 366, + 35, + 85, + 302, + 190, + 305, + 26, + 9, + 268, + 380, + 175, + 382, + 223, + 107, + 398, + 355, + 298, + 59, + 316, + 368, + 98, + 180, + 235, + 392, + 62, + 94, + 382, + 366, + 374, + 237, + 40, + 30, + 257, + 188, + 282, + 25, + 40, + 76, + 331, + 316, + 320, + 393, + 332, + 279, + 278, + 74, + 299, + 75, + 214, + 136, + 71, + 343, + 65, + 347, + 26, + 181, + 265, + 57, + 194, + 108, + 235, + 64, + 249, + 149, + 325, + 168, + 392, + 297, + 46, + 92, + 18, + 309, + 158, + 56, + 297, + 241, + 98, + 337, + 184, + 104, + 117, + 245, + 87, + 67, + 7, + 284, + 257, + 299, + 239, + 256, + 50, + 248, + 341, + 227, + 101, + 210, + 132, + 92, + 192, + 206, + 189, + 326, + 276, + 266, + 24, + 151, + 305, + 7, + 46, + 254, + 152, + 5, + 181, + 305, + 271, + 152, + 175, + 139, + 154, + 172, + 32, + 310, + 368, + 155, + 118, + 313, + 171, + 105, + 77, + 112, + 340, + 319, + 201, + 87, + 260, + 86, + 395, + 29, + 180, + 288, + 188, + 143, + 98, + 140, + 270, + 72, + 379, + 34, + 74, + 93, + 188, + 320, + 319, + 107, + 96, + 108, + 16, + 223, + 235, + 222, + 186, + 78, + 267, + 361, + 215, + 230, + 256, + 20, + 95, + 331, + 191, + 158, + 359, + 375, + 316, + 387, + 152, + 186, + 11, + 338, + 245, + 55, + 312, + 238, + 76, + 187, + 302, + 30, + 259, + 22, + 141, + 228, + 23, + 380, + 68, + 199, + 133, + 108, + 33, + 54, + 4, + 209, + 297, + 313, + 199, + 7, + 167, + 98, + 189, + 338, + 364, + 303, + 242, + 69, + 75, + 25, + 185, + 277, + 239, + 164, + 207, + 13, + 116, + 281, + 304, + 250, + 182, + 186, + 282, + 194, + 336, + 77, + 331, + 173, + 156, + 301, + 142, + 383, + 287, + 74, + 36, + 129, + 247, + 121, + 310, + 272, + 346, + 239, + 88, + 7, + 226, + 239, + 331, + 241, + 122, + 17, + 28, + 46, + 301, + 281, + 4, + 218, + 45, + 60, + 96, + 28, + 138, + 73, + 104, + 125, + 299, + 400, + 19, + 374, + 51, + 274, + 145, + 43, + 128, + 52, + 166, + 348, + 397, + 80, + 160, + 57, + 337, + 245, + 276, + 399, + 396, + 258, + 103, + 320, + 22, + 318, + 361, + 125, + 316, + 42, + 349, + 35, + 318, + 94, + 153, + 2, + 36, + 98, + 55, + 164, + 164, + 123, + 234, + 159, + 183, + 264, + 65, + 213, + 159, + 77, + 308, + 247, + 153, + 379, + 292, + 85, + 44, + 42, + 70, + 26, + 206, + 386, + 47, + 307, + 147, + 153, + 179, + 102, + 238, + 311, + 187, + 225, + 273, + 81, + 306, + 75, + 364, + 4, + 63, + 320, + 248, + 176, + 241, + 179, + 87, + 237, + 259, + 353, + 262, + 40, + 399, + 352, + 222, + 147, + 175, + 312, + 95, + 88, + 250, + 80, + 11, + 114, + 71, + 29, + 190, + 295, + 242, + 166, + 394, + 200, + 125, + 201, + 21, + 131, + 392, + 175, + 350, + 16, + 153, + 381, + 75, + 220, + 234, + 219, + 368, + 305, + 150, + 392, + 394, + 23, + 332, + 227, + 24, + 351, + 220, + 208, + 188, + 343, + 35, + 398, + 321, + 62, + 370, + 386, + 192, + 144, + 212, + 185, + 69, + 18, + 288, + 346, + 4, + 269, + 284, + 113, + 375, + 383, + 174, + 179, + 306, + 334, + 37, + 285, + 53, + 20, + 255, + 266, + 144, + 322, + 333, + 233, + 169, + 362, + 203, + 161, + 75, + 190, + 224, + 161, + 284, + 55, + 323, + 331, + 274, + 197, + 72, + 125, + 381, + 37, + 203, + 222, + 314, + 222, + 266, + 309, + 132, + 173, + 256, + 114, + 242, + 92, + 29, + 0, + 337, + 181, + 113, + 86, + 166, + 135, + 96, + 274, + 26, + 195, + 154, + 269, + 132, + 308, + 386, + 150, + 167, + 347, + 169, + 195, + 32, + 11, + 286, + 11, + 267, + 363, + 366, + 45, + 354, + 260, + 335, + 229, + 178, + 299, + 69, + 86, + 281, + 50, + 279, + 216, + 369, + 244, + 213, + 0, + 160, + 372, + 182, + 51, + 77, + 21, + 138, + 164, + 19, + 235, + 273, + 325, + 267, + 127, + 329, + 321, + 244, + 136, + 0, + 228, + 301, + 0, + 237, + 324, + 142, + 107, + 46, + 206, + 86, + 357, + 273, + 365, + 388, + 382, + 227, + 99, + 220, + 271, + 168, + 152, + 196, + 162, + 357, + 246, + 238, + 299, + 236, + 249, + 306, + 362, + 34, + 267, + 24, + 32, + 287, + 35, + 380, + 147, + 228, + 370, + 275, + 380, + 220, + 21, + 174, + 127, + 243, + 27, + 348, + 132, + 76, + 101, + 237, + 319, + 26, + 388, + 222, + 129, + 195, + 292, + 28, + 100, + 330, + 70, + 212, + 150, + 352, + 250, + 372, + 306, + 97, + 288, + 348, + 124, + 297, + 293, + 203, + 281, + 124, + 397, + 386, + 136, + 170, + 224, + 191, + 369, + 240, + 90, + 337, + 98, + 23, + 222, + 209, + 54, + 128, + 237, + 148, + 109, + 276, + 122, + 393, + 282, + 186, + 360, + 58, + 255, + 183, + 170, + 293, + 104, + 165, + 313, + 65, + 136, + 4, + 179, + 40, + 242, + 281, + 157, + 88, + 312, + 225, + 213, + 331, + 293, + 97, + 264, + 129, + 21, + 318, + 257, + 68, + 29, + 386, + 142, + 79, + 399, + 324, + 46, + 384, + 326, + 154, + 6, + 346, + 323, + 132, + 275, + 336, + 84, + 69, + 370, + 326, + 320, + 325, + 32, + 327, + 176, + 185, + 106, + 14, + 183, + 272, + 157, + 178, + 182, + 69, + 304, + 186, + 1, + 70, + 214, + 101, + 72, + 117, + 122, + 113, + 22, + 265, + 155, + 109, + 351, + 167, + 71, + 365, + 338, + 155, + 358, + 120, + 311, + 216, + 381, + 91, + 223, + 248, + 368, + 359, + 370, + 21, + 333, + 174, + 23, + 272, + 75, + 162, + 99, + 36, + 32, + 188, + 397, + 169, + 261, + 188, + 363, + 178, + 87, + 10, + 391, + 243, + 381, + 242, + 223, + 76, + 47, + 79, + 270, + 218, + 230, + 132, + 388, + 15, + 50, + 270, + 17, + 184, + 156, + 175, + 157, + 67, + 184, + 61, + 388, + 275, + 72, + 297, + 384, + 186, + 81, + 385, + 200, + 160, + 363, + 299, + 261, + 45, + 22, + 170, + 184, + 46, + 199, + 339, + 158, + 160, + 241, + 226, + 89, + 400, + 85, + 239, + 344, + 255, + 92, + 155, + 354, + 151, + 287, + 208, + 312, + 178, + 280, + 151, + 359, + 376, + 320, + 141, + 135, + 121, + 150, + 40, + 128, + 361, + 14, + 23, + 196, + 79, + 57, + 186, + 260, + 11, + 199, + 140, + 125, + 332, + 155, + 63, + 122, + 376, + 384, + 304, + 209, + 330, + 175, + 267, + 231, + 242, + 395, + 140, + 280, + 321, + 247, + 135, + 30, + 85, + 316, + 155, + 264, + 368, + 369, + 386, + 97, + 280, + 299, + 346, + 330, + 292, + 150, + 292, + 354, + 361, + 184, + 304, + 204, + 239, + 355, + 263, + 135, + 194, + 111, + 63, + 128, + 397, + 214, + 241, + 44, + 335, + 161, + 304, + 167, + 339, + 298, + 295, + 96, + 80, + 74, + 269, + 262, + 71, + 197, + 285, + 214, + 41, + 226, + 264, + 166, + 258, + 74, + 151, + 327, + 195, + 208, + 277, + 189, + 173, + 337, + 280, + 355, + 318, + 6, + 57, + 332, + 366, + 75, + 281, + 118, + 62, + 310, + 215, + 32, + 21, + 307, + 136, + 132, + 228, + 393, + 43, + 3, + 72, + 321, + 79, + 398, + 352, + 235, + 110, + 26, + 382, + 275, + 233, + 120, + 310, + 339, + 237, + 163, + 357, + 287, + 394, + 274, + 188, + 351, + 240, + 19, + 52, + 272, + 351, + 55, + 27, + 47, + 23, + 202, + 155, + 74, + 325, + 232, + 228, + 360, + 310, + 58, + 288, + 146, + 314, + 153, + 186, + 83, + 323, + 338, + 348, + 104, + 158, + 2, + 94, + 312, + 111, + 265, + 33, + 392, + 71, + 146, + 65, + 2, + 339, + 349, + 342, + 226, + 96, + 120, + 229, + 248, + 93, + 54, + 114, + 60, + 294, + 63, + 9, + 390, + 358, + 86, + 382, + 193, + 80, + 195, + 106, + 21, + 207, + 379, + 327, + 215, + 235, + 317, + 171, + 201, + 236, + 18, + 80, + 346, + 394, + 198, + 192, + 372, + 182, + 245, + 353, + 60, + 304, + 74, + 140, + 223, + 49, + 251, + 350, + 34, + 286, + 268, + 53, + 258, + 297, + 393, + 2, + 50, + 213, + 16, + 82, + 164, + 136, + 298, + 20, + 160, + 30, + 147, + 26, + 6, + 292, + 119, + 231, + 178, + 134, + 134, + 102, + 257, + 364, + 266, + 178, + 69, + 18, + 239, + 176, + 243, + 10, + 259, + 195, + 382, + 291, + 346, + 124, + 318, + 148, + 49, + 225, + 15, + 357, + 399, + 140, + 147, + 384, + 82, + 261, + 43, + 62, + 238, + 340, + 295, + 208, + 15, + 131, + 348, + 267, + 101, + 340, + 0, + 218, + 142, + 22, + 8, + 129, + 290, + 240, + 347, + 12, + 332, + 207, + 280, + 300, + 296, + 260, + 358, + 17, + 208, + 142, + 305, + 145, + 57, + 182, + 351, + 188, + 395, + 152, + 368, + 273, + 148, + 168, + 89, + 28, + 299, + 325, + 160, + 22, + 18, + 5, + 142, + 282, + 109, + 341, + 176, + 102, + 184, + 162, + 319, + 341, + 256, + 94, + 185, + 64, + 19, + 216, + 190, + 137, + 382, + 305, + 354, + 387, + 151, + 357, + 65, + 274, + 201, + 330, + 192, + 46, + 44, + 309, + 185, + 114, + 183, + 121, + 251, + 67, + 340, + 307, + 73, + 224, + 272, + 39, + 194, + 30, + 221, + 378, + 382, + 53, + 141, + 210, + 189, + 18, + 307, + 367, + 130, + 48, + 15, + 361, + 393, + 143, + 328, + 246, + 334, + 240, + 52, + 300, + 166, + 237, + 71, + 254, + 288, + 207, + 27, + 91, + 122, + 28, + 352, + 61, + 56, + 245, + 91, + 249, + 99, + 295, + 69, + 275, + 240, + 384, + 28, + 256, + 66, + 324, + 324, + 75, + 390, + 349, + 158, + 169, + 333, + 227, + 187, + 122, + 264, + 89, + 266, + 299, + 366, + 256, + 123, + 282, + 108, + 340, + 198, + 103, + 254, + 280, + 137, + 66, + 358, + 98, + 283, + 362, + 298, + 102, + 164, + 237, + 10, + 150, + 95, + 315, + 55, + 245, + 103, + 398, + 387, + 274, + 267, + 341, + 317, + 352, + 190, + 180, + 229, + 320, + 325, + 114, + 143, + 143, + 309, + 344, + 296, + 278, + 172, + 213, + 201, + 153, + 29, + 367, + 182, + 199, + 216, + 164, + 74, + 92, + 20, + 179, + 398, + 4, + 259, + 287, + 382, + 14, + 107, + 395, + 61, + 241, + 188, + 277, + 9, + 236, + 155, + 46, + 287, + 276, + 378, + 145, + 88, + 224, + 147, + 269, + 51, + 132, + 231, + 271, + 357, + 23, + 161, + 78, + 200, + 357, + 297, + 308, + 38, + 43, + 297, + 210, + 111, + 252, + 259, + 244, + 337, + 231, + 15, + 277, + 34, + 234, + 246, + 124, + 120, + 399, + 155, + 394, + 55, + 191, + 5, + 278, + 36, + 195, + 274, + 149, + 202, + 72, + 64, + 48, + 72, + 74, + 33, + 254, + 140, + 309, + 377, + 400, + 107, + 24, + 53, + 11, + 4, + 359, + 353, + 194, + 291, + 367, + 26, + 149, + 303, + 319, + 83, + 282, + 279, + 50, + 17, + 311, + 397, + 353, + 31, + 123, + 223, + 264, + 15, + 155, + 88, + 374, + 209, + 330, + 115, + 340, + 9, + 367, + 350, + 203, + 379, + 360, + 323, + 351, + 18, + 357, + 161, + 206, + 82, + 387, + 163, + 41, + 378, + 23, + 314, + 63, + 314, + 63, + 292, + 119, + 343, + 52, + 16, + 4, + 336, + 160, + 338, + 279, + 359, + 131, + 25, + 337, + 5, + 118, + 37, + 23, + 8, + 291, + 82, + 347, + 170, + 154, + 60, + 60, + 246, + 285, + 354, + 297, + 319, + 10, + 290, + 259, + 187, + 166, + 84, + 258, + 362, + 288, + 238, + 187, + 57, + 230, + 303, + 101, + 399, + 81, + 102, + 318, + 282, + 165, + 34, + 233, + 286, + 156, + 25, + 265, + 153, + 107, + 5, + 380, + 209, + 325, + 208, + 334, + 371, + 37, + 115, + 103, + 210, + 299, + 24, + 279, + 328, + 41, + 392, + 317, + 361, + 185, + 357, + 211, + 108, + 143, + 41, + 71, + 218, + 64, + 84, + 275, + 174, + 160, + 282, + 229, + 377, + 361, + 327, + 205, + 350, + 97, + 396, + 132, + 304, + 108, + 196, + 353, + 360, + 10, + 330, + 78, + 223, + 335, + 369, + 355, + 215, + 76, + 295, + 15, + 23, + 82, + 25, + 219, + 224, + 313, + 276, + 98, + 131, + 15, + 166, + 148, + 259, + 185, + 174, + 238, + 141, + 92, + 333, + 226, + 263, + 331, + 132, + 371, + 101, + 1, + 340, + 362, + 110, + 46, + 78, + 341, + 76, + 30, + 127, + 56, + 281, + 197, + 100, + 391, + 191, + 297, + 6, + 193, + 48, + 62, + 252, + 234, + 151, + 180, + 138, + 248, + 264, + 226, + 284, + 127, + 71, + 350, + 368, + 53, + 322, + 233, + 103, + 93, + 51, + 131, + 278, + 135, + 181, + 26, + 148, + 77, + 330, + 149, + 338, + 301, + 82, + 124, + 165, + 40, + 133, + 261, + 152, + 150, + 196, + 81, + 384, + 318, + 3, + 123, + 194, + 93, + 317, + 4, + 55, + 23, + 83, + 122, + 26, + 131, + 276, + 199, + 346, + 311, + 273, + 178, + 273, + 123, + 139, + 80, + 19, + 269, + 138, + 216, + 309, + 217, + 325, + 333, + 61, + 366, + 375, + 294, + 123, + 207, + 370, + 283, + 68, + 124, + 375, + 67, + 214, + 201, + 15, + 312, + 54, + 222, + 276, + 59, + 79, + 277, + 40, + 321, + 391, + 390, + 0, + 399, + 212, + 107, + 11, + 177, + 104, + 366, + 366, + 180, + 328, + 9, + 158, + 216, + 271, + 325, + 399, + 89, + 203, + 147, + 385, + 392, + 50, + 272, + 308, + 354, + 334, + 135, + 130, + 365, + 143, + 375, + 325, + 303, + 61, + 178, + 77, + 67, + 30, + 37, + 397, + 89, + 217, + 380, + 169, + 299, + 192, + 290, + 56, + 327, + 125, + 376, + 319, + 174, + 115, + 382, + 343, + 345, + 315, + 350, + 365, + 111, + 292, + 293, + 63, + 50, + 123, + 172, + 216, + 289, + 368, + 217, + 395, + 287, + 14, + 52, + 101, + 164, + 88, + 93, + 223, + 229, + 332, + 51, + 58, + 5, + 285, + 255, + 174, + 180, + 196, + 169, + 92, + 244, + 12, + 176, + 330, + 361, + 86, + 33, + 52, + 105, + 74, + 336, + 1, + 150, + 7, + 224, + 20, + 360, + 272, + 4, + 69, + 228, + 220, + 260, + 302, + 222, + 185, + 226, + 372, + 30, + 16, + 301, + 85, + 90, + 158, + 27, + 113, + 64, + 146, + 246, + 131, + 368, + 398, + 226, + 304, + 375, + 249, + 227, + 384, + 39, + 297, + 360, + 2, + 309, + 117, + 171, + 71, + 148, + 65, + 81, + 141, + 138, + 233, + 165, + 86, + 149, + 367, + 352, + 212, + 231, + 396, + 258, + 280, + 135, + 149, + 156, + 94, + 344, + 341, + 378, + 174, + 59, + 374, + 256, + 208, + 44, + 9, + 235, + 225, + 122, + 0, + 293, + 266, + 151, + 125, + 39, + 153, + 84, + 26, + 335, + 344, + 341, + 350, + 113, + 91, + 81, + 364, + 322, + 199, + 301, + 274, + 67, + 224, + 13, + 260, + 227, + 251, + 383, + 395, + 97, + 304, + 288, + 124, + 367, + 349, + 217, + 292, + 281, + 36, + 101, + 284, + 311, + 386, + 372, + 376, + 204, + 208, + 385, + 344, + 296, + 336, + 103, + 58, + 259, + 119, + 326, + 367, + 374, + 221, + 36, + 159, + 317, + 181, + 36, + 394, + 98, + 68, + 237, + 3, + 253, + 90, + 394, + 18, + 164, + 367, + 165, + 65, + 371, + 0, + 75, + 248, + 27, + 353, + 276, + 57, + 368, + 192, + 65, + 159, + 322, + 14, + 263, + 192, + 354, + 89, + 99, + 242, + 30, + 331, + 147, + 141, + 391, + 366, + 47, + 235, + 360, + 342, + 236, + 85, + 287, + 55, + 245, + 283, + 311, + 253, + 362, + 189, + 261, + 338, + 289, + 125, + 267, + 384, + 366, + 153, + 375, + 289, + 87, + 107, + 201, + 1, + 321, + 277, + 88, + 112, + 2, + 65, + 82, + 248, + 65, + 287, + 230, + 233, + 383, + 225, + 372, + 33, + 49, + 109, + 34, + 164, + 287, + 34, + 306, + 271, + 194, + 201, + 292, + 207, + 7, + 379, + 182, + 147, + 187, + 215, + 34, + 91, + 32, + 399, + 118, + 265, + 61, + 378, + 73, + 400, + 10, + 354, + 304, + 263, + 137, + 49, + 232, + 318, + 192, + 52, + 111, + 198, + 17, + 184, + 371, + 66, + 79, + 9, + 162, + 384, + 154, + 82, + 130, + 196, + 96, + 365, + 269, + 374, + 372, + 388, + 189, + 335, + 103, + 55, + 301, + 40, + 73, + 89, + 43, + 155, + 272, + 325, + 87, + 4, + 197, + 296, + 282, + 225, + 293, + 157, + 79, + 349, + 120, + 396, + 106, + 259, + 222, + 152, + 83, + 322, + 196, + 231, + 297, + 253, + 225, + 198, + 106, + 263, + 332, + 382, + 185, + 117, + 18, + 45, + 28, + 36, + 168, + 395, + 110, + 350, + 132, + 375, + 141, + 305, + 145, + 326, + 106, + 90, + 196, + 135, + 314, + 375, + 294, + 16, + 367, + 334, + 109, + 219, + 173, + 251, + 119, + 376, + 252, + 137, + 80, + 31, + 288, + 117, + 290, + 308, + 174, + 124, + 340, + 52, + 167, + 62, + 55, + 53, + 9, + 199, + 235, + 129, + 0, + 62, + 350, + 296, + 340, + 197, + 354, + 134, + 342, + 128, + 168, + 351, + 164, + 144, + 108, + 27, + 8, + 389, + 129, + 220, + 41, + 205, + 266, + 394, + 14, + 246, + 376, + 263, + 155, + 252, + 302, + 309, + 346, + 44, + 149, + 118, + 324, + 353, + 18, + 123, + 260, + 327, + 26, + 233, + 310, + 375, + 198, + 400, + 12, + 265, + 222, + 272, + 5, + 186, + 96, + 384, + 95, + 349, + 206, + 208, + 307, + 237, + 381, + 392, + 182, + 255, + 12, + 162, + 290, + 202, + 311, + 12, + 236, + 150, + 232, + 170, + 276, + 358, + 304, + 58, + 217, + 140, + 387, + 368, + 388, + 132, + 216, + 346, + 207, + 265, + 132, + 125, + 125, + 268, + 177, + 157, + 91, + 197, + 59, + 246, + 396, + 93, + 296, + 386, + 231, + 164, + 305, + 69, + 114, + 133, + 343, + 391, + 58, + 226, + 51, + 175, + 119, + 66, + 52, + 397, + 76, + 253, + 187, + 89, + 138, + 218, + 101, + 199, + 124, + 366, + 312, + 80, + 304, + 336, + 24, + 355, + 163, + 13, + 305, + 190, + 135, + 23, + 400, + 204, + 160, + 375, + 315, + 360, + 17, + 100, + 343, + 258, + 92, + 299, + 382, + 121, + 399, + 55, + 182, + 200, + 45, + 218, + 299, + 64, + 308, + 105, + 92, + 78, + 39, + 366, + 211, + 137, + 124, + 339, + 347, + 96, + 10, + 118, + 10, + 335, + 44, + 254, + 60, + 102, + 32, + 222, + 286, + 163, + 379, + 367, + 79, + 277, + 125, + 61, + 43, + 395, + 148, + 138, + 393, + 342, + 85, + 370, + 210, + 285, + 167, + 271, + 231, + 105, + 176, + 146, + 130, + 115, + 173, + 3, + 53, + 26, + 262, + 367, + 112, + 190, + 394, + 70, + 160, + 177, + 176, + 391, + 76, + 345, + 80, + 240, + 321, + 240, + 286, + 131, + 356, + 230, + 345, + 386, + 211, + 353, + 172, + 25, + 140, + 41, + 98, + 281, + 68, + 57, + 222, + 313, + 285, + 319, + 274, + 331, + 9, + 241, + 365, + 130, + 317, + 69, + 134, + 159, + 351, + 104, + 369, + 139, + 225, + 335, + 310, + 254, + 214, + 23, + 148, + 64, + 14, + 2, + 393, + 85, + 86, + 44, + 303, + 240, + 93, + 276, + 379, + 272, + 238, + 199, + 123, + 29, + 72, + 372, + 208, + 395, + 178, + 132, + 165, + 239, + 220, + 114, + 232, + 135, + 239, + 355, + 113, + 158, + 269, + 88, + 38, + 391, + 383, + 361, + 283, + 378, + 105, + 382, + 159, + 313, + 97, + 79, + 14, + 250, + 400, + 107, + 383, + 226, + 326, + 330, + 262, + 146, + 218, + 2, + 366, + 202, + 187, + 16, + 67, + 113, + 159, + 181, + 19, + 81, + 383, + 390, + 371, + 171, + 295, + 213, + 246, + 340, + 304, + 260, + 16, + 59, + 114, + 124, + 383, + 193, + 394, + 143, + 250, + 287, + 152, + 88, + 335, + 319, + 91, + 399, + 373, + 322, + 253, + 370, + 315, + 197, + 189, + 96, + 127, + 51, + 22, + 198, + 387, + 26, + 93, + 270, + 15, + 345, + 325, + 316, + 167, + 356, + 299, + 34, + 194, + 154, + 86, + 214, + 201, + 131, + 181, + 25, + 198, + 4, + 117, + 187, + 3, + 316, + 294, + 250, + 91, + 32, + 186, + 73, + 69, + 148, + 216, + 372, + 238, + 169, + 386, + 201, + 122, + 221, + 270, + 249, + 187, + 344, + 182, + 233, + 52, + 300, + 119, + 276, + 214, + 335, + 350, + 215, + 154, + 24, + 253, + 332, + 245, + 197, + 38, + 230, + 184, + 219, + 280, + 344, + 64, + 274, + 103, + 133, + 394, + 386, + 278, + 146, + 57, + 7, + 66, + 291, + 214, + 212, + 214, + 0, + 176, + 395, + 196, + 148, + 165, + 279, + 276, + 366, + 190, + 32, + 336, + 106, + 21, + 280, + 75, + 106, + 358, + 223, + 368, + 75, + 134, + 103, + 397, + 99, + 150, + 71, + 211, + 322, + 296, + 398, + 172, + 75, + 196, + 119, + 207, + 205, + 125, + 375, + 365, + 50, + 23, + 233, + 54, + 141, + 27, + 276, + 347, + 190, + 389, + 250, + 139, + 218, + 283, + 68, + 365, + 2, + 81, + 26, + 273, + 11, + 139, + 180, + 374, + 241, + 263, + 38, + 114, + 300, + 96, + 225, + 332, + 160, + 330, + 171, + 111, + 111, + 90, + 166, + 243, + 158, + 249, + 374, + 381, + 5, + 339, + 391, + 373, + 16, + 295, + 72, + 356, + 55, + 168, + 108, + 298, + 152, + 125, + 142, + 322, + 179, + 267, + 350, + 380, + 318, + 135, + 23, + 261, + 72, + 221, + 296, + 327, + 339, + 261, + 295, + 354, + 280, + 299, + 325, + 373, + 266, + 296, + 330, + 314, + 116, + 23, + 305, + 395, + 211, + 243, + 160, + 319, + 264, + 392, + 304, + 131, + 230, + 250, + 59, + 383, + 349, + 28, + 377, + 246, + 353, + 266, + 261, + 147, + 223, + 258, + 180, + 15, + 343, + 357, + 262, + 53, + 351, + 261, + 124, + 341, + 360, + 90, + 234, + 338, + 223, + 363, + 156, + 168, + 171, + 343, + 101, + 355, + 229, + 42, + 330, + 212, + 326, + 10, + 301, + 380, + 26, + 42, + 375, + 24, + 263, + 33, + 394, + 324, + 398, + 262, + 157, + 146, + 122, + 300, + 153, + 308, + 248, + 236, + 275, + 200, + 317, + 62, + 297, + 313, + 290, + 82, + 352, + 81, + 204, + 114, + 133, + 183, + 223, + 386, + 24, + 262, + 274, + 77, + 214, + 194, + 218, + 91, + 139, + 128, + 172, + 216, + 76, + 179, + 342, + 311, + 26, + 316, + 212, + 36, + 372, + 391, + 274, + 51, + 377, + 112, + 362, + 23, + 292, + 130, + 62, + 372, + 161, + 196, + 172, + 191, + 154, + 98, + 213, + 39, + 79, + 165, + 207, + 367, + 166, + 33, + 272, + 304, + 31, + 242, + 138, + 358, + 344, + 344, + 321, + 66, + 32, + 191, + 202, + 32, + 264, + 122, + 342, + 156, + 89, + 344, + 350, + 354, + 114, + 110, + 244, + 137, + 188, + 124, + 362, + 395, + 339, + 202, + 257, + 148, + 309, + 376, + 359, + 246, + 43, + 275, + 304, + 251, + 312, + 308, + 113, + 157, + 92, + 43, + 239, + 265, + 348, + 383, + 364, + 385, + 340, + 90, + 365, + 241, + 248, + 238, + 113, + 169, + 70, + 205, + 246, + 313, + 259, + 2, + 59, + 390, + 276, + 263, + 251, + 400, + 389, + 277, + 280, + 260, + 334, + 91, + 370, + 328, + 204, + 258, + 319, + 254, + 9, + 238, + 292, + 202, + 14, + 346, + 157, + 95, + 194, + 149, + 273, + 35, + 181, + 241, + 213, + 29, + 160, + 287, + 312, + 121, + 257, + 342, + 140, + 158, + 73, + 344, + 16, + 1, + 68, + 49, + 149, + 85, + 333, + 103, + 138, + 153, + 62, + 257, + 291, + 307, + 324, + 173, + 68, + 392, + 32, + 174, + 149, + 365, + 301, + 215, + 316, + 20, + 205, + 211, + 153, + 118, + 101, + 145, + 195, + 202, + 135, + 288, + 400, + 259, + 22, + 273, + 181, + 283, + 315, + 203, + 246, + 55, + 152, + 212, + 37, + 12, + 254, + 398, + 70, + 29, + 90, + 137, + 288, + 266, + 188, + 394, + 343, + 136, + 39, + 373, + 219, + 377, + 142, + 285, + 100, + 228, + 217, + 67, + 265, + 316, + 5, + 92, + 223, + 321, + 319, + 148, + 52, + 286, + 0, + 73, + 37, + 400, + 287, + 123, + 217, + 12, + 229, + 28, + 184, + 2, + 285, + 343, + 6, + 335, + 176, + 26, + 211, + 368, + 217, + 116, + 212, + 148, + 300, + 36, + 220, + 204, + 324, + 162, + 234, + 400, + 78, + 198, + 174, + 145, + 88, + 171, + 317, + 207, + 380, + 212, + 348, + 91, + 16, + 390, + 296, + 9, + 179, + 327, + 287, + 219, + 145, + 385, + 67, + 147, + 375, + 368, + 38, + 124, + 49, + 189, + 25, + 292, + 306, + 253, + 34, + 6, + 132, + 204, + 60, + 379, + 167, + 153, + 249, + 316, + 115, + 231, + 292, + 363, + 62, + 175, + 288, + 395, + 349, + 338, + 389, + 208, + 222, + 22, + 200, + 150, + 157, + 351, + 343, + 341, + 297, + 338, + 392, + 123, + 189, + 248, + 323, + 180, + 317, + 289, + 336, + 325, + 241, + 285, + 309, + 81, + 140, + 243, + 129, + 25, + 381, + 258, + 218, + 360, + 184, + 59, + 350, + 338, + 164, + 84, + 200, + 290, + 270, + 176, + 380, + 217, + 391, + 3, + 189, + 397, + 90, + 28, + 282, + 231, + 239, + 302, + 97, + 54, + 314, + 38, + 336, + 359, + 283, + 309, + 189, + 348, + 365, + 118, + 265, + 73, + 378, + 8, + 185, + 316, + 377, + 37, + 261, + 101, + 324, + 38, + 321, + 393, + 301, + 150, + 122, + 224, + 279, + 225, + 117, + 329, + 198, + 25, + 343, + 296, + 168, + 85, + 308, + 292, + 287, + 374, + 102, + 231, + 58, + 186, + 189, + 237, + 142, + 283, + 365, + 147, + 400, + 151, + 121, + 116, + 249, + 12, + 89, + 234, + 11, + 115, + 121, + 145, + 42, + 12, + 234, + 394, + 103, + 141, + 115, + 51, + 188, + 371, + 215, + 8, + 13, + 365, + 113, + 331, + 338, + 234, + 82, + 125, + 260, + 295, + 183, + 140, + 218, + 26, + 129, + 336, + 186, + 2, + 122, + 330, + 158, + 266, + 346, + 298, + 94, + 384, + 2, + 386, + 211, + 373, + 308, + 112, + 176, + 56, + 394, + 285, + 306, + 102, + 229, + 301, + 327, + 385, + 324, + 373, + 296, + 180, + 343, + 289, + 209, + 233, + 259, + 330, + 119, + 308, + 78, + 260, + 64, + 282, + 107, + 322, + 279, + 197, + 27, + 68, + 242, + 260, + 351, + 236, + 87, + 209, + 114, + 74, + 11, + 241, + 105, + 90, + 21, + 16, + 122, + 394, + 91, + 355, + 30, + 228, + 140, + 190, + 383, + 376, + 265, + 179, + 12, + 93, + 18, + 12, + 7, + 231, + 95, + 183, + 393, + 90, + 212, + 274, + 314, + 380, + 27, + 60, + 252, + 386, + 217, + 240, + 299, + 340, + 354, + 105, + 388, + 242, + 58, + 274, + 119, + 304, + 118, + 353, + 274, + 110, + 116, + 9, + 216, + 302, + 124, + 145, + 167, + 318, + 172, + 300, + 185, + 6, + 304, + 103, + 145, + 126, + 254, + 220, + 331, + 6, + 137, + 335, + 276, + 196, + 93, + 277, + 240, + 172, + 259, + 292, + 342, + 8, + 248, + 367, + 207, + 364, + 33, + 5, + 285, + 146, + 148, + 378, + 226, + 20, + 132, + 222, + 371, + 37, + 330, + 33, + 265, + 79, + 256, + 224, + 375, + 133, + 356, + 348, + 319, + 309, + 360, + 79, + 138, + 126, + 359, + 153, + 13, + 163, + 343, + 237, + 366, + 51, + 363, + 141, + 166, + 97, + 85, + 104, + 101, + 193, + 350, + 6, + 232, + 369, + 20, + 99, + 187, + 231, + 40, + 283, + 196, + 115, + 45, + 12, + 324, + 48, + 46, + 179, + 135, + 233, + 396, + 315, + 199, + 302, + 356, + 288, + 120, + 159, + 188, + 203, + 382, + 299, + 325, + 61, + 55, + 207, + 77, + 143, + 180, + 36, + 171, + 68, + 163, + 324, + 232, + 338, + 301, + 182, + 69, + 237, + 330, + 271, + 244, + 203, + 176, + 20, + 100, + 137, + 370, + 16, + 105, + 166, + 233, + 200, + 226, + 86, + 91, + 119, + 315, + 31, + 17, + 250, + 282, + 186, + 245, + 32, + 213, + 375, + 124, + 276, + 357, + 306, + 333, + 263, + 151, + 162, + 374, + 141, + 17, + 273, + 242, + 251, + 109, + 119, + 341, + 250, + 241, + 191, + 7, + 150, + 195, + 67, + 333, + 348, + 377, + 72, + 147, + 146, + 133, + 267, + 328, + 240, + 236, + 149, + 79, + 48, + 92, + 18, + 110, + 349, + 203, + 347, + 162, + 203, + 198, + 55, + 382, + 215, + 41, + 282, + 259, + 112, + 316, + 56, + 219, + 249, + 130, + 234, + 147, + 345, + 272, + 94, + 258, + 281, + 237, + 30, + 312, + 356, + 362, + 12, + 57, + 279, + 180, + 19, + 38, + 136, + 74, + 216, + 143, + 342, + 234, + 374, + 368, + 231, + 198, + 16, + 213, + 165, + 151, + 223, + 333, + 127, + 99, + 311, + 80, + 372, + 283, + 338, + 49, + 214, + 349, + 280, + 27, + 289, + 101, + 175, + 21, + 151, + 203, + 224, + 198, + 344, + 324, + 316, + 123, + 258, + 63, + 359, + 4, + 391, + 260, + 341, + 183, + 118, + 217, + 349, + 200, + 294, + 134, + 320, + 46, + 333, + 155, + 375, + 217, + 134, + 135, + 148, + 226, + 47, + 52, + 358, + 216, + 227, + 351, + 257, + 97, + 65, + 332, + 177, + 123, + 258, + 61, + 52, + 79, + 154, + 112, + 257, + 283, + 262, + 285, + 153, + 299, + 120, + 175, + 192, + 248, + 116, + 268, + 200, + 26, + 332, + 89, + 354, + 240, + 344, + 364, + 243, + 297, + 361, + 112, + 44, + 359, + 155, + 168, + 65, + 238, + 27, + 382, + 355, + 279, + 24, + 153, + 181, + 249, + 224, + 24, + 271, + 249, + 315, + 281, + 101, + 179, + 215, + 109, + 357, + 214, + 78, + 398, + 333, + 357, + 134, + 396, + 255, + 399, + 179, + 268, + 244, + 327, + 325, + 323, + 270, + 264, + 33, + 107, + 189, + 374, + 165, + 38, + 110, + 196, + 390, + 321, + 116, + 199, + 269, + 77, + 122, + 192, + 56, + 235, + 324, + 134, + 192, + 224, + 286, + 288, + 166, + 13, + 70, + 279, + 249, + 286, + 168, + 81, + 233, + 42, + 93, + 178, + 113, + 130, + 239, + 26, + 192, + 26, + 285, + 215, + 303, + 52, + 361, + 374, + 46, + 107, + 349, + 293, + 294, + 108, + 70, + 247, + 388, + 25, + 376, + 126, + 34, + 161, + 231, + 283, + 45, + 114, + 142, + 326, + 143, + 313, + 355, + 375, + 276, + 14, + 184, + 122, + 85, + 118, + 161, + 385, + 68, + 328, + 224, + 31, + 224, + 97, + 239, + 258, + 342, + 316, + 0, + 96, + 4, + 396, + 9, + 337, + 31, + 156, + 328, + 206, + 171, + 215, + 291, + 172, + 352, + 295, + 298, + 355, + 231, + 78, + 0, + 356, + 140, + 83, + 338, + 45, + 289, + 80, + 158, + 177, + 266, + 267, + 218, + 180, + 340, + 176, + 54, + 118, + 1, + 295, + 98, + 397, + 58, + 346, + 223, + 174, + 1, + 399, + 370, + 183, + 118, + 374, + 345, + 274, + 227, + 295, + 298, + 360, + 398, + 97, + 11, + 337, + 286, + 365, + 215, + 94, + 216, + 128, + 327, + 71, + 273, + 328, + 395, + 12, + 40, + 361, + 355, + 198, + 368, + 192, + 327, + 288, + 164, + 247, + 49, + 117, + 13, + 112, + 378, + 369, + 169, + 253, + 187, + 38, + 18, + 144, + 164, + 238, + 361, + 42, + 400, + 19, + 264, + 252, + 24, + 121, + 229, + 133, + 161, + 219, + 123, + 134, + 330, + 175, + 302, + 62, + 326, + 278, + 338, + 122, + 178, + 160, + 86, + 207, + 129, + 342, + 139, + 238, + 373, + 194, + 136, + 268, + 100, + 224, + 268, + 309, + 101, + 238, + 211, + 129, + 183, + 17, + 332, + 325, + 123, + 145, + 230, + 249, + 398, + 283, + 307, + 311, + 113, + 77, + 93, + 28, + 75, + 117, + 204, + 131, + 304, + 133, + 264, + 109, + 91, + 298, + 71, + 131, + 29, + 133, + 78, + 261, + 309, + 338, + 37, + 243, + 247, + 130, + 327, + 193, + 230, + 59, + 245, + 394, + 129, + 100, + 85, + 331, + 281, + 80, + 198, + 109, + 170, + 309, + 325, + 290, + 168, + 386, + 321, + 185, + 332, + 44, + 195, + 317, + 301, + 266, + 272, + 384, + 285, + 83, + 25, + 39, + 21, + 209, + 388, + 336, + 52, + 247, + 297, + 60, + 269, + 375, + 305, + 330, + 133, + 124, + 156, + 273, + 112, + 118, + 45, + 163, + 372, + 83, + 210, + 78, + 393, + 363, + 67, + 245, + 247, + 390, + 392, + 373, + 14, + 271, + 48, + 390, + 209, + 289, + 217, + 110, + 99, + 254, + 149, + 214, + 284, + 108, + 379, + 182, + 11, + 134, + 224, + 143, + 292, + 143, + 355, + 364, + 236, + 164, + 69, + 338, + 158, + 187, + 202, + 62, + 323, + 145, + 238, + 268, + 272, + 299, + 147, + 93, + 87, + 348, + 4, + 91, + 377, + 222, + 225, + 236, + 316, + 154, + 104, + 91, + 304, + 73, + 236, + 143, + 247, + 185, + 88, + 17, + 294, + 4, + 261, + 90, + 83, + 274, + 392, + 240, + 76, + 25, + 297, + 214, + 274, + 53, + 116, + 71, + 234, + 283, + 384, + 149, + 141, + 161, + 189, + 270, + 8, + 229, + 221, + 223, + 225, + 384, + 114, + 46, + 125, + 347, + 371, + 125, + 26, + 202, + 80, + 301, + 288, + 45, + 85, + 159, + 397, + 163, + 0, + 40, + 155, + 400, + 124, + 145, + 216, + 260, + 281, + 317, + 380, + 166, + 252, + 336, + 107, + 171, + 197, + 112, + 364, + 142, + 6, + 238, + 22, + 255, + 125, + 359, + 191, + 39, + 5, + 100, + 141, + 171, + 88, + 89, + 58, + 252, + 180, + 245, + 112, + 26, + 175, + 123, + 388, + 355, + 63, + 47, + 59, + 120, + 281, + 249, + 21, + 227, + 27, + 378, + 246, + 289, + 54, + 69, + 267, + 276, + 167, + 115, + 62, + 234, + 256, + 339, + 290, + 344, + 138, + 77, + 222, + 225, + 13, + 355, + 254, + 78, + 156, + 297, + 126, + 292, + 395, + 279, + 270, + 184, + 78, + 358, + 111, + 170, + 274, + 227, + 49, + 49, + 312, + 180, + 323, + 351, + 59, + 181, + 89, + 262, + 176, + 53, + 270, + 398, + 382, + 287, + 160, + 275, + 116, + 252, + 205, + 394, + 48, + 301, + 76, + 287, + 121, + 79, + 188, + 120, + 275, + 59, + 123, + 312, + 176, + 217, + 261, + 2, + 329, + 177, + 146, + 263, + 342, + 240, + 210, + 93, + 47, + 241, + 12, + 45, + 248, + 133, + 180, + 43, + 142, + 372, + 115, + 224, + 92, + 219, + 92, + 166, + 99, + 4, + 378, + 336, + 202, + 57, + 26, + 59, + 284, + 225, + 145, + 93, + 10, + 136, + 387, + 83, + 400, + 236, + 276, + 55, + 6, + 141, + 200, + 385, + 249, + 279, + 128, + 173, + 334, + 348, + 166, + 320, + 267, + 245, + 47, + 258, + 254, + 300, + 300, + 153, + 368, + 207, + 338, + 180, + 302, + 128, + 300, + 137, + 129, + 201, + 190, + 337, + 165, + 197, + 229, + 106, + 36, + 38, + 95, + 17, + 300, + 36, + 268, + 138, + 214, + 149, + 196, + 89, + 123, + 380, + 369, + 296, + 237, + 237, + 306, + 234, + 284, + 38, + 302, + 141, + 230, + 175, + 250, + 181, + 131, + 121, + 136, + 341, + 378, + 97, + 383, + 285, + 135, + 15, + 227, + 109, + 218, + 56, + 176, + 309, + 350, + 146, + 30, + 334, + 252, + 332, + 285, + 92, + 73, + 183, + 358, + 391, + 4, + 131, + 129, + 23, + 232, + 123, + 230, + 334, + 22, + 150, + 58, + 98, + 53, + 342, + 179, + 79, + 132, + 146, + 149, + 85, + 280, + 67, + 193, + 44, + 130, + 332, + 2, + 11, + 147, + 187, + 108, + 272, + 103, + 110, + 295, + 176, + 297, + 48, + 43, + 74, + 300, + 224, + 162, + 243, + 112, + 398, + 265, + 139, + 254, + 92, + 30, + 195, + 208, + 326, + 6, + 268, + 16, + 149, + 296, + 195, + 340, + 392, + 218, + 339, + 321, + 241, + 215, + 335, + 276, + 400, + 157, + 103, + 303, + 310, + 124, + 31, + 192, + 299, + 286, + 83, + 323, + 182, + 89, + 68, + 345, + 74, + 276, + 123, + 350, + 10, + 270, + 202, + 378, + 120, + 232, + 216, + 355, + 128, + 7, + 29, + 50, + 209, + 161, + 99, + 273, + 383, + 16, + 23, + 238, + 245, + 100, + 183, + 236, + 264, + 271, + 330, + 33, + 301, + 316, + 136, + 377, + 204, + 267, + 28, + 41, + 87, + 388, + 209, + 186, + 143, + 307, + 204, + 259, + 175, + 221, + 196, + 255, + 159, + 124, + 248, + 351, + 81, + 144, + 189, + 354, + 277, + 348, + 355, + 130, + 116, + 397, + 114, + 230, + 238, + 149, + 32, + 107, + 188, + 250, + 58, + 349, + 141, + 177, + 94, + 379, + 288, + 219, + 344, + 378, + 310, + 394, + 290, + 30, + 223, + 23, + 344, + 304, + 63, + 168, + 8, + 8, + 58, + 97, + 378, + 198, + 352, + 246, + 101, + 302, + 379, + 257, + 319, + 359, + 207, + 358, + 129, + 260, + 57, + 240, + 368, + 390, + 95, + 284, + 48, + 188, + 53, + 135, + 363, + 322, + 390, + 308, + 311, + 304, + 74, + 357, + 169, + 329, + 385, + 178, + 381, + 142, + 145, + 41, + 211, + 161, + 134, + 186, + 223, + 161, + 377, + 359, + 183, + 270, + 283, + 347, + 279, + 112, + 104, + 129, + 245, + 194, + 378, + 258, + 317, + 59, + 2, + 244, + 161, + 356, + 130, + 156, + 129, + 35, + 51, + 92, + 112, + 227, + 209, + 326, + 37, + 206, + 171, + 266, + 376, + 108, + 366, + 28, + 81, + 345, + 40, + 78, + 55, + 373, + 127, + 307, + 25, + 365, + 76, + 7, + 277, + 174, + 238, + 6, + 17, + 112, + 341, + 364, + 95, + 257, + 382, + 380, + 192, + 217, + 357, + 197, + 175, + 296, + 59, + 219, + 205, + 25, + 334, + 144, + 153, + 348, + 119, + 248, + 195, + 180, + 344, + 165, + 225, + 195, + 195, + 73, + 390, + 353, + 45, + 377, + 340, + 39, + 171, + 382, + 245, + 62, + 135, + 376, + 335, + 321, + 3, + 277, + 384, + 148, + 276, + 252, + 66, + 308, + 224, + 148, + 200, + 212, + 30, + 280, + 295, + 50, + 266, + 98, + 51, + 204, + 137, + 47, + 261, + 215, + 186, + 126, + 245, + 376, + 51, + 42, + 132, + 318, + 77, + 370, + 258, + 144, + 130, + 13, + 370, + 193, + 189, + 399, + 226, + 225, + 194, + 319, + 265, + 282, + 170, + 133, + 1, + 145, + 147, + 236, + 82, + 154, + 383, + 373, + 183, + 256, + 260, + 233, + 105, + 358, + 273, + 5, + 316, + 154, + 345, + 203, + 87, + 55, + 185, + 182, + 364, + 221, + 255, + 350, + 65, + 162, + 61, + 72, + 200, + 382, + 276, + 201, + 355, + 191, + 77, + 251, + 269, + 21, + 82, + 243, + 382, + 259, + 64, + 196, + 399, + 347, + 388, + 395, + 387, + 18, + 184, + 166, + 29, + 2, + 247, + 275, + 102, + 363, + 0, + 77, + 114, + 217, + 38, + 159, + 353, + 129, + 156, + 101, + 349, + 42, + 51, + 245, + 197, + 75, + 356, + 188, + 355, + 45, + 55, + 241, + 215, + 210, + 321, + 340, + 361, + 9, + 156, + 21, + 317, + 110, + 345, + 127, + 394, + 60, + 145, + 248, + 344, + 26, + 376, + 365, + 289, + 217, + 53, + 80, + 127, + 38, + 212, + 176, + 8, + 198, + 12, + 4, + 338, + 100, + 204, + 330, + 353, + 356, + 185, + 355, + 205, + 340, + 318, + 281, + 325, + 161, + 150, + 221, + 88, + 179, + 55, + 281, + 85, + 222, + 184, + 323, + 256, + 366, + 326, + 357, + 10, + 15, + 354, + 157, + 149, + 265, + 263, + 118, + 388, + 150, + 60, + 388, + 344, + 250, + 290, + 261, + 395, + 345, + 333, + 323, + 256, + 382, + 138, + 195, + 5, + 323, + 6, + 231, + 354, + 47, + 41, + 76, + 269, + 57, + 340, + 329, + 190, + 179, + 334, + 382, + 30, + 288, + 150, + 353, + 326, + 210, + 360, + 208, + 252, + 309, + 210, + 65, + 365, + 329, + 158, + 373, + 309, + 59, + 369, + 101, + 186, + 27, + 322, + 175, + 160, + 67, + 43, + 296, + 173, + 334, + 214, + 49, + 373, + 164, + 299, + 110, + 185, + 147, + 321, + 257, + 202, + 204, + 290, + 310, + 85, + 313, + 150, + 113, + 196, + 158, + 4, + 183, + 74, + 230, + 219, + 328, + 236, + 379, + 169, + 315, + 127, + 282, + 134, + 15, + 370, + 299, + 17, + 160, + 398, + 163, + 312, + 146, + 216, + 85, + 138, + 70, + 33, + 63, + 224, + 274, + 10, + 44, + 193, + 231, + 264, + 6, + 129, + 109, + 330, + 394, + 286, + 283, + 154, + 196, + 182, + 148, + 55, + 366, + 299, + 94, + 21, + 64, + 18, + 174, + 133, + 183, + 317, + 153, + 45, + 122, + 142, + 368, + 294, + 138, + 122, + 386, + 256, + 8, + 21, + 174, + 368, + 369, + 105, + 379, + 126, + 101, + 67, + 111, + 311, + 273, + 249, + 144, + 19, + 211, + 276, + 265, + 356, + 318, + 211, + 157, + 67, + 242, + 8, + 150, + 111, + 259, + 318, + 156, + 218, + 257, + 366, + 200, + 331, + 162, + 257, + 189, + 241, + 338, + 57, + 185, + 255, + 15, + 252, + 62, + 70, + 86, + 37, + 57, + 331, + 54, + 348, + 177, + 247, + 380, + 310, + 287, + 10, + 86, + 265, + 309, + 10, + 23, + 267, + 375, + 136, + 303, + 251, + 321, + 245, + 9, + 280, + 231, + 217, + 102, + 34, + 249, + 398, + 364, + 339, + 305, + 396, + 73, + 349, + 169, + 6, + 300, + 330, + 251, + 9, + 169, + 136, + 8, + 4, + 190, + 351, + 181, + 166, + 97, + 380, + 100, + 169, + 224, + 50, + 207, + 69, + 327, + 176, + 128, + 89, + 40, + 23, + 332, + 154, + 207, + 152, + 213, + 91, + 269, + 385, + 163, + 260, + 73, + 157, + 235, + 393, + 246, + 299, + 391, + 127, + 32, + 343, + 220, + 324, + 393, + 215, + 253, + 21, + 334, + 213, + 258, + 145, + 393, + 95, + 227, + 206, + 375, + 392, + 177, + 387, + 361, + 203, + 15, + 400, + 108, + 260, + 302, + 317, + 132, + 89, + 40, + 233, + 40, + 213, + 391, + 199, + 252, + 134, + 183, + 245, + 35, + 238, + 272, + 229, + 153, + 233, + 379, + 120, + 159, + 307, + 355, + 173, + 68, + 339, + 26, + 335, + 238, + 55, + 259, + 121, + 147, + 373, + 296, + 190, + 295, + 288, + 207, + 362, + 333, + 149, + 229, + 282, + 8, + 323, + 169, + 56, + 267, + 35, + 364, + 179, + 274, + 372, + 275, + 98, + 271, + 372, + 56, + 216, + 258, + 285, + 125, + 95, + 244, + 229, + 153, + 365, + 40, + 54, + 158, + 277, + 223, + 150, + 333, + 326, + 215, + 360, + 343, + 223, + 344, + 210, + 99, + 254, + 325, + 356, + 205, + 376, + 152, + 130, + 70, + 44, + 85, + 227, + 330, + 244, + 337, + 165, + 281, + 182, + 391, + 400, + 325, + 84, + 154, + 247, + 130, + 256, + 90, + 274, + 268, + 45, + 64, + 337, + 228, + 332, + 177, + 383, + 316, + 244, + 144, + 110, + 210, + 269, + 213, + 16, + 363, + 163, + 98, + 298, + 250, + 145, + 139, + 300, + 317, + 187, + 112, + 269, + 206, + 46, + 84, + 132, + 52, + 368, + 151, + 335, + 326, + 398, + 295, + 188, + 26, + 297, + 78, + 270, + 96, + 13, + 144, + 111, + 309, + 291, + 156, + 42, + 17, + 196, + 120, + 385, + 356, + 191, + 115, + 280, + 137, + 301, + 85, + 374, + 72, + 75, + 191, + 15, + 334, + 153, + 53, + 91, + 294, + 368, + 340, + 56, + 274, + 384, + 116, + 9, + 181, + 119, + 283, + 15, + 62, + 307, + 334, + 335, + 321, + 352, + 59, + 206, + 286, + 34, + 264, + 214, + 274, + 233, + 366, + 255, + 250, + 339, + 126, + 358, + 327, + 279, + 336, + 110, + 254, + 103, + 126, + 194, + 43, + 128, + 63, + 316, + 3, + 347, + 250, + 336, + 72, + 22, + 157, + 117, + 66, + 292, + 252, + 345, + 397, + 206, + 80, + 77, + 124, + 44, + 203, + 268, + 266, + 175, + 396, + 316, + 205, + 252, + 240, + 370, + 242, + 309, + 171, + 1, + 274, + 351, + 30, + 202, + 141, + 155, + 61, + 22, + 336, + 136, + 99, + 350, + 186, + 69, + 280, + 230, + 219, + 66, + 329, + 198, + 166, + 104, + 97, + 63, + 85, + 279, + 213, + 75, + 241, + 359, + 155, + 260, + 228, + 116, + 54, + 378, + 75, + 289, + 180, + 64, + 193, + 22, + 125, + 144, + 254, + 156, + 334, + 51, + 26, + 310, + 157, + 232, + 321, + 298, + 130, + 248, + 377, + 169, + 127, + 76, + 193, + 67, + 261, + 363, + 266, + 3, + 181, + 55, + 68, + 266, + 38, + 16, + 164, + 100, + 245, + 321, + 56, + 147, + 63, + 36, + 338, + 90, + 244, + 45, + 230, + 262, + 70, + 305, + 230, + 124, + 34, + 305, + 140, + 107, + 222, + 5, + 261, + 161, + 80, + 131, + 107, + 7, + 110, + 261, + 273, + 3, + 200, + 42, + 313, + 207, + 209, + 365, + 270, + 278, + 92, + 327, + 109, + 56, + 326, + 115, + 267, + 190, + 26, + 363, + 118, + 345, + 400, + 267, + 286, + 306, + 152, + 304, + 150, + 377, + 375, + 26, + 19, + 394, + 326, + 146, + 265, + 216, + 284, + 126, + 162, + 202, + 304, + 252, + 164, + 90, + 378, + 264, + 127, + 246, + 95, + 339, + 352, + 186, + 357, + 386, + 356, + 197, + 62, + 161, + 298, + 211, + 57, + 355, + 354, + 284, + 376, + 190, + 395, + 256, + 84, + 34, + 204, + 166, + 73, + 364, + 142, + 121, + 251, + 221, + 108, + 290, + 366, + 183, + 231, + 175, + 272, + 225, + 38, + 36, + 231, + 95, + 185, + 47, + 179, + 146, + 191, + 46, + 325, + 260, + 197, + 199, + 163, + 156, + 101, + 209, + 20, + 119, + 253, + 94, + 378, + 340, + 26, + 340, + 205, + 29, + 154, + 46, + 229, + 104, + 191, + 395, + 59, + 108, + 63, + 0, + 196, + 315, + 235, + 94, + 301, + 155, + 6, + 263, + 275, + 24, + 63, + 25, + 224, + 257, + 12, + 48, + 242, + 253, + 136, + 25, + 44, + 229, + 156, + 116, + 28, + 331, + 343, + 22, + 283, + 308, + 270, + 84, + 179, + 270, + 87, + 76, + 99, + 134, + 78, + 229, + 121, + 140, + 75, + 100, + 281, + 242, + 33, + 241, + 261, + 273, + 1, + 22, + 105, + 393, + 141, + 21, + 185, + 207, + 120, + 395, + 100, + 365, + 157, + 348, + 391, + 67, + 111, + 108, + 292, + 99, + 173, + 23, + 393, + 221, + 295, + 203, + 54, + 248, + 1, + 23, + 45, + 37, + 75, + 294, + 226, + 112, + 115, + 133, + 347, + 53, + 119, + 3, + 234, + 183, + 25, + 281, + 346, + 367, + 114, + 82, + 143, + 229, + 172, + 236, + 298, + 335, + 383, + 121, + 304, + 317, + 240, + 316, + 52, + 257, + 278, + 47, + 100, + 203, + 113, + 146, + 308, + 147, + 15, + 86, + 80, + 343, + 23, + 115, + 340, + 121, + 376, + 135, + 144, + 185, + 375, + 301, + 253, + 61, + 227, + 5, + 352, + 271, + 54, + 298, + 175, + 374, + 376, + 376, + 102, + 230, + 362, + 220, + 316, + 15, + 380, + 85, + 35, + 203, + 294, + 12, + 24, + 231, + 10, + 340, + 213, + 85, + 36, + 253, + 241, + 14, + 83, + 10, + 183, + 15, + 369, + 283, + 266, + 212, + 34, + 382, + 190, + 296, + 161, + 151, + 83, + 32, + 354, + 263, + 340, + 168, + 110, + 97, + 183, + 214, + 273, + 317, + 27, + 376, + 23, + 316, + 377, + 40, + 241, + 118, + 84, + 285, + 124, + 237, + 302, + 372, + 287, + 187, + 352, + 151, + 310, + 395, + 80, + 185, + 284, + 116, + 47, + 227, + 318, + 364, + 206, + 151, + 68, + 234, + 364, + 397, + 240, + 120, + 96, + 84, + 27, + 301, + 14, + 160, + 364, + 352, + 155, + 392, + 153, + 88, + 250, + 341, + 261, + 32, + 25, + 42, + 325, + 145, + 250, + 190, + 397, + 325, + 283, + 324, + 280, + 291, + 317, + 111, + 30, + 216, + 331, + 329, + 69, + 283, + 371, + 164, + 323, + 301, + 44, + 0, + 288, + 216, + 349, + 172, + 164, + 59, + 232, + 390, + 41, + 326, + 306, + 186, + 28, + 19, + 221, + 216, + 125, + 275, + 312, + 31, + 288, + 172, + 378, + 331, + 287, + 180, + 352, + 128, + 271, + 210, + 314, + 187, + 125, + 117, + 93, + 385, + 113, + 230, + 44, + 197, + 396, + 30, + 206, + 334, + 343, + 273, + 37, + 8, + 93, + 367, + 197, + 60, + 277, + 356, + 228, + 135, + 286, + 171, + 265, + 118, + 224, + 239, + 39, + 35, + 101, + 155, + 336, + 218, + 221, + 26, + 147, + 284, + 341, + 19, + 336, + 159, + 293, + 177, + 41, + 381, + 61, + 349, + 94, + 266, + 54, + 137, + 179, + 152, + 387, + 1, + 337, + 53, + 39, + 277, + 360, + 212, + 123, + 182, + 238, + 376, + 385, + 376, + 18, + 224, + 55, + 85, + 60, + 176, + 309, + 137, + 322, + 155, + 33, + 181, + 225, + 338, + 184, + 4, + 39, + 351, + 242, + 56, + 187, + 217, + 200, + 208, + 179, + 325, + 233, + 229, + 141, + 223, + 101, + 168, + 5, + 275, + 17, + 104, + 191, + 335, + 274, + 49, + 136, + 343, + 216, + 363, + 108, + 307, + 388, + 63, + 364, + 389, + 322, + 19, + 81, + 260, + 288, + 174, + 217, + 98, + 391, + 247, + 15, + 104, + 238, + 172, + 2, + 291, + 130, + 11, + 249, + 199, + 206, + 204, + 205, + 270, + 76, + 345, + 374, + 31, + 325, + 63, + 114, + 343, + 42, + 102, + 211, + 385, + 167, + 276, + 242, + 30, + 177, + 372, + 159, + 113, + 345, + 299, + 275, + 369, + 336, + 185, + 307, + 32, + 11, + 106, + 260, + 164, + 208, + 336, + 129, + 0, + 39, + 193, + 204, + 28, + 145, + 25, + 253, + 282, + 142, + 135, + 56, + 228, + 98, + 109, + 94, + 254, + 304, + 307, + 198, + 141, + 24, + 12, + 50, + 63, + 87, + 292, + 228, + 94, + 393, + 113, + 310, + 297, + 283, + 241, + 382, + 205, + 242, + 123, + 150, + 376, + 277, + 186, + 106, + 153, + 271, + 206, + 253, + 316, + 285, + 125, + 261, + 319, + 273, + 220, + 89, + 149, + 180, + 113, + 302, + 118, + 88, + 213, + 343, + 321, + 255, + 129, + 335, + 3, + 248, + 140, + 164, + 198, + 163, + 182, + 228, + 304, + 108, + 225, + 279, + 123, + 352, + 270, + 387, + 248, + 343, + 249, + 263, + 3, + 380, + 127, + 100, + 244, + 180, + 12, + 201, + 323, + 361, + 4, + 317, + 178, + 182, + 59, + 15, + 260, + 81, + 12, + 314, + 49, + 267, + 213, + 357, + 238, + 137, + 396, + 352, + 125, + 389, + 279, + 216, + 138, + 241, + 21, + 32, + 339, + 231, + 79, + 33, + 95, + 129, + 383, + 328, + 342, + 209, + 68, + 298, + 148, + 282, + 15, + 377, + 92, + 237, + 273, + 331, + 54, + 366, + 297, + 269, + 56, + 349, + 220, + 96, + 341, + 78, + 154, + 202, + 387, + 157, + 75, + 361, + 309, + 196, + 319, + 65, + 389, + 334, + 7, + 71, + 170, + 36, + 238, + 187, + 222, + 36, + 302, + 210, + 339, + 76, + 77, + 241, + 179, + 294, + 146, + 219, + 165, + 48, + 38, + 129, + 310, + 111, + 360, + 109, + 136, + 197, + 70, + 364, + 301, + 358, + 137, + 110, + 139, + 289, + 55, + 154, + 89, + 298, + 140, + 230, + 10, + 304, + 57, + 396, + 20, + 397, + 339, + 27, + 228, + 340, + 54, + 287, + 5, + 329, + 234, + 153, + 105, + 361, + 255, + 2, + 319, + 0, + 267, + 261, + 334, + 152, + 231, + 217, + 339, + 234, + 307, + 56, + 342, + 6, + 43, + 111, + 245, + 89, + 120, + 359, + 223, + 170, + 204, + 398, + 213, + 269, + 221, + 114, + 315, + 48, + 106, + 233, + 313, + 221, + 74, + 220, + 298, + 394, + 345, + 376, + 21, + 51, + 203, + 379, + 328, + 227, + 125, + 155, + 284, + 24, + 188, + 311, + 212, + 106, + 22, + 175, + 262, + 214, + 288, + 344, + 252, + 202, + 308, + 340, + 15, + 311, + 65, + 107, + 214, + 69, + 91, + 207, + 106, + 186, + 132, + 159, + 227, + 24, + 96, + 24, + 169, + 79, + 7, + 336, + 159, + 45, + 360, + 399, + 233, + 9, + 225, + 398, + 352, + 188, + 321, + 170, + 251, + 20, + 164, + 299, + 101, + 90, + 54, + 133, + 307, + 154, + 210, + 200, + 327, + 266, + 257, + 86, + 32, + 252, + 146, + 186, + 93, + 65, + 148, + 342, + 256, + 121, + 365, + 94, + 380, + 261, + 212, + 241, + 219, + 385, + 328, + 78, + 339, + 6, + 181, + 163, + 323, + 163, + 239, + 383, + 62, + 49, + 358, + 7, + 82, + 235, + 230, + 71, + 24, + 194, + 198, + 299, + 332, + 208, + 31, + 104, + 115, + 324, + 148, + 122, + 367, + 163, + 20, + 227, + 133, + 91, + 364, + 240, + 234, + 46, + 298, + 169, + 17, + 170, + 79, + 289, + 108, + 50, + 85, + 377, + 158, + 176, + 176, + 390, + 91, + 237, + 213, + 10, + 367, + 393, + 85, + 282, + 259, + 308, + 247, + 260, + 217, + 72, + 168, + 67, + 320, + 191, + 383, + 162, + 304, + 103, + 300, + 365, + 203, + 76, + 22, + 54, + 229, + 236, + 54, + 165, + 366, + 285, + 133, + 360, + 189, + 107, + 305, + 395, + 135, + 297, + 366, + 335, + 85, + 17, + 194, + 40, + 271, + 170, + 215, + 122, + 142, + 266, + 198, + 5, + 237, + 127, + 378, + 163, + 131, + 114, + 206, + 22, + 215, + 106, + 395, + 188, + 211, + 122, + 284, + 236, + 288, + 375, + 303, + 71, + 108, + 105, + 200, + 107, + 86, + 182, + 363, + 19, + 287, + 96, + 296, + 16, + 188, + 242, + 281, + 264, + 303, + 310, + 224, + 120, + 189, + 212, + 315, + 272, + 368, + 353, + 240, + 103, + 372, + 210, + 37, + 157, + 167, + 195, + 386, + 193, + 177, + 3, + 36, + 284, + 120, + 394, + 5, + 389, + 3, + 194, + 277, + 293, + 214, + 187, + 235, + 396, + 43, + 258, + 315, + 147, + 349, + 253, + 213, + 363, + 149, + 376, + 109, + 168, + 185, + 52, + 283, + 268, + 373, + 166, + 189, + 119, + 329, + 128, + 378, + 152, + 378, + 343, + 148, + 178, + 78, + 155, + 306, + 264, + 130, + 72, + 203, + 286, + 31, + 118, + 245, + 301, + 109, + 229, + 347, + 384, + 370, + 254, + 173, + 108, + 73, + 107, + 5, + 266, + 269, + 395, + 162, + 18, + 161, + 175, + 65, + 353, + 310, + 329, + 241, + 209, + 110, + 194, + 148, + 376, + 108, + 388, + 328, + 396, + 399, + 232, + 358, + 368, + 305, + 166, + 379, + 83, + 200, + 311, + 65, + 87, + 256, + 236, + 76, + 345, + 155, + 32, + 368, + 129, + 230, + 161, + 14, + 184, + 220, + 51, + 123, + 390, + 323, + 273, + 286, + 149, + 325, + 79, + 358, + 32, + 284, + 204, + 62, + 266, + 192, + 286, + 217, + 300, + 127, + 105, + 96, + 194, + 189, + 352, + 208, + 22, + 49, + 49, + 152, + 297, + 359, + 37, + 230, + 58, + 389, + 276, + 281, + 254, + 320, + 330, + 17, + 291, + 221, + 205, + 370, + 80, + 343, + 181, + 222, + 31, + 96, + 91, + 29, + 100, + 122, + 346, + 135, + 316, + 14, + 287, + 46, + 170, + 141, + 311, + 110, + 296, + 172, + 330, + 215, + 96, + 32, + 188, + 77, + 140, + 129, + 254, + 117, + 339, + 191, + 216, + 203, + 181, + 102, + 5, + 269, + 83, + 81, + 198, + 35, + 10, + 263, + 157, + 56, + 322, + 31, + 245, + 37, + 143, + 397, + 149, + 102, + 253, + 190, + 302, + 248, + 319, + 246, + 122, + 105, + 359, + 150, + 300, + 166, + 319, + 168, + 28, + 149, + 167, + 200, + 1, + 167, + 138, + 57, + 81, + 18, + 368, + 258, + 146, + 368, + 318, + 19, + 131, + 348, + 25, + 129, + 308, + 186, + 86, + 246, + 25, + 188, + 262, + 54, + 285, + 128, + 90, + 201, + 359, + 351, + 195, + 38, + 152, + 240, + 142, + 306, + 104, + 116, + 396, + 287, + 162, + 17, + 338, + 127, + 251, + 363, + 26, + 340, + 190, + 289, + 52, + 369, + 381, + 18, + 130, + 315, + 243, + 58, + 148, + 9, + 268, + 193, + 285, + 182, + 47, + 76, + 272, + 85, + 227, + 168, + 140, + 240, + 132, + 5, + 389, + 204, + 351, + 165, + 338, + 54, + 77, + 71, + 139, + 315, + 348, + 120, + 37, + 153, + 45, + 115, + 133, + 147, + 280, + 334, + 20, + 382, + 394, + 245, + 16, + 14, + 173, + 300, + 126, + 323, + 372, + 303, + 332, + 132, + 392, + 309, + 251, + 286, + 20, + 320, + 253, + 363, + 185, + 195, + 237, + 204, + 157, + 188, + 154, + 340, + 167, + 131, + 294, + 245, + 198, + 160, + 204, + 362, + 259, + 14, + 309, + 0, + 286, + 272, + 333, + 266, + 229, + 20, + 328, + 240, + 250, + 203, + 307, + 110, + 304, + 148, + 256, + 152, + 234, + 334, + 385, + 9, + 180, + 195, + 47, + 382, + 264, + 296, + 208, + 120, + 129, + 175, + 173, + 197, + 209, + 216, + 195, + 361, + 366, + 67, + 118, + 302, + 70, + 120, + 16, + 362, + 49, + 350, + 220, + 270, + 303, + 394, + 342, + 184, + 126, + 225, + 352, + 239, + 133, + 54, + 156, + 46, + 266, + 86, + 104, + 310, + 217, + 202, + 171, + 84, + 85, + 371, + 369, + 243, + 308, + 245, + 47, + 187, + 12, + 54, + 133, + 185, + 353, + 191, + 370, + 9, + 372, + 346, + 177, + 48, + 216, + 91, + 8, + 45, + 351, + 36, + 29, + 101, + 106, + 308, + 149, + 169, + 70, + 12, + 96, + 117, + 368, + 69, + 72, + 161, + 219, + 399, + 319, + 12, + 142, + 216, + 86, + 358, + 286, + 322, + 187, + 256, + 127, + 182, + 242, + 368, + 36, + 72, + 90, + 265, + 238, + 98, + 124, + 54, + 192, + 270, + 330, + 366, + 275, + 18, + 75, + 255, + 288, + 368, + 57, + 19, + 109, + 237, + 197, + 162, + 32, + 153, + 137, + 75, + 9, + 170, + 355, + 199, + 395, + 102, + 49, + 64, + 203, + 329, + 68, + 88, + 297, + 29, + 213, + 39, + 161, + 0, + 134, + 143, + 282, + 359, + 18, + 64, + 174, + 87, + 303, + 400, + 226, + 182, + 234, + 356, + 131, + 81, + 314, + 189, + 231, + 11, + 373, + 396, + 258, + 11, + 287, + 301, + 109, + 38, + 165, + 362, + 149, + 247, + 203, + 236, + 14, + 120, + 320, + 382, + 241, + 392, + 54, + 121, + 290, + 13, + 156, + 342, + 246, + 175, + 370, + 321, + 172, + 389, + 52, + 251, + 251, + 389, + 10, + 22, + 101, + 29, + 57, + 169, + 62, + 222, + 76, + 304, + 321, + 355, + 211, + 275, + 243, + 171, + 122, + 379, + 79, + 71, + 368, + 296, + 150, + 356, + 28, + 351, + 234, + 218, + 170, + 397, + 135, + 198, + 273, + 283, + 283, + 115, + 338, + 361, + 354, + 344, + 88, + 227, + 11, + 311, + 367, + 68, + 214, + 76, + 58, + 238, + 19, + 147, + 363, + 240, + 209, + 233, + 301, + 19, + 130, + 316, + 330, + 374, + 101, + 187, + 55, + 252, + 308, + 173, + 381, + 311, + 397, + 131, + 171, + 165, + 26, + 81, + 297, + 368, + 362, + 238, + 340, + 54, + 134, + 246, + 121, + 356, + 243, + 219, + 37, + 65, + 339, + 118, + 194, + 298, + 286, + 125, + 330, + 250, + 34, + 242, + 260, + 116, + 85, + 13, + 395, + 180, + 328, + 253, + 245, + 327, + 0, + 158, + 11, + 261, + 274, + 377, + 334, + 335, + 98, + 201, + 292, + 172, + 38, + 291, + 201, + 134, + 187, + 380, + 266, + 277, + 255, + 363, + 347, + 130, + 108, + 354, + 47, + 183, + 127, + 180, + 148, + 64, + 275, + 38, + 266, + 75, + 220, + 319, + 193, + 350, + 199, + 273, + 191, + 24, + 141, + 271, + 322, + 244, + 2, + 136, + 378, + 84, + 207, + 163, + 369, + 123, + 52, + 137, + 67, + 53, + 133, + 393, + 129, + 257, + 273, + 326, + 292, + 83, + 20, + 212, + 76, + 380, + 295, + 165, + 246, + 265, + 48, + 392, + 246, + 21, + 59, + 318, + 222, + 86, + 190, + 170, + 42, + 397, + 260, + 201, + 53, + 379, + 173, + 269, + 126, + 89, + 142, + 158, + 19, + 25, + 353, + 221, + 336, + 37, + 108, + 209, + 328, + 194, + 166, + 346, + 142, + 269, + 40, + 174, + 77, + 128, + 386, + 24, + 251, + 389, + 75, + 12, + 352, + 258, + 171, + 243, + 282, + 36, + 24, + 363, + 131, + 171, + 239, + 160, + 41, + 264, + 39, + 233, + 264, + 205, + 130, + 72, + 24, + 117, + 152, + 35, + 24, + 170, + 114, + 120, + 255, + 43, + 266, + 68, + 331, + 294, + 381, + 171, + 299, + 397, + 273, + 102, + 189, + 370, + 85, + 19, + 37, + 112, + 36, + 58, + 297, + 139, + 48, + 291, + 173, + 52, + 269, + 160, + 150, + 179, + 196, + 299, + 296, + 331, + 147, + 117, + 215, + 200, + 389, + 32, + 123, + 183, + 290, + 278, + 283, + 148, + 399, + 262, + 284, + 158, + 243, + 259, + 365, + 78, + 63, + 350, + 239, + 20, + 391, + 105, + 109, + 93, + 246, + 236, + 395, + 296, + 81, + 324, + 150, + 25, + 44, + 181, + 152, + 324, + 265, + 153, + 159, + 324, + 146, + 116, + 264, + 307, + 232, + 356, + 90, + 108, + 263, + 257, + 352, + 338, + 254, + 221, + 310, + 9, + 29, + 391, + 142, + 57, + 90, + 293, + 83, + 226, + 361, + 161, + 284, + 307, + 98, + 277, + 175, + 375, + 72, + 90, + 102, + 258, + 291, + 397, + 26, + 3, + 163, + 358, + 153, + 80, + 7, + 388, + 51, + 356, + 75, + 271, + 229, + 117, + 171, + 308, + 247, + 160, + 35, + 7, + 234, + 322, + 233, + 102, + 130, + 357, + 107, + 65, + 348, + 314, + 333, + 259, + 195, + 290, + 232, + 232, + 136, + 108, + 366, + 92, + 130, + 258, + 297, + 28, + 90, + 32, + 140, + 277, + 265, + 212, + 150, + 322, + 74, + 57, + 91, + 182, + 40, + 226, + 91, + 117, + 131, + 36, + 357, + 285, + 321, + 61, + 161, + 320, + 4, + 186, + 329, + 255, + 340, + 263, + 289, + 156, + 105, + 23, + 253, + 350, + 150, + 359, + 246, + 70, + 365, + 92, + 202, + 159, + 242, + 169, + 310, + 224, + 371, + 181, + 350, + 372, + 56, + 35, + 145, + 200, + 88, + 114, + 104, + 159, + 270, + 108, + 138, + 295, + 397, + 271, + 278, + 346, + 317, + 385, + 178, + 356, + 324, + 233, + 357, + 57, + 351, + 261, + 396, + 399, + 255, + 390, + 388, + 118, + 168, + 295, + 178, + 334, + 238, + 43, + 151, + 210, + 153, + 129, + 133, + 328, + 344, + 130, + 363, + 236, + 176, + 138, + 107, + 242, + 211, + 343, + 14, + 35, + 266, + 268, + 144, + 121, + 151, + 385, + 290, + 204, + 15, + 213, + 33, + 347, + 363, + 225, + 3, + 190, + 178, + 123, + 40, + 318, + 172, + 388, + 331, + 160, + 113, + 248, + 92, + 397, + 193, + 192, + 121, + 312, + 365, + 271, + 68, + 349, + 79, + 390, + 101, + 214, + 209, + 72, + 66, + 355, + 221, + 16, + 292, + 195, + 367, + 229, + 208, + 347, + 348, + 149, + 138, + 84, + 169, + 169, + 92, + 239, + 111, + 152, + 303, + 125, + 166, + 225, + 303, + 246, + 76, + 172, + 321, + 152, + 64, + 177, + 201, + 129, + 251, + 386, + 253, + 146, + 338, + 229, + 235, + 142, + 242, + 136, + 153, + 285, + 349, + 176, + 353, + 38, + 82, + 104, + 45, + 171, + 310, + 317, + 148, + 101, + 15, + 204, + 72, + 348, + 294, + 277, + 51, + 378, + 354, + 361, + 398, + 377, + 166, + 130, + 126, + 81, + 226, + 384, + 176, + 387, + 319, + 307, + 193, + 140, + 5, + 102, + 95, + 182, + 301, + 143, + 237, + 209, + 399, + 11, + 29, + 102, + 155, + 126, + 202, + 350, + 31, + 176, + 2, + 227, + 181, + 320, + 385, + 113, + 300, + 47, + 200, + 387, + 156, + 359, + 206, + 337, + 4, + 199, + 255, + 296, + 154, + 209, + 4, + 22, + 116, + 224, + 318, + 229, + 152, + 65, + 315, + 380, + 294, + 164, + 150, + 216, + 31, + 170, + 80, + 134, + 387, + 11, + 381, + 250, + 85, + 203, + 153, + 86, + 104, + 230, + 197, + 169, + 202, + 128, + 308, + 395, + 90, + 92, + 305, + 90, + 394, + 325, + 368, + 25, + 222, + 329, + 327, + 122, + 271, + 296, + 151, + 149, + 37, + 211, + 315, + 87, + 0, + 27, + 114, + 75, + 72, + 101, + 182, + 93, + 99, + 119, + 263, + 172, + 165, + 353, + 298, + 48, + 353, + 397, + 18, + 128, + 335, + 358, + 72, + 128, + 382, + 188, + 303, + 69, + 333, + 372, + 23, + 22, + 310, + 347, + 348, + 236, + 278, + 77, + 297, + 153, + 336, + 228, + 251, + 225, + 40, + 27, + 290, + 235, + 40, + 337, + 159, + 48, + 57, + 294, + 267, + 74, + 44, + 74, + 210, + 377, + 223, + 370, + 279, + 41, + 255, + 126, + 43, + 243, + 51, + 321, + 337, + 99, + 327, + 176, + 125, + 218, + 213, + 1, + 226, + 348, + 144, + 340, + 66, + 248, + 53, + 284, + 111, + 25, + 152, + 251, + 279, + 135, + 21, + 323, + 239, + 312, + 277, + 298, + 216, + 222, + 291, + 238, + 323, + 283, + 101, + 305, + 132, + 120, + 265, + 118, + 326, + 203, + 338, + 192, + 50, + 276, + 363, + 249, + 28, + 364, + 48, + 99, + 216, + 378, + 77, + 251, + 363, + 154, + 371, + 391, + 373, + 254, + 222, + 160, + 59, + 108, + 26, + 179, + 25, + 202, + 201, + 331, + 37, + 76, + 135, + 322, + 372, + 185, + 108, + 69, + 12, + 196, + 353, + 77, + 231, + 244, + 218, + 271, + 328, + 143, + 157, + 153, + 86, + 375, + 120, + 336, + 177, + 11, + 396, + 197, + 64, + 205, + 207, + 241, + 55, + 261, + 192, + 287, + 341, + 74, + 88, + 194, + 166, + 209, + 254, + 273, + 156, + 373, + 204, + 79, + 97, + 394, + 381, + 348, + 287, + 281, + 216, + 361, + 123, + 237, + 220, + 163, + 245, + 136, + 0, + 64, + 215, + 109, + 91, + 226, + 150, + 285, + 350, + 208, + 209, + 343, + 342, + 230, + 234, + 2, + 221, + 188, + 284, + 229, + 219, + 371, + 213, + 334, + 382, + 144, + 337, + 233, + 394, + 114, + 74, + 328, + 15, + 160, + 178, + 71, + 61, + 138, + 54, + 0, + 318, + 338, + 302, + 335, + 164, + 2, + 393, + 15, + 188, + 317, + 309, + 108, + 209, + 161, + 16, + 121, + 362, + 16, + 208, + 165, + 310, + 392, + 349, + 312, + 25, + 158, + 171, + 378, + 162, + 233, + 49, + 92, + 187, + 252, + 33, + 247, + 59, + 358, + 137, + 369, + 179, + 70, + 174, + 112, + 269, + 258, + 29, + 197, + 314, + 32, + 219, + 74, + 291, + 150, + 170, + 226, + 21, + 197, + 214, + 80, + 207, + 36, + 5, + 126, + 280, + 100, + 356, + 203, + 296, + 161, + 29, + 311, + 164, + 111, + 197, + 253, + 361, + 399, + 118, + 292, + 305, + 25, + 393, + 226, + 205, + 85, + 332, + 323, + 259, + 251, + 348, + 357, + 35, + 179, + 102, + 243, + 117, + 390, + 366, + 5, + 209, + 16, + 142, + 252, + 314, + 176, + 333, + 227, + 395, + 120, + 22, + 146, + 126, + 4, + 123, + 268, + 165, + 354, + 318, + 48, + 227, + 199, + 210, + 388, + 390, + 117, + 195, + 84, + 300, + 287, + 205, + 134, + 232, + 88, + 305, + 8, + 6, + 393, + 347, + 159, + 245, + 363, + 110, + 63, + 285, + 168, + 33, + 51, + 37, + 72, + 75, + 210, + 373, + 90, + 108, + 123, + 400, + 44, + 76, + 17, + 163, + 328, + 213, + 387, + 387, + 14, + 303, + 93, + 45, + 361, + 25, + 109, + 123, + 56, + 355, + 208, + 206, + 231, + 400, + 358, + 250, + 214, + 51, + 125, + 169, + 168, + 91, + 165, + 371, + 364, + 87, + 258, + 327, + 232, + 396, + 213, + 12, + 254, + 272, + 277, + 228, + 306, + 196, + 378, + 129, + 224, + 42, + 394, + 292, + 184, + 44, + 97, + 257, + 216, + 205, + 340, + 334, + 85, + 171, + 372, + 146, + 119, + 64, + 292, + 298, + 376, + 357, + 109, + 5, + 309, + 269, + 166, + 36, + 91, + 385, + 352, + 170, + 112, + 136, + 41, + 357, + 223, + 102, + 251, + 194, + 139, + 102, + 55, + 152, + 352, + 122, + 375, + 143, + 144, + 384, + 149, + 20, + 69, + 290, + 203, + 298, + 254, + 104, + 115, + 81, + 305, + 395, + 168, + 244, + 363, + 106, + 101, + 397, + 211, + 184, + 88, + 271, + 12, + 199, + 170, + 298, + 44, + 244, + 193, + 317, + 164, + 115, + 74, + 36, + 147, + 237, + 173, + 347, + 256, + 298, + 89, + 333, + 13, + 32, + 17, + 246, + 25, + 207, + 288, + 52, + 205, + 229, + 110, + 329, + 360, + 72, + 149, + 313, + 140, + 38, + 172, + 387, + 308, + 127, + 244, + 279, + 23, + 184, + 319, + 362, + 340, + 328, + 40, + 189, + 297, + 88, + 22, + 11, + 61, + 82, + 184, + 248, + 35, + 366, + 307, + 31, + 227, + 359, + 86, + 334, + 331, + 389, + 86, + 164, + 174, + 291, + 190, + 111, + 72, + 153, + 0, + 313, + 135, + 65, + 29, + 141, + 388, + 56, + 180, + 387, + 31, + 153, + 96, + 319, + 320, + 3, + 108, + 383, + 122, + 162, + 283, + 205, + 333, + 28, + 356, + 225, + 66, + 119, + 107, + 26, + 375, + 13, + 15, + 125, + 141, + 328, + 107, + 275, + 39, + 283, + 229, + 135, + 38, + 259, + 24, + 150, + 281, + 141, + 389, + 331, + 379, + 383, + 345, + 116, + 185, + 145, + 160, + 247, + 190, + 274, + 390, + 181, + 8, + 163, + 86, + 318, + 98, + 279, + 356, + 58, + 338, + 322, + 324, + 4, + 213, + 207, + 274, + 270, + 158, + 368, + 237, + 56, + 14, + 7, + 383, + 111, + 381, + 234, + 130, + 127, + 370, + 306, + 379, + 253, + 362, + 53, + 352, + 170, + 81, + 246, + 12, + 264, + 366, + 286, + 237, + 139, + 228, + 131, + 322, + 33, + 267, + 317, + 389, + 85, + 111, + 273, + 85, + 318, + 82, + 307, + 348, + 112, + 155, + 364, + 172, + 253, + 27, + 255, + 348, + 33, + 315, + 110, + 286, + 24, + 231, + 322, + 162, + 141, + 161, + 373, + 3, + 77, + 77, + 38, + 274, + 66, + 235, + 353, + 323, + 20, + 275, + 42, + 244, + 275, + 279, + 39, + 159, + 297, + 282, + 311, + 294, + 335, + 121, + 53, + 310, + 400, + 193, + 381, + 207, + 98, + 172, + 285, + 40, + 384, + 180, + 219, + 377, + 197, + 353, + 222, + 373, + 342, + 56, + 277, + 285, + 362, + 343, + 276, + 283, + 68, + 192, + 203, + 303, + 106, + 275, + 183, + 318, + 135, + 145, + 69, + 53, + 336, + 114, + 164, + 103, + 263, + 7, + 348, + 57, + 268, + 233, + 5, + 37, + 267, + 355, + 103, + 87, + 168, + 104, + 135, + 143, + 35, + 364, + 99, + 219, + 196, + 343, + 275, + 60, + 171, + 396, + 374, + 253, + 389, + 82, + 363, + 324, + 28, + 32, + 59, + 318, + 383, + 59, + 353, + 321, + 121, + 14, + 368, + 296, + 211, + 185, + 294, + 179, + 71, + 131, + 167, + 135, + 128, + 19, + 387, + 89, + 305, + 183, + 52, + 350, + 84, + 83, + 241, + 345, + 251, + 198, + 122, + 249, + 281, + 379, + 243, + 148, + 85, + 261, + 74, + 324, + 383, + 334, + 271, + 321, + 371, + 255, + 354, + 90, + 240, + 111, + 116, + 319, + 271, + 394, + 255, + 140, + 148, + 29, + 21, + 161, + 284, + 246, + 34, + 68, + 308, + 362, + 143, + 300, + 118, + 321, + 398, + 394, + 359, + 74, + 363, + 325, + 304, + 49, + 45, + 306, + 26, + 186, + 21, + 143, + 378, + 189, + 318, + 287, + 182, + 96, + 43, + 379, + 143, + 180, + 196, + 265, + 78, + 398, + 192, + 81, + 104, + 373, + 112, + 199, + 400, + 51, + 136, + 324, + 155, + 330, + 177, + 380, + 140, + 270, + 10, + 353, + 47, + 211, + 198, + 23, + 291, + 7, + 305, + 23, + 43, + 192, + 74, + 21, + 118, + 85, + 97, + 191, + 142, + 219, + 134, + 266, + 12, + 125, + 318, + 206, + 30, + 101, + 195, + 324, + 280, + 243, + 141, + 206, + 66, + 224, + 139, + 369, + 215, + 359, + 19, + 87, + 92, + 149, + 50, + 113, + 147, + 236, + 116, + 330, + 214, + 315, + 23, + 194, + 324, + 256, + 239, + 312, + 18, + 199, + 368, + 57, + 200, + 216, + 350, + 135, + 400, + 184, + 204, + 326, + 250, + 120, + 16, + 182, + 388, + 376, + 320, + 190, + 97, + 398, + 72, + 124, + 390, + 31, + 56, + 299, + 186, + 398, + 307, + 109, + 59, + 1, + 263, + 366, + 363, + 337, + 297, + 248, + 0, + 359, + 203, + 11, + 343, + 56, + 189, + 170, + 109, + 91, + 209, + 127, + 320, + 214, + 149, + 65, + 183, + 138, + 148, + 220, + 129, + 363, + 38, + 87, + 199, + 341, + 98, + 277, + 187, + 230, + 377, + 372, + 307, + 318, + 381, + 166, + 83, + 241, + 154, + 138, + 149, + 154, + 17, + 86, + 388, + 326, + 303, + 189, + 247, + 13, + 288, + 150, + 324, + 292, + 322, + 330, + 109, + 377, + 234, + 279, + 368, + 372, + 41, + 60, + 264, + 119, + 393, + 16, + 63, + 324, + 171, + 190, + 372, + 335, + 30, + 150, + 27, + 84, + 1, + 203, + 114, + 1, + 102, + 299, + 167, + 183, + 179, + 358, + 399, + 175, + 117, + 14, + 400, + 119, + 5, + 296, + 122, + 83, + 51, + 201, + 238, + 84, + 233, + 352, + 2, + 216, + 118, + 4, + 49, + 28, + 144, + 49, + 388, + 155, + 40, + 119, + 28, + 371, + 69, + 395, + 215, + 279, + 163, + 216, + 160, + 304, + 50, + 89, + 93, + 368, + 28, + 353, + 199, + 20, + 258, + 291, + 163, + 112, + 358, + 27, + 360, + 69, + 362, + 278, + 223, + 362, + 202, + 382, + 349, + 215, + 21, + 94, + 383, + 391, + 358, + 92, + 112, + 156, + 292, + 128, + 77, + 222, + 156, + 115, + 212, + 6, + 283, + 24, + 66, + 221, + 288, + 39, + 341, + 358, + 217, + 364, + 355, + 320, + 135, + 306, + 355, + 355, + 278, + 72, + 176, + 171, + 328, + 127, + 358, + 235, + 173, + 387, + 108, + 10, + 130, + 83, + 348, + 374, + 388, + 341, + 127, + 26, + 38, + 115, + 76, + 341, + 113, + 247, + 30, + 370, + 330, + 181, + 70, + 340, + 293, + 271, + 111, + 367, + 364, + 128, + 82, + 217, + 63, + 260, + 293, + 384, + 114, + 110, + 374, + 66, + 30, + 24, + 56, + 185, + 47, + 42, + 241, + 286, + 161, + 184, + 187, + 335, + 254, + 281, + 339, + 376, + 62, + 17, + 239, + 237, + 350, + 131, + 71, + 122, + 145, + 187, + 22, + 9, + 196, + 149, + 156, + 243, + 291, + 79, + 366, + 368, + 107, + 360, + 343, + 399, + 36, + 363, + 35, + 269, + 176, + 64, + 281, + 356, + 105, + 386, + 148, + 145, + 133, + 328, + 339, + 76, + 56, + 61, + 350, + 363, + 101, + 193, + 67, + 307, + 288, + 2, + 137, + 320, + 282, + 301, + 249, + 230, + 206, + 379, + 288, + 380, + 15, + 175, + 131, + 129, + 12, + 371, + 288, + 120, + 207, + 354, + 251, + 396, + 226, + 138, + 206, + 228, + 300, + 226, + 68, + 39, + 226, + 309, + 180, + 216, + 295, + 25, + 286, + 51, + 260, + 252, + 308, + 165, + 211, + 381, + 204, + 314, + 239, + 202, + 263, + 348, + 278, + 217, + 144, + 269, + 52, + 269, + 337, + 294, + 354, + 276, + 200, + 231, + 217, + 48, + 309, + 89, + 194, + 168, + 277, + 253, + 92, + 149, + 215, + 376, + 289, + 25, + 241, + 390, + 139, + 136, + 288, + 92, + 2, + 324, + 237, + 328, + 372, + 350, + 162, + 278, + 125, + 266, + 375, + 63, + 235, + 71, + 212, + 219, + 43, + 40, + 27, + 222, + 268, + 186, + 380, + 221, + 163, + 296, + 61, + 315, + 20, + 253, + 109, + 97, + 394, + 378, + 398, + 129, + 92, + 210, + 322, + 38, + 266, + 59, + 142, + 124, + 206, + 46, + 283, + 147, + 133, + 46, + 108, + 218, + 240, + 345, + 14, + 305, + 139, + 301, + 155, + 174, + 340, + 146, + 213, + 197, + 13, + 338, + 288, + 90, + 277, + 395, + 74, + 339, + 283, + 67, + 107, + 260, + 365, + 316, + 248, + 99, + 308, + 280, + 62, + 399, + 365, + 305, + 193, + 330, + 210, + 341, + 66, + 48, + 205, + 298, + 86, + 237, + 71, + 378, + 346, + 348, + 265, + 393, + 119, + 93, + 236, + 374, + 396, + 101, + 147, + 197, + 328, + 12, + 95, + 128, + 273, + 42, + 108, + 195, + 54, + 284, + 290, + 163, + 357, + 161, + 46, + 269, + 28, + 272, + 36, + 189, + 208, + 113, + 365, + 191, + 120, + 161, + 360, + 307, + 266, + 135, + 221, + 223, + 138, + 367, + 132, + 300, + 318, + 54, + 169, + 141, + 67, + 329, + 371, + 264, + 385, + 57, + 129, + 202, + 384, + 171, + 369, + 155, + 398, + 111, + 360, + 331, + 25, + 33, + 113, + 133, + 129, + 375, + 157, + 288, + 218, + 231, + 277, + 388, + 146, + 340, + 358, + 295, + 88, + 346, + 100, + 265, + 320, + 382, + 161, + 264, + 397, + 240, + 398, + 105, + 251, + 5, + 41, + 200, + 36, + 255, + 327, + 92, + 383, + 245, + 68, + 0, + 330, + 111, + 215, + 123, + 369, + 224, + 340, + 294, + 187, + 40, + 210, + 288, + 45, + 96, + 90, + 150, + 188, + 155, + 190, + 95, + 220, + 140, + 163, + 393, + 315, + 44, + 11, + 329, + 128, + 128, + 140, + 136, + 304, + 179, + 241, + 4, + 179, + 5, + 17, + 148, + 305, + 335, + 15, + 176, + 1, + 21, + 310, + 189, + 141, + 379, + 161, + 238, + 268, + 51, + 212, + 301, + 190, + 327, + 16, + 189, + 281, + 77, + 396, + 197, + 361, + 190, + 151, + 183, + 261, + 369, + 350, + 198, + 396, + 272, + 269, + 6, + 334, + 294, + 382, + 211, + 262, + 318, + 31, + 95, + 275, + 50, + 164, + 298, + 278, + 389, + 377, + 127, + 306, + 51, + 44, + 93, + 221, + 251, + 110, + 20, + 318, + 89, + 240, + 354, + 59, + 202, + 395, + 367, + 123, + 10, + 148, + 317, + 340, + 45, + 356, + 125, + 97, + 379, + 216, + 104, + 148, + 3, + 33, + 33, + 179, + 359, + 374, + 160, + 342, + 183, + 205, + 240, + 195, + 360, + 177, + 103, + 393, + 75, + 124, + 37, + 383, + 155, + 222, + 317, + 267, + 68, + 224, + 190, + 121, + 313, + 165, + 335, + 231, + 120, + 169, + 80, + 175, + 191, + 217, + 392, + 320, + 253, + 299, + 254, + 53, + 181, + 2, + 7, + 333, + 301, + 149, + 334, + 17, + 143, + 289, + 164, + 203, + 200, + 345, + 1, + 317, + 63, + 53, + 57, + 30, + 170, + 245, + 178, + 114, + 98, + 12, + 370, + 35, + 370, + 136, + 187, + 19, + 340, + 339, + 311, + 259, + 67, + 162, + 94, + 285, + 44, + 155, + 169, + 22, + 28, + 375, + 234, + 113, + 279, + 293, + 29, + 356, + 380, + 362, + 175, + 259, + 343, + 201, + 237, + 302, + 365, + 329, + 113, + 32, + 271, + 242, + 346, + 145, + 55, + 246, + 10, + 290, + 276, + 119, + 141, + 82, + 235, + 364, + 306, + 316, + 382, + 118, + 187, + 152, + 314, + 336, + 363, + 45, + 282, + 128, + 359, + 324, + 177, + 179, + 278, + 369, + 346, + 393, + 140, + 60, + 54, + 280, + 271, + 192, + 29, + 70, + 204, + 341, + 247, + 173, + 98, + 278, + 312, + 10, + 80, + 203, + 112, + 154, + 49, + 384, + 64, + 337, + 224, + 201, + 372, + 256, + 141, + 241, + 315, + 308, + 384, + 166, + 294, + 219, + 40, + 129, + 150, + 69, + 56, + 363, + 62, + 381, + 96, + 387, + 101, + 254, + 386, + 131, + 347, + 112, + 238, + 305, + 298, + 318, + 204, + 8, + 149, + 46, + 61, + 220, + 60, + 118, + 214, + 363, + 229, + 337, + 399, + 396, + 1, + 166, + 285, + 14, + 304, + 390, + 65, + 147, + 141, + 321, + 208, + 377, + 60, + 248, + 197, + 170, + 330, + 44, + 15, + 303, + 311, + 55, + 382, + 288, + 278, + 5, + 30, + 271, + 191, + 9, + 150, + 199, + 180, + 388, + 203, + 29, + 66, + 248, + 165, + 45, + 212, + 174, + 390, + 133, + 101, + 75, + 393, + 361, + 10, + 247, + 182, + 234, + 388, + 157, + 286, + 356, + 384, + 95, + 237, + 74, + 126, + 66, + 313, + 388, + 142, + 97, + 349, + 366, + 112, + 147, + 79, + 73, + 393, + 353, + 145, + 237, + 259, + 259, + 277, + 179, + 260, + 86, + 376, + 186, + 333, + 328, + 29, + 360, + 229, + 374, + 115, + 286, + 40, + 191, + 138, + 208, + 292, + 341, + 82, + 92, + 313, + 305, + 320, + 256, + 37, + 283, + 237, + 357, + 3, + 382, + 331, + 380, + 53, + 21, + 100, + 393, + 93, + 391, + 295, + 243, + 313, + 383, + 36, + 56, + 210, + 356, + 182, + 152, + 100, + 273, + 238, + 263, + 111, + 194, + 254, + 147, + 169, + 61, + 218, + 49, + 217, + 18, + 398, + 352, + 244, + 265, + 213, + 160, + 120, + 18, + 12, + 20, + 191, + 40, + 381, + 210, + 189, + 26, + 53, + 267, + 255, + 18, + 67, + 168, + 126, + 394, + 36, + 90, + 162, + 262, + 223, + 187, + 71, + 27, + 12, + 351, + 3, + 285, + 342, + 36, + 345, + 176, + 340, + 119, + 148, + 323, + 45, + 283, + 199, + 23, + 272, + 296, + 211, + 396, + 45, + 206, + 99, + 270, + 58, + 99, + 180, + 88, + 204, + 296, + 256, + 184, + 229, + 340, + 291, + 273, + 26, + 15, + 15, + 133, + 354, + 164, + 225, + 207, + 237, + 232, + 27, + 365, + 383, + 203, + 36, + 111, + 338, + 94, + 353, + 128, + 322, + 157, + 374, + 237, + 1, + 371, + 355, + 378, + 88, + 21, + 283, + 270, + 50, + 102, + 374, + 161, + 313, + 340, + 17, + 394, + 179, + 25, + 7, + 89, + 142, + 210, + 229, + 272, + 244, + 111, + 168, + 199, + 334, + 307, + 69, + 327, + 310, + 245, + 48, + 341, + 203, + 281, + 147, + 122, + 38, + 232, + 216, + 269, + 146, + 103, + 109, + 358, + 385, + 275, + 268, + 96, + 69, + 399, + 350, + 300, + 225, + 166, + 86, + 175, + 129, + 136, + 169, + 160, + 367, + 341, + 257, + 375, + 212, + 116, + 113, + 44, + 382, + 195, + 240, + 218, + 49, + 192, + 316, + 143, + 298, + 230, + 366, + 62, + 40, + 106, + 370, + 111, + 144, + 43, + 240, + 214, + 327, + 251, + 227, + 63, + 4, + 199, + 369, + 24, + 136, + 343, + 321, + 3, + 374, + 273, + 238, + 123, + 151, + 302, + 400, + 289, + 36, + 348, + 136, + 128, + 325, + 312, + 50, + 178, + 63, + 322, + 319, + 139, + 17, + 273, + 83, + 289, + 63, + 40, + 121, + 130, + 313, + 285, + 278, + 112, + 195, + 328, + 88, + 154, + 196, + 103, + 0, + 32, + 151, + 189, + 347, + 191, + 216, + 33, + 232, + 146, + 184, + 123, + 245, + 214, + 210, + 300, + 49, + 12, + 392, + 301, + 221, + 373, + 221, + 61, + 369, + 350, + 16, + 366, + 384, + 136, + 253, + 26, + 218, + 239, + 348, + 165, + 306, + 374, + 28, + 81, + 353, + 190, + 283, + 397, + 156, + 252, + 127, + 336, + 237, + 316, + 26, + 192, + 130, + 70, + 231, + 393, + 399, + 77, + 56, + 215, + 202, + 350, + 223, + 371, + 25, + 163, + 89, + 258, + 303, + 199, + 55, + 312, + 80, + 289, + 65, + 323, + 335, + 92, + 103, + 118, + 175, + 37, + 308, + 85, + 361, + 260, + 149, + 209, + 376, + 322, + 290, + 372, + 215, + 385, + 122, + 270, + 292, + 103, + 347, + 28, + 170, + 246, + 146, + 223, + 269, + 361, + 199, + 370, + 72, + 214, + 235, + 156, + 195, + 203, + 82, + 11, + 381, + 245, + 304, + 44, + 375, + 165, + 123, + 295, + 385, + 151, + 227, + 205, + 190, + 180, + 13, + 93, + 75, + 251, + 272, + 36, + 387, + 16, + 222, + 226, + 124, + 352, + 241, + 366, + 149, + 190, + 152, + 190, + 83, + 77, + 207, + 262, + 63, + 318, + 243, + 134, + 180, + 104, + 5, + 244, + 95, + 61, + 319, + 157, + 344, + 72, + 383, + 302, + 363, + 194, + 322, + 220, + 44, + 9, + 161, + 304, + 288, + 356, + 31, + 20, + 158, + 70, + 132, + 334, + 352, + 85, + 132, + 127, + 396, + 291, + 15, + 149, + 65, + 143, + 273, + 179, + 305, + 300, + 142, + 393, + 144, + 174, + 72, + 112, + 329, + 171, + 0, + 145, + 348, + 302, + 335, + 160, + 360, + 6, + 372, + 252, + 386, + 150, + 104, + 148, + 359, + 350, + 238, + 65, + 117, + 202, + 21, + 165, + 333, + 4, + 182, + 334, + 342, + 167, + 299, + 110, + 331, + 102, + 133, + 196, + 146, + 28, + 111, + 342, + 80, + 42, + 145, + 294, + 33, + 343, + 263, + 147, + 262, + 125, + 133, + 13, + 243, + 151, + 226, + 291, + 119, + 231, + 28, + 140, + 145, + 41, + 51, + 71, + 120, + 13, + 299, + 137, + 162, + 201, + 279, + 258, + 395, + 76, + 343, + 252, + 208, + 380, + 310, + 259, + 333, + 85, + 392, + 337, + 51, + 234, + 269, + 387, + 294, + 136, + 278, + 349, + 227, + 267, + 133, + 293, + 150, + 180, + 120, + 83, + 212, + 224, + 40, + 42, + 256, + 90, + 149, + 332, + 98, + 246, + 10, + 63, + 205, + 193, + 9, + 370, + 178, + 86, + 249, + 378, + 142, + 112, + 186, + 366, + 31, + 241, + 250, + 150, + 194, + 172, + 176, + 341, + 390, + 106, + 76, + 271, + 350, + 247, + 372, + 48, + 137, + 82, + 399, + 217, + 26, + 117, + 378, + 166, + 100, + 321, + 78, + 394, + 237, + 52, + 38, + 62, + 105, + 333, + 391, + 102, + 290, + 322, + 51, + 39, + 322, + 279, + 313, + 236, + 324, + 281, + 281, + 383, + 168, + 116, + 399, + 202, + 82, + 209, + 376, + 346, + 379, + 254, + 161, + 242, + 348, + 3, + 391, + 145, + 252, + 285, + 21, + 47, + 23, + 286, + 299, + 159, + 272, + 229, + 26, + 76, + 59, + 380, + 211, + 141, + 357, + 113, + 292, + 122, + 13, + 207, + 79, + 79, + 213, + 20, + 118, + 119, + 160, + 246, + 281, + 236, + 9, + 25, + 372, + 57, + 160, + 132, + 43, + 218, + 57, + 100, + 196, + 207, + 328, + 376, + 227, + 279, + 138, + 48, + 338, + 219, + 230, + 255, + 222, + 226, + 353, + 202, + 133, + 323, + 263, + 272, + 156, + 283, + 191, + 92, + 373, + 116, + 345, + 239, + 204, + 105, + 39, + 192, + 397, + 32, + 333, + 247, + 224, + 390, + 118, + 10, + 338, + 98, + 101, + 0, + 282, + 261, + 65, + 280, + 396, + 304, + 349, + 266, + 214, + 190, + 382, + 335, + 146, + 74, + 105, + 48, + 40, + 210, + 52, + 236, + 363, + 225, + 216, + 393, + 76, + 312, + 265, + 302, + 172, + 379, + 31, + 389, + 199, + 62, + 55, + 327, + 92, + 289, + 0, + 135, + 76, + 43, + 267, + 90, + 273, + 82, + 68, + 168, + 246, + 392, + 207, + 42, + 380, + 136, + 279, + 278, + 229, + 211, + 223, + 219, + 232, + 28, + 29, + 174, + 74, + 107, + 139, + 266, + 19, + 15, + 50, + 26, + 286, + 168, + 144, + 131, + 169, + 145, + 245, + 161, + 119, + 154, + 387, + 287, + 97, + 57, + 154, + 145, + 36, + 132, + 152, + 39, + 186, + 87, + 164, + 384, + 271, + 333, + 104, + 176, + 332, + 203, + 128, + 392, + 227, + 347, + 69, + 136, + 96, + 7, + 232, + 69, + 314, + 160, + 37, + 229, + 236, + 190, + 32, + 256, + 3, + 44, + 381, + 80, + 208, + 63, + 139, + 8, + 242, + 97, + 30, + 2, + 65, + 163, + 175, + 197, + 260, + 380, + 55, + 195, + 19, + 100, + 50, + 254, + 36, + 34, + 364, + 63, + 58, + 245, + 382, + 296, + 151, + 141, + 54, + 189, + 26, + 300, + 168, + 65, + 137, + 221, + 63, + 239, + 363, + 47, + 364, + 165, + 392, + 61, + 149, + 71, + 164, + 315, + 6, + 387, + 91, + 118, + 178, + 160, + 105, + 296, + 381, + 150, + 33, + 275, + 324, + 248, + 135, + 169, + 389, + 372, + 120, + 373, + 20, + 128, + 154, + 38, + 384, + 243, + 393, + 51, + 238, + 185, + 188, + 169, + 193, + 230, + 295, + 20, + 391, + 261, + 168, + 7, + 284, + 105, + 34, + 315, + 107, + 106, + 228, + 76, + 321, + 142, + 37, + 312, + 51, + 385, + 210, + 77, + 150, + 36, + 155, + 231, + 187, + 113, + 56, + 62, + 194, + 168, + 81, + 280, + 229, + 145, + 311, + 167, + 173, + 180, + 61, + 351, + 286, + 70, + 101, + 337, + 210, + 221, + 147, + 301, + 133, + 5, + 331, + 304, + 192, + 39, + 271, + 210, + 291, + 90, + 237, + 316, + 88, + 136, + 382, + 355, + 354, + 215, + 324, + 180, + 91, + 176, + 216, + 91, + 341, + 41, + 282, + 19, + 177, + 16, + 296, + 206, + 273, + 247, + 276, + 3, + 61, + 351, + 84, + 55, + 329, + 385, + 279, + 352, + 398, + 150, + 77, + 352, + 208, + 95, + 124, + 144, + 95, + 324, + 253, + 88, + 142, + 21, + 203, + 309, + 179, + 162, + 394, + 281, + 84, + 182, + 350, + 296, + 48, + 44, + 64, + 391, + 64, + 368, + 17, + 348, + 239, + 58, + 270, + 312, + 299, + 203, + 128, + 309, + 46, + 377, + 111, + 395, + 272, + 330, + 241, + 214, + 61, + 161, + 226, + 387, + 396, + 38, + 254, + 141, + 399, + 190, + 132, + 263, + 15, + 271, + 330, + 92, + 99, + 269, + 151, + 8, + 372, + 84, + 254, + 94, + 361, + 21, + 322, + 36, + 233, + 169, + 18, + 103, + 66, + 13, + 17, + 2, + 399, + 13, + 355, + 323, + 286, + 102, + 267, + 369, + 72, + 304, + 358, + 271, + 114, + 263, + 214, + 52, + 43, + 364, + 207, + 47, + 377, + 302, + 377, + 305, + 155, + 30, + 365, + 260, + 268, + 107, + 4, + 71, + 372, + 235, + 74, + 365, + 138, + 100, + 192, + 125, + 124, + 400, + 223, + 387, + 121, + 183, + 306, + 72, + 13, + 382, + 130, + 344, + 260, + 45, + 171, + 62, + 219, + 73, + 56, + 208, + 224, + 45, + 172, + 132, + 26, + 170, + 261, + 2, + 346, + 86, + 151, + 200, + 58, + 172, + 223, + 66, + 28, + 4, + 325, + 202, + 55, + 154, + 21, + 148, + 362, + 289, + 22, + 304, + 35, + 156, + 94, + 30, + 369, + 126, + 104, + 229, + 134, + 162, + 89, + 349, + 374, + 143, + 329, + 189, + 330, + 45, + 34, + 93, + 389, + 250, + 146, + 10, + 183, + 393, + 346, + 359, + 318, + 200, + 104, + 390, + 240, + 203, + 289, + 309, + 281, + 200, + 388, + 18, + 110, + 231, + 136, + 59, + 63, + 307, + 266, + 305, + 282, + 276, + 70, + 390, + 163, + 252, + 386, + 194, + 320, + 60, + 50, + 319, + 158, + 107, + 46, + 90, + 43, + 198, + 311, + 192, + 253, + 240, + 24, + 210, + 135, + 258, + 268, + 122, + 60, + 220, + 254, + 94, + 208, + 321, + 49, + 64, + 166, + 27, + 116, + 120, + 165, + 300, + 349, + 114, + 252, + 246, + 342, + 258, + 236, + 39, + 74, + 307, + 61, + 113, + 24, + 67, + 253, + 66, + 347, + 140, + 149, + 3, + 279, + 140, + 1, + 78, + 157, + 100, + 78, + 269, + 314, + 262, + 355, + 113, + 40, + 173, + 256, + 90, + 393, + 298, + 56, + 181, + 279, + 25, + 99, + 82, + 105, + 197, + 360, + 107, + 220, + 122, + 283, + 86, + 250, + 100, + 124, + 354, + 116, + 60, + 321, + 161, + 384, + 73, + 285, + 100, + 349, + 366, + 148, + 49, + 314, + 342, + 6, + 290, + 0, + 375, + 84, + 5, + 66, + 16, + 90, + 76, + 151, + 309, + 176, + 305, + 286, + 180, + 141, + 45, + 309, + 142, + 135, + 129, + 113, + 262, + 152, + 303, + 351, + 337, + 107, + 22, + 324, + 207, + 13, + 4, + 342, + 396, + 238, + 144, + 223, + 183, + 139, + 41, + 366, + 320, + 305, + 386, + 68, + 97, + 242, + 330, + 236, + 188, + 263, + 189, + 148, + 75, + 145, + 360, + 112, + 333, + 107, + 354, + 44, + 337, + 106, + 103, + 62, + 222, + 114, + 193, + 394, + 112, + 8, + 20, + 218, + 9, + 58, + 157, + 104, + 302, + 361, + 374, + 231, + 90, + 232, + 213, + 338, + 355, + 370, + 67, + 279, + 229, + 12, + 59, + 391, + 90, + 48, + 283, + 268, + 284, + 41, + 70, + 356, + 400, + 275, + 141, + 68, + 89, + 84, + 24, + 17, + 387, + 104, + 57, + 300, + 319, + 189, + 146, + 116, + 146, + 334, + 325, + 329, + 114, + 229, + 336, + 252, + 379, + 154, + 194, + 397, + 355, + 147, + 68, + 389, + 208, + 206, + 111, + 379, + 15, + 350, + 273, + 139, + 148, + 79, + 228, + 55, + 337, + 297, + 253, + 223, + 181, + 225, + 256, + 17, + 206, + 237, + 233, + 254, + 201, + 140, + 306, + 99, + 67, + 81, + 270, + 264, + 384, + 343, + 230, + 133, + 212, + 115, + 67, + 319, + 325, + 319, + 200, + 295, + 287, + 147, + 197, + 33, + 122, + 72, + 341, + 396, + 67, + 144, + 332, + 162, + 184, + 209, + 24, + 137, + 342, + 148, + 162, + 169, + 35, + 273, + 262, + 74, + 202, + 154, + 195, + 233, + 209, + 106, + 151, + 310, + 313, + 203, + 357, + 212, + 101, + 280, + 202, + 223, + 122, + 346, + 53, + 59, + 162, + 48, + 133, + 1, + 365, + 306, + 203, + 192, + 119, + 184, + 361, + 73, + 34, + 67, + 140, + 308, + 119, + 275, + 165, + 88, + 90, + 206, + 6, + 335, + 261, + 256, + 164, + 150, + 256, + 49, + 380, + 303, + 267, + 264, + 156, + 377, + 8, + 242, + 52, + 345, + 147, + 165, + 260, + 176, + 255, + 27, + 192, + 278, + 164, + 319, + 340, + 105, + 352, + 24, + 178, + 56, + 121, + 393, + 99, + 334, + 242, + 102, + 251, + 331, + 134, + 102, + 388, + 315, + 251, + 261, + 377, + 355, + 36, + 253, + 177, + 250, + 327, + 250, + 104, + 348, + 165, + 129, + 326, + 371, + 349, + 379, + 34, + 280, + 29, + 275, + 363, + 344, + 51, + 61, + 257, + 75, + 102, + 319, + 202, + 386, + 185, + 131, + 9, + 348, + 358, + 269, + 153, + 74, + 136, + 91, + 223, + 166, + 389, + 289, + 91, + 281, + 335, + 390, + 132, + 42, + 102, + 259, + 90, + 115, + 288, + 95, + 357, + 156, + 177, + 167, + 243, + 97, + 174, + 99, + 366, + 81, + 85, + 123, + 355, + 164, + 23, + 72, + 279, + 241, + 120, + 116, + 400, + 173, + 168, + 330, + 91, + 184, + 209, + 141, + 109, + 363, + 178, + 321, + 316, + 169, + 58, + 311, + 246, + 248, + 148, + 387, + 240, + 368, + 68, + 152, + 149, + 216, + 356, + 168, + 390, + 219, + 32, + 283, + 207, + 391, + 180, + 47, + 61, + 267, + 385, + 366, + 227, + 120, + 384, + 40, + 230, + 207, + 140, + 32, + 298, + 206, + 125, + 142, + 387, + 121, + 256, + 373, + 216, + 187, + 355, + 119, + 200, + 191, + 313, + 116, + 62, + 199, + 229, + 60, + 357, + 35, + 326, + 284, + 363, + 82, + 115, + 189, + 338, + 134, + 61, + 0, + 8, + 394, + 330, + 54, + 287, + 253, + 209, + 309, + 61, + 396, + 296, + 227, + 287, + 282, + 332, + 68, + 104, + 230, + 128, + 162, + 109, + 200, + 142, + 21, + 90, + 39, + 2, + 359, + 382, + 156, + 147, + 97, + 24, + 331, + 238, + 199, + 297, + 298, + 91, + 275, + 21, + 66, + 189, + 286, + 199, + 104, + 249, + 55, + 184, + 323, + 182, + 211, + 144, + 253, + 239, + 17, + 384, + 327, + 355, + 390, + 298, + 232, + 298, + 47, + 180, + 87, + 31, + 142, + 305, + 149, + 246, + 95, + 102, + 186, + 2, + 339, + 13, + 367, + 49, + 306, + 180, + 364, + 160, + 211, + 193, + 45, + 37, + 51, + 98, + 291, + 399, + 230, + 162, + 298, + 71, + 382, + 71, + 131, + 135, + 355, + 158, + 270, + 47, + 101, + 321, + 235, + 3, + 217, + 111, + 227, + 356, + 85, + 44, + 96, + 45, + 57, + 383, + 303, + 95, + 315, + 21, + 81, + 131, + 110, + 102, + 16, + 384, + 269, + 190, + 147, + 257, + 317, + 301, + 34, + 383, + 335, + 392, + 130, + 260, + 372, + 313, + 163, + 280, + 271, + 320, + 23, + 135, + 179, + 318, + 239, + 338, + 227, + 82, + 14, + 156, + 29, + 336, + 353, + 394, + 21, + 344, + 32, + 263, + 234, + 331, + 238, + 302, + 11, + 142, + 44, + 250, + 232, + 145, + 154, + 176, + 213, + 346, + 216, + 277, + 247, + 229, + 263, + 278, + 254, + 106, + 16, + 241, + 116, + 26, + 218, + 397, + 41, + 178, + 253, + 336, + 136, + 163, + 130, + 338, + 362, + 130, + 111, + 103, + 173, + 91, + 383, + 143, + 257, + 52, + 245, + 109, + 243, + 200, + 179, + 302, + 93, + 0, + 369, + 211, + 273, + 179, + 137, + 314, + 189, + 336, + 178, + 86, + 188, + 100, + 73, + 15, + 313, + 140, + 192, + 106, + 136, + 219, + 95, + 120, + 373, + 177, + 319, + 337, + 343, + 68, + 330, + 363, + 96, + 34, + 162, + 209, + 366, + 177, + 304, + 27, + 186, + 234, + 123, + 379, + 188, + 25, + 82, + 391, + 161, + 107, + 273, + 247, + 285, + 149, + 198, + 78, + 63, + 343, + 369, + 292, + 170, + 151, + 226, + 283, + 191, + 383, + 290, + 253, + 223, + 33, + 321, + 350, + 323, + 195, + 238, + 326, + 397, + 106, + 63, + 310, + 7, + 283, + 46, + 18, + 117, + 122, + 103, + 181, + 328, + 334, + 324, + 57, + 142, + 191, + 205, + 334, + 374, + 327, + 19, + 267, + 330, + 244, + 133, + 29, + 354, + 207, + 22, + 169, + 114, + 67, + 72, + 119, + 389, + 12, + 351, + 335, + 204, + 210, + 247, + 311, + 255, + 242, + 46, + 247, + 159, + 10, + 275, + 308, + 199, + 239, + 50, + 58, + 348, + 379, + 92, + 52, + 33, + 276, + 78, + 114, + 182, + 365, + 169, + 187, + 326, + 175, + 233, + 261, + 252, + 12, + 161, + 191, + 260, + 261, + 176, + 213, + 109, + 180, + 394, + 198, + 364, + 92, + 3, + 392, + 78, + 39, + 226, + 95, + 106, + 164, + 381, + 230, + 72, + 273, + 159, + 294, + 191, + 195, + 140, + 66, + 335, + 31, + 174, + 275, + 62, + 249, + 17, + 15, + 217, + 83, + 398, + 154, + 56, + 133, + 367, + 86, + 133, + 127, + 87, + 208, + 267, + 211, + 55, + 209, + 93, + 41, + 204, + 50, + 301, + 279, + 358, + 305, + 297, + 15, + 209, + 157, + 253, + 6, + 252, + 149, + 194, + 105, + 136, + 187, + 279, + 241, + 398, + 35, + 9, + 381, + 240, + 328, + 333, + 296, + 364, + 21, + 4, + 323, + 9, + 395, + 176, + 222, + 271, + 67, + 28, + 239, + 96, + 139, + 74, + 246, + 17, + 60, + 70, + 185, + 270, + 20, + 130, + 234, + 202, + 309, + 73, + 350, + 346, + 388, + 191, + 378, + 383, + 321, + 57, + 257, + 323, + 142, + 17, + 251, + 15, + 149, + 150, + 141, + 182, + 214, + 31, + 41, + 123, + 370, + 260, + 105, + 217, + 256, + 177, + 61, + 236, + 29, + 31, + 209, + 131, + 228, + 292, + 283, + 132, + 358, + 310, + 50, + 138, + 256, + 57, + 243, + 141, + 207, + 146, + 24, + 390, + 178, + 374, + 302, + 24, + 288, + 187, + 266, + 39, + 393, + 291, + 271, + 34, + 205, + 219, + 172, + 350, + 304, + 346, + 361, + 273, + 389, + 132, + 92, + 39, + 2, + 397, + 52, + 109, + 153, + 156, + 188, + 384, + 165, + 190, + 1, + 212, + 45, + 169, + 254, + 340, + 360, + 167, + 188, + 207, + 16, + 197, + 1, + 151, + 393, + 199, + 3, + 60, + 199, + 106, + 301, + 7, + 184, + 9, + 370, + 149, + 275, + 394, + 62, + 155, + 268, + 332, + 357, + 26, + 350, + 17, + 328, + 187, + 322, + 354, + 359, + 243, + 204, + 186, + 299, + 174, + 137, + 268, + 350, + 28, + 300, + 5, + 12, + 400, + 227, + 336, + 237, + 172, + 99, + 77, + 95, + 50, + 39, + 180, + 302, + 140, + 171, + 232, + 349, + 85, + 347, + 265, + 330, + 321, + 269, + 396, + 199, + 40, + 112, + 330, + 212, + 158, + 21, + 339, + 227, + 273, + 238, + 42, + 323, + 295, + 350, + 114, + 28, + 362, + 11, + 140, + 349, + 336, + 316, + 64, + 331, + 395, + 137, + 144, + 154, + 48, + 95, + 270, + 147, + 22, + 22, + 286, + 183, + 217, + 76, + 283, + 84, + 143, + 199, + 14, + 76, + 217, + 129, + 31, + 366, + 28, + 379, + 364, + 119, + 0, + 331, + 371, + 127, + 305, + 33, + 397, + 217, + 140, + 342, + 328, + 130, + 250, + 308, + 346, + 142, + 210, + 167, + 315, + 99, + 85, + 112, + 152, + 61, + 259, + 287, + 377, + 48, + 142, + 165, + 101, + 110, + 14, + 293, + 41, + 5, + 311, + 227, + 363, + 22, + 175, + 371, + 285, + 330, + 355, + 273, + 373, + 251, + 349, + 53, + 12, + 239, + 92, + 51, + 100, + 398, + 9, + 194, + 360, + 16, + 283, + 314, + 140, + 52, + 288, + 310, + 205, + 97, + 47, + 330, + 144, + 255, + 66, + 239, + 205, + 339, + 309, + 259, + 265, + 240, + 34, + 182, + 342, + 192, + 155, + 164, + 279, + 167, + 388, + 240, + 31, + 41, + 66, + 318, + 90, + 1, + 297, + 395, + 264, + 138, + 51, + 235, + 112, + 84, + 207, + 133, + 302, + 281, + 290, + 361, + 39, + 282, + 223, + 182, + 255, + 384, + 400, + 156, + 192, + 316, + 363, + 90, + 380, + 264, + 237, + 51, + 119, + 346, + 200, + 245, + 100, + 317, + 28, + 277, + 263, + 187, + 132, + 139, + 184, + 200, + 256, + 68, + 281, + 379, + 251, + 248, + 192, + 321, + 43, + 29, + 123, + 215, + 76, + 214, + 126, + 327, + 338, + 172, + 154, + 250, + 188, + 75, + 64, + 324, + 353, + 43, + 279, + 279, + 287, + 188, + 333, + 138, + 58, + 157, + 229, + 151, + 338, + 366, + 372, + 392, + 358, + 328, + 291, + 149, + 255, + 342, + 139, + 58, + 23, + 296, + 323, + 333, + 264, + 91, + 12, + 387, + 391, + 192, + 378, + 322, + 177, + 235, + 196, + 322, + 168, + 53, + 371, + 24, + 29, + 86, + 131, + 344, + 134, + 388, + 69, + 38, + 101, + 157, + 259, + 196, + 128, + 359, + 86, + 287, + 19, + 255, + 183, + 149, + 271, + 263, + 52, + 130, + 327, + 98, + 171, + 222, + 123, + 254, + 398, + 400, + 274, + 310, + 398, + 151, + 282, + 106, + 39, + 257, + 360, + 392, + 57, + 364, + 181, + 56, + 344, + 347, + 41, + 250, + 386, + 105, + 236, + 34, + 370, + 278, + 65, + 361, + 212, + 41, + 8, + 296, + 287, + 291, + 324, + 366, + 30, + 174, + 71, + 376, + 357, + 141, + 359, + 400, + 398, + 63, + 212, + 302, + 43, + 139, + 214, + 248, + 321, + 266, + 116, + 365, + 73, + 54, + 70, + 37, + 252, + 366, + 112, + 195, + 165, + 71, + 327, + 171, + 388, + 88, + 352, + 18, + 162, + 391, + 92, + 15, + 34, + 352, + 77, + 281, + 354, + 272, + 268, + 341, + 193, + 20, + 300, + 56, + 147, + 46, + 234, + 125, + 51, + 303, + 344, + 249, + 1, + 61, + 345, + 93, + 128, + 90, + 215, + 383, + 365, + 69, + 123, + 199, + 330, + 203, + 239, + 188, + 40, + 388, + 304, + 31, + 102, + 120, + 350, + 251, + 215, + 32, + 295, + 82, + 12, + 119, + 129, + 380, + 246, + 88, + 362, + 366, + 31, + 254, + 133, + 15, + 61, + 98, + 30, + 382, + 75, + 201, + 395, + 198, + 148, + 388, + 244, + 210, + 10, + 261, + 390, + 121, + 55, + 89, + 306, + 166, + 119, + 74, + 283, + 293, + 88, + 57, + 373, + 330, + 248, + 20, + 184, + 243, + 266, + 230, + 121, + 341, + 204, + 281, + 307, + 148, + 133, + 145, + 144, + 50, + 26, + 334, + 90, + 2, + 115, + 50, + 338, + 130, + 192, + 56, + 32, + 144, + 237, + 197, + 52, + 397, + 277, + 211, + 40, + 164, + 289, + 39, + 232, + 383, + 83, + 132, + 159, + 217, + 380, + 253, + 295, + 358, + 297, + 8, + 131, + 259, + 42, + 249, + 309, + 347, + 108, + 244, + 116, + 356, + 287, + 299, + 292, + 217, + 388, + 380, + 5, + 64, + 236, + 219, + 254, + 40, + 76, + 253, + 288, + 232, + 172, + 399, + 65, + 71, + 68, + 9, + 197, + 173, + 315, + 27, + 109, + 369, + 204, + 97, + 322, + 217, + 247, + 31, + 198, + 258, + 253, + 170, + 259, + 75, + 183, + 397, + 22, + 217, + 260, + 51, + 38, + 313, + 257, + 344, + 199, + 395, + 366, + 395, + 89, + 159, + 321, + 394, + 369, + 205, + 299, + 49, + 108, + 276, + 12, + 303, + 23, + 168, + 286, + 286, + 90, + 91, + 400, + 149, + 136, + 330, + 239, + 231, + 234, + 226, + 292, + 249, + 79, + 2, + 398, + 166, + 195, + 353, + 210, + 250, + 144, + 355, + 103, + 342, + 167, + 319, + 121, + 295, + 150, + 316, + 349, + 333, + 317, + 193, + 17, + 182, + 369, + 28, + 131, + 221, + 274, + 221, + 322, + 72, + 274, + 395, + 150, + 217, + 341, + 175, + 14, + 284, + 351, + 249, + 316, + 212, + 386, + 273, + 125, + 102, + 99, + 146, + 206, + 33, + 330, + 201, + 370, + 359, + 336, + 339, + 288, + 368, + 219, + 398, + 332, + 166, + 8, + 285, + 348, + 94, + 194, + 384, + 222, + 365, + 154, + 102, + 325, + 351, + 135, + 37, + 367, + 399, + 40, + 278, + 26, + 210, + 317, + 49, + 24, + 72, + 140, + 340, + 220, + 183, + 168, + 245, + 337, + 100, + 237, + 246, + 91, + 180, + 331, + 203, + 245, + 131, + 320, + 359, + 334, + 330, + 72, + 209, + 316, + 242, + 221, + 131, + 67, + 111, + 197, + 398, + 79, + 129, + 171, + 377, + 259, + 340, + 88, + 26, + 3, + 188, + 79, + 118, + 281, + 220, + 52, + 262, + 132, + 294, + 194, + 326, + 314, + 225, + 51, + 310, + 296, + 314, + 370, + 84, + 141, + 73, + 251, + 250, + 313, + 248, + 372, + 319, + 120, + 192, + 0, + 186, + 315, + 126, + 140, + 153, + 192, + 151, + 358, + 269, + 325, + 390, + 224, + 36, + 367, + 70, + 366, + 6, + 24, + 273, + 388, + 360, + 240, + 249, + 365, + 100, + 266, + 40, + 362, + 36, + 145, + 337, + 209, + 138, + 167, + 67, + 354, + 346, + 301, + 394, + 114, + 184, + 303, + 157, + 324, + 161, + 185, + 362, + 268, + 319, + 201, + 359, + 87, + 78, + 55, + 376, + 279, + 302, + 316, + 345, + 174, + 79, + 26, + 137, + 394, + 179, + 340, + 87, + 54, + 185, + 67, + 316, + 363, + 367, + 68, + 177, + 260, + 91, + 247, + 54, + 235, + 332, + 51, + 91, + 249, + 86, + 16, + 35, + 361, + 2, + 320, + 361, + 14, + 210, + 186, + 152, + 230, + 380, + 91, + 336, + 371, + 276, + 62, + 357, + 326, + 78, + 134, + 283, + 148, + 339, + 26, + 195, + 367, + 263, + 16, + 139, + 210, + 202, + 30, + 54, + 60, + 10, + 120, + 307, + 392, + 384, + 193, + 184, + 375, + 167, + 315, + 292, + 251, + 61, + 53, + 203, + 385, + 358, + 377, + 53, + 29, + 132, + 53, + 350, + 274, + 45, + 147, + 350, + 206, + 256, + 397, + 146, + 295, + 36, + 187, + 110, + 200, + 25, + 385, + 320, + 144, + 80, + 309, + 131, + 295, + 229, + 294, + 187, + 127, + 15, + 227, + 43, + 38, + 51, + 155, + 19, + 96, + 34, + 284, + 141, + 326, + 212, + 337, + 78, + 228, + 398, + 237, + 384, + 138, + 324, + 0, + 120, + 149, + 188, + 76, + 24, + 257, + 315, + 376, + 57, + 142, + 113, + 373, + 135, + 59, + 156, + 277, + 127, + 382, + 219, + 111, + 327, + 308, + 231, + 343, + 280, + 193, + 83, + 9, + 118, + 104, + 294, + 253, + 250, + 379, + 109, + 104, + 178, + 77, + 224, + 316, + 233, + 149, + 384, + 362, + 184, + 359, + 143, + 38, + 203, + 99, + 343, + 259, + 245, + 75, + 39, + 385, + 302, + 153, + 313, + 81, + 387, + 333, + 36, + 44, + 237, + 132, + 74, + 298, + 101, + 89, + 66, + 329, + 119, + 310, + 275, + 125, + 384, + 384, + 199, + 60, + 385, + 166, + 162, + 123, + 107, + 63, + 306, + 355, + 209, + 254, + 187, + 196, + 55, + 339, + 353, + 25, + 81, + 18, + 304, + 53, + 213, + 81, + 283, + 323, + 245, + 167, + 56, + 30, + 336, + 207, + 246, + 127, + 60, + 266, + 73, + 312, + 132, + 257, + 86, + 87, + 287, + 251, + 156, + 323, + 301, + 32, + 56, + 329, + 111, + 102, + 36, + 216, + 364, + 74, + 169, + 120, + 288, + 340, + 48, + 5, + 225, + 96, + 347, + 182, + 168, + 304, + 147, + 314, + 118, + 124, + 311, + 265, + 262, + 116, + 224, + 369, + 165, + 306, + 60, + 310, + 392, + 32, + 314, + 266, + 314, + 310, + 139, + 59, + 184, + 165, + 389, + 312, + 275, + 137, + 38, + 253, + 31, + 357, + 199, + 279, + 33, + 262, + 385, + 9, + 249, + 265, + 386, + 14, + 341, + 3, + 248, + 167, + 98, + 364, + 364, + 373, + 400, + 58, + 216, + 399, + 84, + 380, + 191, + 311, + 159, + 22, + 193, + 292, + 356, + 30, + 5, + 24, + 207, + 275, + 103, + 315, + 15, + 206, + 40, + 125, + 43, + 358, + 393, + 271, + 393, + 53, + 26, + 85, + 173, + 327, + 321, + 312, + 342, + 312, + 183, + 259, + 286, + 378, + 221, + 367, + 242, + 164, + 229, + 319, + 70, + 354, + 203, + 307, + 278, + 346, + 72, + 261, + 169, + 323, + 335, + 256, + 222, + 351, + 263, + 148, + 55, + 105, + 223, + 79, + 113, + 318, + 336, + 72, + 99, + 98, + 317, + 143, + 307, + 33, + 254, + 288, + 7, + 144, + 186, + 280, + 58, + 256, + 221, + 386, + 28, + 155, + 190, + 216, + 12, + 380, + 260, + 177, + 141, + 45, + 108, + 378, + 166, + 279, + 120, + 39, + 277, + 56, + 248, + 199, + 112, + 299, + 137, + 114, + 329, + 56, + 307, + 312, + 220, + 251, + 18, + 5, + 36, + 44, + 379, + 88, + 36, + 309, + 178, + 96, + 261, + 356, + 37, + 37, + 331, + 232, + 373, + 91, + 28, + 193, + 116, + 344, + 316, + 60, + 122, + 16, + 4, + 236, + 243, + 318, + 99, + 309, + 260, + 319, + 238, + 223, + 128, + 364, + 227, + 108, + 167, + 396, + 157, + 360, + 18, + 264, + 227, + 155, + 291, + 75, + 255, + 272, + 51, + 392, + 49, + 49, + 92, + 355, + 92, + 22, + 160, + 45, + 148, + 282, + 67, + 214, + 266, + 23, + 215, + 333, + 64, + 372, + 141, + 211, + 334, + 159, + 336, + 202, + 393, + 361, + 60, + 218, + 19, + 248, + 14, + 385, + 389, + 359, + 390, + 76, + 24, + 169, + 384, + 44, + 279, + 120, + 228, + 72, + 307, + 31, + 259, + 125, + 155, + 287, + 227, + 51, + 183, + 4, + 384, + 104, + 266, + 133, + 110, + 196, + 338, + 110, + 301, + 83, + 15, + 160, + 301, + 190, + 289, + 253, + 152, + 352, + 360, + 100, + 349, + 138, + 129, + 375, + 379, + 395, + 194, + 31, + 142, + 182, + 40, + 15, + 259, + 312, + 385, + 72, + 215, + 150, + 202, + 333, + 167, + 189, + 354, + 304, + 0, + 311, + 321, + 254, + 52, + 316, + 400, + 265, + 270, + 136, + 41, + 116, + 14, + 384, + 111, + 399, + 201, + 6, + 312, + 115, + 153, + 107, + 213, + 295, + 376, + 254, + 296, + 341, + 79, + 28, + 16, + 49, + 364, + 232, + 24, + 89, + 252, + 328, + 247, + 58, + 302, + 27, + 373, + 106, + 95, + 242, + 344, + 271, + 253, + 286, + 296, + 199, + 180, + 349, + 328, + 353, + 338, + 77, + 193, + 29, + 372, + 220, + 17, + 33, + 375, + 275, + 128, + 325, + 347, + 192, + 312, + 38, + 65, + 87, + 152, + 42, + 371, + 75, + 245, + 237, + 321, + 200, + 243, + 178, + 384, + 110, + 59, + 366, + 170, + 72, + 158, + 169, + 372, + 84, + 372, + 267, + 41, + 26, + 81, + 191, + 57, + 344, + 42, + 18, + 136, + 345, + 262, + 46, + 104, + 21, + 109, + 167, + 291, + 79, + 284, + 346, + 303, + 198, + 266, + 397, + 128, + 60, + 222, + 310, + 28, + 216, + 114, + 271, + 252, + 100, + 25, + 245, + 329, + 36, + 200, + 141, + 278, + 150, + 236, + 372, + 281, + 139, + 114, + 170, + 235, + 71, + 306, + 309, + 186, + 256, + 21, + 330, + 377, + 82, + 322, + 369, + 92, + 184, + 358, + 198, + 240, + 259, + 219, + 261, + 334, + 100, + 177, + 246, + 386, + 383, + 11, + 73, + 292, + 48, + 249, + 184, + 0, + 192, + 1, + 90, + 69, + 354, + 193, + 265, + 8, + 217, + 166, + 282, + 292, + 268, + 169, + 283, + 29, + 273, + 200, + 46, + 193, + 174, + 357, + 335, + 133, + 370, + 145, + 296, + 49, + 267, + 15, + 49, + 377, + 149, + 194, + 342, + 22, + 378, + 234, + 315, + 7, + 85, + 312, + 105, + 319, + 61, + 291, + 206, + 397, + 139, + 212, + 334, + 392, + 14, + 157, + 221, + 73, + 356, + 344, + 66, + 309, + 62, + 241, + 135, + 201, + 325, + 356, + 246, + 396, + 329, + 351, + 83, + 343, + 104, + 140, + 201, + 162, + 126, + 63, + 20, + 22, + 15, + 259, + 195, + 79, + 171, + 282, + 255, + 275, + 266, + 323, + 373, + 19, + 199, + 161, + 366, + 374, + 49, + 319, + 89, + 339, + 240, + 215, + 377, + 212, + 222, + 171, + 81, + 166, + 190, + 99, + 178, + 321, + 300, + 194, + 242, + 16, + 384, + 131, + 304, + 142, + 84, + 42, + 23, + 238, + 16, + 43, + 251, + 254, + 65, + 309, + 156, + 177, + 169, + 372, + 13, + 141, + 153, + 46, + 357, + 98, + 188, + 76, + 260, + 38, + 13, + 27, + 301, + 131, + 101, + 364, + 377, + 158, + 185, + 291, + 371, + 180, + 283, + 276, + 186, + 267, + 279, + 281, + 306, + 279, + 357, + 124, + 340, + 137, + 298, + 213, + 272, + 42, + 344, + 320, + 247, + 256, + 48, + 221, + 249, + 260, + 28, + 74, + 354, + 237, + 218, + 17, + 264, + 1, + 157, + 289, + 320, + 284, + 140, + 226, + 391, + 92, + 17, + 23, + 133, + 31, + 40, + 344, + 159, + 257, + 181, + 300, + 228, + 53, + 171, + 38, + 28, + 223, + 174, + 317, + 14, + 225, + 384, + 87, + 54, + 328, + 45, + 254, + 334, + 177, + 175, + 115, + 359, + 299, + 320, + 316, + 326, + 277, + 236, + 106, + 325, + 45, + 83, + 282, + 340, + 94, + 319, + 100, + 39, + 128, + 394, + 44, + 370, + 234, + 15, + 45, + 181, + 33, + 255, + 239, + 77, + 36, + 307, + 142, + 194, + 371, + 72, + 128, + 233, + 16, + 313, + 345, + 390, + 183, + 181, + 14, + 215, + 19, + 207, + 0, + 113, + 143, + 167, + 396, + 120, + 343, + 242, + 381, + 140, + 141, + 2, + 27, + 176, + 218, + 266, + 227, + 169, + 205, + 272, + 33, + 175, + 185, + 67, + 282, + 332, + 272, + 297, + 398, + 64, + 357, + 34, + 247, + 363, + 223, + 133, + 153, + 266, + 229, + 382, + 117, + 95, + 81, + 117, + 321, + 347, + 83, + 259, + 17, + 202, + 6, + 26, + 163, + 297, + 122, + 290, + 285, + 322, + 391, + 310, + 24, + 238, + 55, + 329, + 51, + 305, + 184, + 0, + 319, + 40, + 82, + 252, + 250, + 167, + 367, + 351, + 56, + 183, + 279, + 103, + 4, + 342, + 107, + 293, + 340, + 278, + 298, + 9, + 194, + 128, + 101, + 357, + 234, + 55, + 55, + 16, + 347, + 261, + 220, + 320, + 363, + 233, + 220, + 24, + 208, + 202, + 398, + 71, + 113, + 109, + 361, + 389, + 368, + 184, + 30, + 260, + 36, + 344, + 210, + 307, + 309, + 205, + 57, + 29, + 150, + 301, + 354, + 252, + 385, + 15, + 357, + 379, + 204, + 217, + 145, + 122, + 267, + 219, + 181, + 59, + 127, + 61, + 95, + 24, + 93, + 107, + 287, + 294, + 342, + 9, + 133, + 249, + 61, + 124, + 5, + 294, + 256, + 352, + 278, + 203, + 3, + 299, + 120, + 230, + 72, + 225, + 291, + 154, + 289, + 195, + 220, + 201, + 85, + 7, + 383, + 318, + 169, + 362, + 357, + 25, + 22, + 270, + 194, + 5, + 282, + 274, + 239, + 92, + 319, + 0, + 339, + 286, + 139, + 143, + 57, + 183, + 38, + 127, + 257, + 352, + 115, + 148, + 94, + 378, + 84, + 163, + 274, + 237, + 2, + 355, + 22, + 151, + 371, + 76, + 187, + 36, + 80, + 73, + 335, + 76, + 188, + 282, + 253, + 55, + 266, + 80, + 217, + 201, + 331, + 132, + 357, + 236, + 180, + 212, + 334, + 125, + 65, + 312, + 35, + 137, + 206, + 111, + 163, + 145, + 54, + 289, + 296, + 49, + 38, + 227, + 285, + 189, + 237, + 164, + 73, + 300, + 327, + 301, + 95, + 331, + 130, + 400, + 150, + 78, + 339, + 111, + 311, + 55, + 86, + 257, + 130, + 137, + 235, + 334, + 312, + 209, + 324, + 342, + 123, + 254, + 192, + 179, + 391, + 347, + 360, + 313, + 239, + 59, + 162, + 113, + 336, + 161, + 315, + 221, + 46, + 116, + 207, + 365, + 97, + 277, + 374, + 259, + 253, + 90, + 394, + 304, + 389, + 49, + 274, + 154, + 189, + 58, + 2, + 286, + 346, + 148, + 291, + 51, + 186, + 156, + 119, + 175, + 134, + 298, + 360, + 192, + 115, + 222, + 343, + 21, + 164, + 336, + 102, + 116, + 340, + 238, + 31, + 136, + 358, + 71, + 88, + 64, + 148, + 159, + 147, + 72, + 279, + 224, + 112, + 386, + 158, + 286, + 94, + 138, + 350, + 324, + 350, + 43, + 49, + 369, + 95, + 376, + 160, + 381, + 322, + 167, + 323, + 308, + 292, + 127, + 262, + 292, + 261, + 265, + 260, + 70, + 384, + 286, + 236, + 189, + 118, + 40, + 183, + 227, + 221, + 257, + 378, + 151, + 271, + 241, + 320, + 21, + 23, + 352, + 132, + 35, + 213, + 8, + 367, + 253, + 248, + 297, + 215, + 319, + 256, + 346, + 135, + 25, + 262, + 78, + 360, + 284, + 279, + 288, + 95, + 124, + 209, + 142, + 247, + 392, + 224, + 323, + 304, + 20, + 377, + 332, + 246, + 296, + 368, + 243, + 372, + 196, + 270, + 163, + 372, + 74, + 194, + 320, + 61, + 62, + 239, + 80, + 171, + 218, + 188, + 46, + 74, + 237, + 257, + 35, + 37, + 23, + 34, + 42, + 51, + 24, + 68, + 110, + 254, + 293, + 395, + 49, + 1, + 202, + 163, + 85, + 163, + 69, + 283, + 23, + 253, + 357, + 35, + 157, + 23, + 71, + 200, + 159, + 181, + 189, + 3, + 170, + 48, + 343, + 259, + 318, + 397, + 331, + 24, + 125, + 295, + 316, + 328, + 270, + 343, + 391, + 385, + 333, + 139, + 44, + 165, + 362, + 233, + 145, + 253, + 112, + 167, + 312, + 382, + 106, + 174, + 137, + 148, + 251, + 120, + 249, + 333, + 290, + 207, + 387, + 110, + 111, + 86, + 38, + 206, + 204, + 172, + 309, + 95, + 251, + 120, + 26, + 359, + 204, + 356, + 336, + 372, + 379, + 176, + 90, + 277, + 188, + 293, + 337, + 323, + 36, + 342, + 353, + 128, + 41, + 373, + 258, + 353, + 134, + 332, + 83, + 227, + 279, + 98, + 243, + 296, + 171, + 262, + 236, + 179, + 239, + 116, + 177, + 21, + 326, + 3, + 108, + 305, + 139, + 181, + 177, + 1, + 3, + 77, + 232, + 324, + 12, + 187, + 230, + 355, + 378, + 376, + 113, + 75, + 81, + 95, + 233, + 364, + 172, + 342, + 100, + 37, + 137, + 174, + 297, + 90, + 149, + 43, + 217, + 238, + 166, + 156, + 80, + 196, + 90, + 62, + 312, + 101, + 150, + 376, + 76, + 137, + 214, + 336, + 256, + 352, + 232, + 387, + 341, + 342, + 9, + 308, + 121, + 39, + 322, + 376, + 351, + 336, + 64, + 172, + 77, + 134, + 363, + 140, + 35, + 190, + 61, + 201, + 52, + 365, + 62, + 325, + 253, + 11, + 54, + 246, + 360, + 189, + 161, + 394, + 18, + 51, + 219, + 5, + 325, + 226, + 7, + 101, + 333, + 357, + 283, + 68, + 215, + 172, + 127, + 57, + 204, + 212, + 83, + 289, + 33, + 378, + 23, + 274, + 221, + 128, + 127, + 383, + 326, + 302, + 137, + 60, + 105, + 123, + 254, + 377, + 193, + 136, + 98, + 356, + 257, + 370, + 130, + 199, + 54, + 70, + 238, + 288, + 342, + 140, + 236, + 111, + 4, + 38, + 31, + 230, + 308, + 36, + 174, + 198, + 44, + 226, + 240, + 331, + 222, + 317, + 309, + 394, + 218, + 274, + 108, + 271, + 186, + 33, + 113, + 310, + 7, + 248, + 54, + 117, + 332, + 52, + 213, + 339, + 132, + 228, + 102, + 153, + 250, + 264, + 152, + 11, + 292, + 107, + 208, + 333, + 276, + 56, + 365, + 35, + 338, + 24, + 134, + 39, + 239, + 270, + 314, + 12, + 389, + 99, + 379, + 25, + 161, + 79, + 87, + 389, + 370, + 338, + 238, + 199, + 114, + 119, + 105, + 58, + 97, + 239, + 14, + 31, + 90, + 107, + 94, + 51, + 274, + 159, + 194, + 97, + 52, + 398, + 58, + 387, + 316, + 336, + 251, + 208, + 67, + 347, + 374, + 17, + 119, + 258, + 247, + 247, + 1, + 34, + 374, + 38, + 22, + 354, + 232, + 30, + 370, + 387, + 318, + 334, + 241, + 373, + 76, + 380, + 250, + 242, + 388, + 261, + 189, + 116, + 323, + 217, + 396, + 262, + 385, + 79, + 359, + 222, + 191, + 176, + 206, + 147, + 74, + 367, + 72, + 394, + 235, + 162, + 229, + 133, + 161, + 261, + 47, + 330, + 161, + 200, + 67, + 208, + 191, + 271, + 330, + 389, + 297, + 226, + 322, + 42, + 296, + 143, + 261, + 63, + 271, + 240, + 136, + 186, + 57, + 335, + 156, + 372, + 65, + 216, + 256, + 335, + 258, + 81, + 76, + 165, + 184, + 384, + 171, + 105, + 308, + 296, + 212, + 376, + 211, + 224, + 238, + 319, + 287, + 315, + 2, + 226, + 153, + 98, + 207, + 209, + 288, + 337, + 225, + 361, + 36, + 249, + 163, + 312, + 314, + 67, + 164, + 385, + 188, + 139, + 102, + 398, + 396, + 228, + 237, + 104, + 99, + 154, + 180, + 309, + 190, + 337, + 313, + 35, + 227, + 292, + 150, + 231, + 169, + 154, + 373, + 271, + 385, + 255, + 330, + 347, + 399, + 164, + 163, + 107, + 319, + 319, + 79, + 130, + 155, + 65, + 82, + 333, + 361, + 326, + 285, + 300, + 299, + 21, + 252, + 107, + 119, + 288, + 117, + 76, + 163, + 123, + 207, + 18, + 44, + 97, + 309, + 337, + 222, + 108, + 397, + 340, + 361, + 24, + 304, + 103, + 180, + 93, + 49, + 352, + 35, + 204, + 95, + 71, + 353, + 280, + 325, + 303, + 394, + 327, + 376, + 187, + 9, + 90, + 184, + 336, + 340, + 391, + 323, + 129, + 192, + 262, + 130, + 257, + 244, + 234, + 13, + 201, + 355, + 154, + 283, + 224, + 371, + 71, + 144, + 289, + 257, + 141, + 232, + 8, + 129, + 244, + 285, + 115, + 131, + 347, + 62, + 334, + 244, + 231, + 37, + 213, + 126, + 245, + 301, + 240, + 175, + 276, + 263, + 21, + 84, + 119, + 171, + 90, + 54, + 51, + 220, + 117, + 354, + 136, + 181, + 208, + 375, + 227, + 46, + 290, + 228, + 383, + 125, + 233, + 266, + 363, + 344, + 249, + 63, + 295, + 34, + 149, + 195, + 380, + 141, + 4, + 121, + 336, + 108, + 182, + 271, + 3, + 190, + 242, + 133, + 35, + 48, + 83, + 376, + 21, + 187, + 88, + 285, + 76, + 159, + 76, + 191, + 330, + 98, + 147, + 33, + 186, + 218, + 338, + 179, + 367, + 109, + 158, + 171, + 124, + 100, + 363, + 155, + 238, + 303, + 348, + 55, + 122, + 224, + 347, + 356, + 46, + 125, + 165, + 164, + 143, + 73, + 50, + 78, + 198, + 44, + 152, + 26, + 224, + 298, + 134, + 386, + 174, + 3, + 346, + 397, + 9, + 357, + 225, + 268, + 306, + 346, + 71, + 195, + 16, + 54, + 95, + 345, + 74, + 195, + 222, + 265, + 298, + 208, + 384, + 145, + 67, + 347, + 394, + 323, + 83, + 255, + 125, + 181, + 74, + 217, + 56, + 216, + 144, + 74, + 282, + 395, + 366, + 289, + 11, + 119, + 260, + 20, + 114, + 38, + 25, + 398, + 61, + 203, + 219, + 299, + 395, + 379, + 128, + 243, + 356, + 361, + 285, + 39, + 28, + 108, + 269, + 85, + 375, + 4, + 23, + 46, + 387, + 122, + 251, + 188, + 136, + 374, + 15, + 147, + 390, + 278, + 395, + 321, + 144, + 122, + 218, + 304, + 271, + 187, + 106, + 375, + 314, + 369, + 250, + 57, + 301, + 16, + 155, + 321, + 375, + 36, + 71, + 42, + 291, + 165, + 397, + 257, + 327, + 260, + 57, + 392, + 42, + 244, + 25, + 129, + 318, + 345, + 34, + 196, + 68, + 130, + 377, + 46, + 230, + 244, + 30, + 187, + 26, + 299, + 19, + 362, + 305, + 224, + 119, + 85, + 218, + 18, + 78, + 104, + 266, + 343, + 283, + 313, + 107, + 201, + 241, + 147, + 45, + 364, + 19, + 225, + 375, + 264, + 147, + 37, + 121, + 266, + 240, + 234, + 397, + 132, + 207, + 237, + 213, + 180, + 123, + 309, + 26, + 155, + 98, + 200, + 15, + 338, + 63, + 133, + 76, + 43, + 156, + 283, + 181, + 28, + 106, + 68, + 160, + 30, + 326, + 81, + 4, + 284, + 376, + 245, + 266, + 243, + 138, + 62, + 237, + 56, + 227, + 199, + 304, + 103, + 388, + 78, + 151, + 200, + 379, + 245, + 382, + 9, + 99, + 303, + 203, + 91, + 103, + 301, + 353, + 32, + 30, + 238, + 272, + 207, + 76, + 365, + 372, + 153, + 122, + 102, + 318, + 70, + 154, + 246, + 105, + 45, + 185, + 77, + 180, + 119, + 279, + 307, + 216, + 287, + 32, + 121, + 240, + 375, + 342, + 189, + 373, + 181, + 153, + 185, + 204, + 191, + 183, + 297, + 114, + 61, + 1, + 323, + 182, + 367, + 197, + 112, + 298, + 66, + 177, + 39, + 130, + 291, + 91, + 367, + 369, + 398, + 199, + 32, + 186, + 244, + 326, + 358, + 16, + 165, + 33, + 339, + 243, + 177, + 239, + 70, + 103, + 73, + 285, + 291, + 383, + 241, + 228, + 165, + 126, + 189, + 183, + 165, + 287, + 251, + 316, + 80, + 31, + 76, + 230, + 203, + 276, + 346, + 344, + 78, + 13, + 260, + 83, + 241, + 110, + 273, + 156, + 314, + 247, + 351, + 65, + 242, + 211, + 82, + 217, + 260, + 125, + 9, + 133, + 134, + 6, + 280, + 165, + 252, + 357, + 107, + 381, + 234, + 270, + 142, + 138, + 285, + 31, + 227, + 386, + 241, + 189, + 176, + 317, + 121, + 353, + 99, + 75, + 159, + 273, + 381, + 113, + 162, + 77, + 54, + 100, + 152, + 129, + 291, + 284, + 290, + 151, + 106, + 10, + 56, + 116, + 172, + 5, + 109, + 181, + 349, + 324, + 194, + 138, + 300, + 209, + 101, + 34, + 194, + 271, + 271, + 392, + 11, + 214, + 96, + 90, + 307, + 161, + 394, + 272, + 243, + 277, + 245, + 326, + 292, + 79, + 264, + 281, + 317, + 267, + 51, + 92, + 293, + 155, + 35, + 183, + 373, + 171, + 290, + 63, + 326, + 207, + 66, + 345, + 227, + 392, + 120, + 386, + 306, + 262, + 391, + 97, + 230, + 293, + 339, + 307, + 269, + 80, + 170, + 159, + 330, + 140, + 203, + 25, + 347, + 32, + 80, + 202, + 23, + 332, + 20, + 350, + 358, + 218, + 202, + 271, + 60, + 320, + 266, + 34, + 224, + 97, + 345, + 252, + 121, + 306, + 19, + 151, + 127, + 120, + 306, + 46, + 73, + 220, + 366, + 338, + 289, + 328, + 312, + 329, + 102, + 368, + 65, + 59, + 168, + 51, + 367, + 89, + 391, + 212, + 44, + 102, + 97, + 124, + 123, + 268, + 73, + 146, + 156, + 77, + 278, + 47, + 395, + 95, + 26, + 383, + 123, + 384, + 131, + 298, + 177, + 97, + 342, + 225, + 276, + 68, + 275, + 207, + 324, + 352, + 368, + 289, + 102, + 300, + 165, + 251, + 201, + 32, + 292, + 194, + 150, + 387, + 344, + 183, + 90, + 7, + 119, + 159, + 22, + 228, + 210, + 168, + 277, + 363, + 77, + 278, + 390, + 350, + 36, + 363, + 248, + 16, + 116, + 54, + 59, + 326, + 177, + 205, + 306, + 69, + 30, + 376, + 399, + 268, + 0, + 273, + 168, + 140, + 173, + 325, + 71, + 256, + 243, + 195, + 77, + 383, + 311, + 228, + 330, + 38, + 84, + 234, + 87, + 164, + 218, + 233, + 30, + 302, + 387, + 363, + 270, + 143, + 375, + 128, + 10, + 198, + 11, + 375, + 177, + 129, + 79, + 52, + 344, + 298, + 14, + 22, + 177, + 188, + 8, + 35, + 287, + 325, + 118, + 19, + 196, + 203, + 328, + 148, + 310, + 142, + 222, + 212, + 241, + 378, + 49, + 54, + 75, + 361, + 307, + 220, + 225, + 26, + 87, + 164, + 314, + 84, + 326, + 167, + 250, + 56, + 2, + 230, + 127, + 391, + 346, + 159, + 385, + 68, + 134, + 376, + 196, + 82, + 338, + 27, + 82, + 116, + 346, + 43, + 233, + 179, + 165, + 68, + 47, + 232, + 251, + 236, + 72, + 57, + 59, + 187, + 97, + 293, + 29, + 38, + 363, + 137, + 159, + 281, + 99, + 166, + 194, + 36, + 75, + 243, + 292, + 289, + 33, + 98, + 314, + 376, + 261, + 172, + 399, + 160, + 4, + 159, + 26, + 336, + 270, + 127, + 1, + 326, + 311, + 162, + 51, + 321, + 328, + 283, + 373, + 98, + 28, + 236, + 123, + 7, + 324, + 292, + 221, + 15, + 241, + 49, + 382, + 93, + 321, + 224, + 154, + 308, + 110, + 168, + 375, + 200, + 93, + 298, + 162, + 166, + 361, + 151, + 193, + 325, + 331, + 304, + 192, + 226, + 119, + 339, + 324, + 293, + 262, + 129, + 261, + 151, + 331, + 24, + 160, + 45, + 336, + 228, + 20, + 169, + 364, + 258, + 22, + 0, + 298, + 373, + 309, + 284, + 242, + 390, + 10, + 128, + 74, + 285, + 139, + 356, + 314, + 389, + 255, + 236, + 244, + 282, + 193, + 337, + 24, + 99, + 187, + 232, + 171, + 157, + 265, + 332, + 76, + 355, + 357, + 240, + 73, + 40, + 45, + 135, + 6, + 282, + 301, + 270, + 22, + 150, + 84, + 208, + 400, + 251, + 339, + 165, + 317, + 127, + 74, + 113, + 320, + 68, + 73, + 82, + 61, + 107, + 376, + 85, + 231, + 344, + 224, + 327, + 34, + 267, + 104, + 286, + 180, + 134, + 26, + 47, + 381, + 358, + 143, + 335, + 49, + 2, + 320, + 388, + 312, + 290, + 0, + 362, + 230, + 155, + 184, + 383, + 393, + 244, + 207, + 22, + 384, + 165, + 300, + 164, + 62, + 193, + 82, + 208, + 319, + 228, + 380, + 168, + 181, + 78, + 109, + 19, + 353, + 265, + 25, + 215, + 267, + 302, + 0, + 221, + 134, + 296, + 44, + 312, + 129, + 53, + 241, + 8, + 353, + 369, + 104, + 395, + 204, + 37, + 223, + 130, + 206, + 316, + 224, + 343, + 241, + 240, + 270, + 238, + 41, + 109, + 366, + 256, + 8, + 278, + 106, + 309, + 275, + 321, + 292, + 43, + 98, + 21, + 277, + 136, + 257, + 110, + 220, + 334, + 320, + 152, + 381, + 96, + 57, + 63, + 104, + 169, + 167, + 195, + 135, + 348, + 32, + 56, + 359, + 223, + 132, + 322, + 309, + 291, + 308, + 145, + 34, + 105, + 86, + 201, + 126, + 354, + 155, + 397, + 115, + 280, + 135, + 240, + 230, + 314, + 61, + 300, + 397, + 258, + 246, + 186, + 207, + 14, + 214, + 232, + 123, + 156, + 209, + 278, + 255, + 399, + 101, + 352, + 399, + 391, + 292, + 62, + 130, + 235, + 104, + 306, + 274, + 203, + 168, + 302, + 190, + 396, + 203, + 157, + 340, + 228, + 130, + 243, + 57, + 330, + 367, + 54, + 269, + 161, + 257, + 231, + 236, + 189, + 107, + 104, + 390, + 370, + 303, + 377, + 28, + 200, + 162, + 231, + 316, + 35, + 395, + 317, + 178, + 373, + 285, + 253, + 272, + 250, + 61, + 154, + 40, + 211, + 50, + 379, + 291, + 144, + 330, + 13, + 366, + 305, + 229, + 298, + 156, + 386, + 355, + 180, + 248, + 360, + 375, + 255, + 339, + 110, + 375, + 90, + 75, + 88, + 118, + 66, + 397, + 138, + 377, + 81, + 201, + 90, + 178, + 114, + 214, + 135, + 392, + 244, + 158, + 194, + 399, + 152, + 261, + 186, + 373, + 254, + 97, + 391, + 127, + 265, + 4, + 18, + 120, + 323, + 308, + 273, + 319, + 55, + 397, + 326, + 3, + 329, + 230, + 94, + 95, + 278, + 251, + 296, + 121, + 69, + 17, + 38, + 299, + 60, + 229, + 7, + 292, + 138, + 197, + 281, + 365, + 56, + 240, + 187, + 85, + 275, + 139, + 379, + 118, + 199, + 206, + 152, + 50, + 255, + 321, + 62, + 77, + 157, + 360, + 4, + 263, + 188, + 278, + 161, + 63, + 346, + 382, + 65, + 6, + 109, + 116, + 51, + 73, + 102, + 167, + 180, + 394, + 89, + 316, + 20, + 243, + 77, + 327, + 207, + 194, + 226, + 352, + 339, + 36, + 65, + 117, + 340, + 325, + 147, + 348, + 326, + 27, + 286, + 316, + 177, + 378, + 381, + 185, + 39, + 203, + 343, + 333, + 351, + 382, + 153, + 212, + 107, + 93, + 290, + 312, + 399, + 254, + 172, + 237, + 251, + 30, + 295, + 211, + 266, + 222, + 62, + 137, + 376, + 363, + 177, + 199, + 200, + 214, + 174, + 369, + 89, + 371, + 6, + 76, + 113, + 225, + 367, + 21, + 47, + 227, + 50, + 322, + 102, + 23, + 256, + 163, + 10, + 393, + 98, + 348, + 98, + 19, + 60, + 88, + 46, + 274, + 354, + 68, + 114, + 48, + 273, + 211, + 141, + 40, + 96, + 7, + 280, + 230, + 155, + 259, + 302, + 13, + 199, + 183, + 302, + 145, + 156, + 93, + 192, + 153, + 366, + 359, + 155, + 34, + 181, + 234, + 261, + 294, + 391, + 145, + 114, + 354, + 281, + 130, + 347, + 63, + 360, + 256, + 361, + 286, + 282, + 242, + 329, + 72, + 177, + 356, + 184, + 97, + 317, + 298, + 101, + 267, + 87, + 35, + 226, + 165, + 152, + 316, + 106, + 63, + 2, + 6, + 69, + 174, + 16, + 197, + 157, + 194, + 353, + 260, + 50, + 175, + 295, + 137, + 143, + 287, + 12, + 298, + 324, + 273, + 186, + 32, + 252, + 390, + 348, + 126, + 166, + 123, + 262, + 84, + 48, + 245, + 277, + 360, + 5, + 6, + 285, + 144, + 115, + 125, + 105, + 284, + 102, + 85, + 84, + 29, + 175, + 71, + 252, + 198, + 87, + 215, + 162, + 68, + 216, + 375, + 255, + 81, + 384, + 360, + 115, + 192, + 194, + 393, + 150, + 257, + 181, + 42, + 285, + 108, + 109, + 0, + 175, + 77, + 370, + 218, + 191, + 328, + 49, + 400, + 167, + 202, + 213, + 127, + 360, + 249, + 262, + 176, + 336, + 142, + 7, + 177, + 324, + 121, + 203, + 89, + 286, + 397, + 321, + 367, + 175, + 390, + 30, + 357, + 259, + 287, + 29, + 223, + 124, + 361, + 399, + 80, + 73, + 14, + 51, + 208, + 218, + 27, + 181, + 131, + 192, + 182, + 355, + 336, + 314, + 66, + 228, + 101, + 273, + 333, + 390, + 89, + 57, + 161, + 248, + 138, + 108, + 274, + 158, + 245, + 259, + 391, + 137, + 168, + 69, + 82, + 351, + 327, + 109, + 250, + 374, + 152, + 170, + 175, + 392, + 297, + 33, + 88, + 201, + 313, + 245, + 249, + 366, + 9, + 125, + 308, + 41, + 200, + 350, + 40, + 97, + 264, + 5, + 159, + 29, + 111, + 204, + 218, + 355, + 23, + 56, + 223, + 43, + 167, + 142, + 224, + 105, + 191, + 64, + 64, + 7, + 83, + 243, + 393, + 70, + 4, + 306, + 105, + 47, + 65, + 20, + 293, + 234, + 256, + 5, + 202, + 178, + 371, + 160, + 173, + 186, + 358, + 8, + 250, + 317, + 399, + 355, + 300, + 244, + 361, + 304, + 178, + 344, + 133, + 24, + 305, + 360, + 227, + 209, + 238, + 296, + 246, + 202, + 247, + 189, + 137, + 310, + 78, + 231, + 329, + 36, + 156, + 331, + 246, + 150, + 254, + 90, + 0, + 38, + 312, + 368, + 9, + 74, + 291, + 121, + 310, + 310, + 271, + 311, + 211, + 371, + 350, + 79, + 69, + 32, + 8, + 354, + 16, + 289, + 195, + 1, + 180, + 173, + 105, + 2, + 258, + 227, + 246, + 58, + 256, + 153, + 143, + 366, + 77, + 248, + 356, + 245, + 114, + 228, + 240, + 302, + 239, + 196, + 2, + 105, + 362, + 242, + 256, + 78, + 329, + 81, + 147, + 263, + 102, + 204, + 119, + 82, + 206, + 131, + 214, + 292, + 58, + 78, + 87, + 321, + 298, + 389, + 357, + 159, + 359, + 111, + 230, + 17, + 297, + 333, + 222, + 223, + 197, + 243, + 21, + 356, + 113, + 22, + 256, + 386, + 239, + 114, + 350, + 254, + 73, + 103, + 55, + 283, + 104, + 120, + 62, + 126, + 185, + 322, + 232, + 92, + 395, + 44, + 253, + 374, + 187, + 167, + 325, + 220, + 356, + 346, + 288, + 171, + 219, + 360, + 369, + 287, + 148, + 323, + 239, + 324, + 232, + 243, + 128, + 81, + 182, + 107, + 317, + 9, + 83, + 393, + 161, + 193, + 37, + 222, + 203, + 378, + 263, + 353, + 332, + 211, + 125, + 297, + 225, + 190, + 2, + 205, + 31, + 57, + 384, + 277, + 113, + 11, + 270, + 303, + 170, + 58, + 130, + 9, + 266, + 166, + 141, + 0, + 388, + 332, + 343, + 174, + 24, + 294, + 16, + 20, + 109, + 82, + 237, + 318, + 97, + 147, + 287, + 235, + 125, + 86, + 394, + 27, + 199, + 76, + 52, + 137, + 386, + 313, + 3, + 67, + 179, + 22, + 13, + 41, + 302, + 137, + 57, + 324, + 141, + 90, + 185, + 208, + 168, + 161, + 193, + 191, + 238, + 44, + 47, + 5, + 106, + 14, + 108, + 247, + 395, + 113, + 375, + 376, + 398, + 373, + 275, + 55, + 180, + 155, + 319, + 228, + 283, + 58, + 341, + 292, + 116, + 175, + 106, + 263, + 173, + 333, + 196, + 148, + 379, + 215, + 29, + 132, + 165, + 318, + 221, + 327, + 38, + 392, + 143, + 125, + 125, + 216, + 167, + 193, + 225, + 85, + 147, + 11, + 16, + 256, + 107, + 274, + 156, + 272, + 183, + 0, + 275, + 341, + 11, + 109, + 378, + 157, + 72, + 322, + 187, + 113, + 245, + 124, + 40, + 348, + 59, + 39, + 227, + 103, + 87, + 230, + 27, + 279, + 163, + 75, + 195, + 83, + 325, + 148, + 18, + 68, + 141, + 58, + 289, + 384, + 310, + 242, + 323, + 106, + 162, + 62, + 212, + 254, + 190, + 185, + 1, + 299, + 252, + 368, + 253, + 246, + 149, + 49, + 241, + 252, + 76, + 238, + 400, + 360, + 91, + 329, + 7, + 373, + 314, + 192, + 14, + 164, + 193, + 110, + 152, + 158, + 206, + 81, + 145, + 20, + 396, + 160, + 149, + 239, + 28, + 76, + 370, + 59, + 26, + 10, + 290, + 260, + 29, + 288, + 368, + 138, + 31, + 157, + 256, + 306, + 292, + 8, + 154, + 227, + 186, + 368, + 392, + 330, + 87, + 159, + 323, + 266, + 30, + 329, + 225, + 386, + 19, + 375, + 393, + 297, + 230, + 137, + 56, + 151, + 252, + 156, + 30, + 286, + 61, + 379, + 78, + 91, + 194, + 366, + 123, + 216, + 7, + 21, + 254, + 201, + 358, + 260, + 137, + 400, + 229, + 228, + 155, + 102, + 181, + 234, + 183, + 309, + 329, + 104, + 46, + 140, + 296, + 318, + 282, + 159, + 173, + 341, + 0, + 83, + 228, + 285, + 81, + 39, + 390, + 56, + 215, + 313, + 382, + 343, + 3, + 295, + 352, + 181, + 217, + 353, + 134, + 279, + 377, + 108, + 336, + 9, + 297, + 188, + 208, + 149, + 161, + 387, + 261, + 36, + 238, + 144, + 12, + 136, + 308, + 220, + 200, + 390, + 155, + 16, + 152, + 111, + 272, + 209, + 394, + 135, + 233, + 389, + 172, + 205, + 224, + 131, + 226, + 278, + 329, + 12, + 80, + 261, + 335, + 338, + 364, + 394, + 272, + 292, + 121, + 34, + 207, + 215, + 356, + 142, + 6, + 239, + 150, + 219, + 360, + 63, + 88, + 278, + 179, + 154, + 352, + 177, + 389, + 382, + 38, + 69, + 359, + 33, + 220, + 97, + 98, + 177, + 281, + 256, + 267, + 347, + 60, + 185, + 316, + 188, + 375, + 289, + 139, + 172, + 87, + 82, + 8, + 382, + 320, + 381, + 289, + 391, + 397, + 199, + 247, + 16, + 174, + 66, + 52, + 370, + 61, + 130, + 24, + 329, + 53, + 253, + 156, + 213, + 30, + 75, + 228, + 244, + 113, + 258, + 124, + 352, + 77, + 119, + 335, + 137, + 159, + 211, + 183, + 104, + 145, + 135, + 148, + 39, + 360, + 208, + 203, + 296, + 231, + 141, + 293, + 342, + 179, + 240, + 47, + 79, + 353, + 266, + 77, + 306, + 220, + 3, + 33, + 14, + 99, + 125, + 273, + 318, + 81, + 337, + 236, + 119, + 131, + 231, + 192, + 49, + 337, + 123, + 338, + 128, + 334, + 252, + 145, + 125, + 77, + 162, + 186, + 83, + 204, + 395, + 295, + 278, + 142, + 380, + 284, + 109, + 181, + 134, + 240, + 297, + 156, + 3, + 342, + 160, + 180, + 372, + 225, + 86, + 377, + 25, + 339, + 381, + 21, + 328, + 173, + 82, + 332, + 12, + 227, + 334, + 165, + 297, + 302, + 114, + 273, + 180, + 350, + 377, + 400, + 310, + 67, + 151, + 83, + 86, + 265, + 142, + 393, + 11, + 109, + 122, + 241, + 293, + 324, + 89, + 218, + 200, + 92, + 70, + 19, + 180, + 234, + 345, + 384, + 157, + 198, + 90, + 305, + 106, + 317, + 379, + 95, + 345, + 192, + 384, + 364, + 135, + 98, + 282, + 102, + 297, + 169, + 244, + 139, + 144, + 73, + 373, + 380, + 60, + 311, + 250, + 351, + 251, + 298, + 381, + 271, + 279, + 42, + 394, + 25, + 9, + 399, + 49, + 69, + 163, + 219, + 182, + 220, + 373, + 354, + 329, + 168, + 135, + 317, + 22, + 233, + 380, + 183, + 343, + 298, + 288, + 368, + 264, + 262, + 251, + 243, + 397, + 246, + 314, + 167, + 234, + 232, + 140, + 3, + 250, + 200, + 165, + 157, + 15, + 364, + 237, + 51, + 92, + 196, + 87, + 283, + 287, + 115, + 32, + 391, + 163, + 203, + 74, + 342, + 247, + 259, + 257, + 318, + 276, + 165, + 178, + 34, + 286, + 213, + 262, + 47, + 22, + 296, + 272, + 354, + 236, + 126, + 161, + 32, + 141, + 91, + 235, + 143, + 306, + 107, + 71, + 304, + 357, + 78, + 90, + 46, + 53, + 399, + 234, + 192, + 79, + 103, + 234, + 379, + 291, + 119, + 200, + 144, + 208, + 46, + 148, + 192, + 158, + 301, + 180, + 321, + 249, + 204, + 48, + 114, + 148, + 120, + 163, + 315, + 344, + 277, + 337, + 68, + 177, + 65, + 144, + 347, + 394, + 167, + 226, + 232, + 271, + 217, + 121, + 43, + 348, + 256, + 172, + 196, + 108, + 247, + 151, + 344, + 270, + 20, + 333, + 279, + 166, + 129, + 104, + 271, + 114, + 21, + 283, + 273, + 8, + 213, + 271, + 156, + 276, + 81, + 356, + 263, + 99, + 368, + 335, + 259, + 354, + 102, + 157, + 162, + 208, + 60, + 10, + 198, + 187, + 112, + 166, + 377, + 323, + 185, + 360, + 23, + 145, + 171, + 66, + 258, + 287, + 36, + 60, + 252, + 341, + 151, + 7, + 82, + 49, + 390, + 282, + 400, + 105, + 195, + 179, + 91, + 186, + 218, + 344, + 368, + 381, + 315, + 88, + 312, + 250, + 317, + 66, + 325, + 320, + 147, + 246, + 30, + 116, + 358, + 387, + 214, + 126, + 317, + 232, + 326, + 264, + 375, + 300, + 7, + 206, + 244, + 22, + 368, + 200, + 7, + 288, + 344, + 258, + 328, + 310, + 240, + 282, + 2, + 360, + 242, + 154, + 109, + 388, + 395, + 348, + 42, + 203, + 63, + 336, + 247, + 200, + 85, + 37, + 303, + 203, + 364, + 232, + 199, + 329, + 197, + 358, + 312, + 146, + 115, + 242, + 6, + 119, + 364, + 65, + 380, + 376, + 221, + 57, + 343, + 384, + 235, + 249, + 182, + 246, + 318, + 163, + 59, + 257, + 38, + 336, + 397, + 77, + 1, + 4, + 340, + 148, + 272, + 400, + 193, + 102, + 75, + 160, + 148, + 81, + 278, + 67, + 177, + 267, + 337, + 20, + 227, + 116, + 388, + 47, + 21, + 90, + 299, + 198, + 252, + 357, + 337, + 339, + 73, + 353, + 274, + 261, + 12, + 57, + 51, + 61, + 262, + 223, + 241, + 305, + 86, + 354, + 37, + 43, + 84, + 216, + 134, + 32, + 356, + 28, + 213, + 23, + 311, + 340, + 208, + 302, + 102, + 7, + 111, + 30, + 202, + 310, + 366, + 64, + 117, + 46, + 261, + 58, + 246, + 58, + 17, + 198, + 191, + 79, + 241, + 252, + 400, + 358, + 225, + 246, + 24, + 184, + 197, + 336, + 69, + 376, + 365, + 205, + 372, + 356, + 328, + 315, + 289, + 292, + 299, + 66, + 221, + 147, + 75, + 23, + 30, + 40, + 302, + 243, + 400, + 209, + 129, + 305, + 367, + 334, + 179, + 302, + 304, + 391, + 67, + 212, + 308, + 147, + 278, + 88, + 254, + 393, + 5, + 161, + 307, + 256, + 289, + 160, + 104, + 361, + 146, + 21, + 350, + 247, + 331, + 172, + 36, + 192, + 10, + 104, + 124, + 69, + 227, + 321, + 73, + 245, + 90, + 314, + 380, + 331, + 373, + 197, + 10, + 221, + 382, + 266, + 142, + 45, + 179, + 182, + 235, + 257, + 15, + 2, + 101, + 3, + 385, + 142, + 112, + 321, + 199, + 60, + 163, + 80, + 17, + 20, + 151, + 251, + 278, + 268, + 81, + 204, + 182, + 90, + 107, + 14, + 60, + 341, + 125, + 180, + 317, + 393, + 15, + 51, + 150, + 90, + 187, + 358, + 125, + 211, + 2, + 13, + 162, + 341, + 66, + 303, + 241, + 96, + 239, + 291, + 227, + 0, + 288, + 327, + 17, + 265, + 28, + 122, + 134, + 78, + 142, + 161, + 209, + 210, + 306, + 198, + 174, + 213, + 213, + 365, + 9, + 377, + 46, + 60, + 147, + 16, + 253, + 388, + 301, + 163, + 184, + 123, + 135, + 378, + 290, + 33, + 129, + 369, + 140, + 170, + 262, + 347, + 380, + 183, + 125, + 337, + 244, + 355, + 13, + 89, + 264, + 149, + 228, + 136, + 37, + 188, + 179, + 66, + 155, + 26, + 29, + 297, + 285, + 0, + 84, + 42, + 154, + 25, + 5, + 60, + 43, + 202, + 351, + 292, + 111, + 223, + 359, + 183, + 275, + 176, + 195, + 165, + 347, + 26, + 396, + 244, + 388, + 65, + 395, + 17, + 213, + 329, + 80, + 2, + 351, + 107, + 322, + 27, + 264, + 36, + 273, + 220, + 354, + 63, + 158, + 269, + 61, + 58, + 186, + 62, + 315, + 38, + 61, + 12, + 150, + 62, + 363, + 379, + 329, + 328, + 21, + 145, + 35, + 140, + 61, + 23, + 293, + 129, + 289, + 253, + 111, + 307, + 154, + 87, + 373, + 327, + 362, + 136, + 273, + 279, + 302, + 153, + 1, + 295, + 28, + 98, + 265, + 137, + 47, + 222, + 88, + 74, + 90, + 228, + 308, + 233, + 12, + 218, + 218, + 6, + 384, + 224, + 272, + 86, + 325, + 316, + 370, + 167, + 293, + 24, + 327, + 344, + 182, + 172, + 290, + 389, + 266, + 382, + 120, + 262, + 57, + 110, + 330, + 330, + 368, + 137, + 108, + 16, + 28, + 191, + 393, + 154, + 352, + 70, + 36, + 250, + 167, + 350, + 384, + 81, + 99, + 195, + 227, + 242, + 400, + 188, + 89, + 277, + 326, + 89, + 272, + 55, + 320, + 258, + 376, + 156, + 159, + 6, + 220, + 227, + 71, + 274, + 19, + 357, + 17, + 239, + 334, + 198, + 170, + 371, + 10, + 200, + 276, + 111, + 137, + 54, + 114, + 178, + 191, + 327, + 315, + 127, + 113, + 169, + 386, + 24, + 349, + 318, + 311, + 270, + 180, + 264, + 111, + 321, + 384, + 81, + 138, + 343, + 104, + 99, + 302, + 216, + 160, + 295, + 266, + 373, + 162, + 291, + 226, + 395, + 111, + 103, + 125, + 35, + 66, + 225, + 352, + 219, + 68, + 82, + 293, + 270, + 155, + 147, + 15, + 197, + 180, + 253, + 113, + 276, + 172, + 103, + 227, + 75, + 99, + 194, + 165, + 111, + 330, + 325, + 256, + 399, + 295, + 247, + 125, + 199, + 327, + 327, + 84, + 400, + 215, + 80, + 330, + 123, + 86, + 338, + 86, + 380, + 342, + 298, + 395, + 337, + 261, + 143, + 53, + 68, + 298, + 196, + 255, + 387, + 154, + 41, + 282, + 174, + 303, + 272, + 337, + 352, + 43, + 228, + 162, + 353, + 158, + 117, + 367, + 366, + 344, + 58, + 37, + 93, + 102, + 72, + 393, + 154, + 328, + 145, + 42, + 113, + 275, + 44, + 3, + 259, + 312, + 116, + 228, + 70, + 247, + 1, + 383, + 134, + 38, + 320, + 327, + 93, + 384, + 209, + 350, + 127, + 126, + 23, + 45, + 60, + 378, + 29, + 141, + 129, + 146, + 148, + 4, + 274, + 245, + 245, + 92, + 48, + 297, + 199, + 336, + 343, + 319, + 1, + 100, + 259, + 352, + 160, + 204, + 94, + 170, + 396, + 77, + 204, + 215, + 53, + 46 + ] +} diff --git a/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.py b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.py new file mode 100644 index 0000000000..ef0f6a710b --- /dev/null +++ b/calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/strict_6flows.py @@ -0,0 +1,13 @@ +import os +import sys +import inspect + +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +parentdir = os.path.dirname(currentdir) +sys.path.insert(0, parentdir) + +from gen_strict_or_rr import build + +if __name__ == "__main__": + """Invoke the top-level function to build the program, with 6 flows.""" + build(6, False).emit() \ No newline at end of file diff --git a/runt.toml b/runt.toml index d97d2b12e4..8a4be975b6 100644 --- a/runt.toml +++ b/runt.toml @@ -133,8 +133,10 @@ name = "[calyx-py] queues correctness" paths = [ "calyx-py/test/correctness/queues/*.py", "calyx-py/test/correctness/queues/binheap/*.py", - "calyx-py/test/correctness/queues/rr_queues/rr_queue*.py" + "calyx-py/test/correctness/queues/strict_and_rr_queues/rr_queues/*.py", + "calyx-py/test/correctness/queues/strict_and_rr_queues/strict_queues/*.py" ] + cmd = """ name=$(basename {} .py) && dir=$(dirname {}) && From 4604d6277adc2bf2a426347d269036fda82555c6 Mon Sep 17 00:00:00 2001 From: Samuel Thomas Date: Fri, 5 Jul 2024 09:40:05 -0500 Subject: [PATCH 31/76] Improve LSP error reporting (#1950) - [x] Actually run papercut, well-formed, and synthesis-papercut passes - [x] support multiple errors in a single file - [x] figure out what to do about primitive files that have no main component - [x] Report parsing errors at reported location - [x] handle errors that don't report location - [x] add infrastructure for reporting warnings --- Cargo.lock | 1 + calyx-frontend/src/ast.rs | 6 +- calyx-frontend/src/parser.rs | 56 +- calyx-frontend/src/workspace.rs | 31 +- calyx-ir/src/from_ast.rs | 12 +- calyx-lsp/Cargo.toml | 1 + calyx-lsp/src/diagnostic.rs | 125 +- calyx-lsp/src/document.rs | 23 +- calyx-lsp/src/log.rs | 6 +- calyx-lsp/src/main.rs | 22 +- calyx-lsp/tree-sitter-calyx/.gitignore | 1 + calyx-lsp/tree-sitter-calyx/grammar.js | 6 +- calyx-lsp/tree-sitter-calyx/src/parser.c | 8698 +++++++++-------- calyx-opt/src/default_passes.rs | 10 +- calyx-opt/src/pass_manager.rs | 65 +- calyx-opt/src/passes/papercut.rs | 52 +- calyx-opt/src/passes/synthesis_papercut.rs | 61 +- calyx-opt/src/passes/well_formed.rs | 276 +- calyx-opt/src/traversal/diagnostics.rs | 76 + calyx-opt/src/traversal/mod.rs | 2 + calyx-utils/src/errors.rs | 112 +- calyx-utils/src/lib.rs | 4 +- calyx-utils/src/pos_string.rs | 60 + calyx-utils/src/position.rs | 28 +- interp/src/errors.rs | 12 +- src/main.rs | 7 +- tests/errors/comb-component-groups.expect | 4 + tests/errors/comb-port-in-condition.expect | 2 +- tests/errors/comb-static-comp.expect | 10 +- tests/errors/group-comb-conflict.expect | 12 +- .../errors/group-cont-assign-conflict.expect | 12 +- tests/errors/if-cond-conflict.expect | 20 +- tests/errors/mem-only-reads.expect | 4 +- tests/errors/multiple-attr-vals.expect | 10 +- tests/errors/obvious-conflict.expect | 8 +- tests/errors/orphan-done.expect | 8 +- tests/errors/papercut/multi-done.expect | 4 +- .../errors/papercut/no-control-no-done.expect | 4 +- tests/errors/parser/cell-missing-semi.expect | 11 +- tests/errors/parser/invalid-width.expect | 10 +- tests/errors/parser/invalid-width2.expect | 10 +- tests/errors/parser/invalid-width3.expect | 10 +- tests/errors/parser/invalid-width4.expect | 10 +- .../errors/parser/num-without-bitwidth.expect | 10 +- tests/errors/parser/sig-missing-comma.expect | 10 +- tests/errors/parser/wrong-binary-num.expect | 10 +- tests/errors/redefine-external.expect | 4 +- tests/errors/while-unstable.expect | 4 +- web/rust/src/lib.rs | 4 +- 49 files changed, 5288 insertions(+), 4656 deletions(-) create mode 100644 calyx-opt/src/traversal/diagnostics.rs create mode 100644 calyx-utils/src/pos_string.rs diff --git a/Cargo.lock b/Cargo.lock index 1b11b295d6..17ad1c25a4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -446,6 +446,7 @@ version = "0.7.1" dependencies = [ "calyx-frontend", "calyx-ir", + "calyx-opt", "calyx-utils", "cc", "chrono", diff --git a/calyx-frontend/src/ast.rs b/calyx-frontend/src/ast.rs index 8217da4094..728eae414a 100644 --- a/calyx-frontend/src/ast.rs +++ b/calyx-frontend/src/ast.rs @@ -2,18 +2,18 @@ use super::parser; use crate::{Attributes, PortDef, Primitive}; use atty::Stream; -use calyx_utils::{CalyxResult, Error, GPosIdx, Id}; +use calyx_utils::{CalyxResult, Error, GPosIdx, Id, PosString}; use std::{num::NonZeroU64, path::PathBuf}; /// Corresponds to an individual Calyx file. #[derive(Debug)] pub struct NamespaceDef { /// Path to extern files. - pub imports: Vec, + pub imports: Vec, /// List of component definitions. pub components: Vec, /// Extern statements and any primitive declarations in them. - pub externs: Vec<(Option, Vec)>, + pub externs: Vec<(Option, Vec)>, /// Optional opaque metadata pub metadata: Option, } diff --git a/calyx-frontend/src/parser.rs b/calyx-frontend/src/parser.rs index 63d680d714..4de02c1148 100644 --- a/calyx-frontend/src/parser.rs +++ b/calyx-frontend/src/parser.rs @@ -6,7 +6,7 @@ use super::ast::{ }; use super::Attributes; use crate::{Attribute, Direction, PortDef, Primitive, Width}; -use calyx_utils::{self, CalyxResult, Id}; +use calyx_utils::{self, CalyxResult, Id, PosString}; use calyx_utils::{FileIdx, GPosIdx, GlobalPositionTable}; use pest::pratt_parser::{Assoc, Op, PrattParser}; use pest_consume::{match_nodes, Error, Parser}; @@ -66,25 +66,16 @@ impl CalyxParser { CalyxParser::parse_with_userdata(Rule::file, content, user_data) .map_err(|e| e.with_path(&path.to_string_lossy())) .map_err(|e| { - calyx_utils::Error::misc(format!( - "Failed to parse `{}`: {err}", - path.to_string_lossy(), - err = e - )) + calyx_utils::Error::parse_error(e.variant.message()) + .with_pos(&Self::error_span(&e, file)) })?; let input = inputs.single().map_err(|e| { - calyx_utils::Error::misc(format!( - "Failed to parse `{}`: {err}", - path.to_string_lossy(), - err = e - )) + calyx_utils::Error::parse_error(e.variant.message()) + .with_pos(&Self::error_span(&e, file)) })?; let out = CalyxParser::file(input).map_err(|e| { - calyx_utils::Error::misc(format!( - "Failed to parse `{}`: {err}", - path.to_string_lossy(), - err = e - )) + calyx_utils::Error::parse_error(e.variant.message()) + .with_pos(&Self::error_span(&e, file)) })?; log::info!( "Parsed `{}` in {}ms", @@ -110,15 +101,16 @@ impl CalyxParser { let inputs = CalyxParser::parse_with_userdata(Rule::file, contents, user_data) .map_err(|e| { - calyx_utils::Error::misc( - format!("Failed to parse buffer: {e}",), - ) + calyx_utils::Error::parse_error(e.variant.message()) + .with_pos(&Self::error_span(&e, file)) })?; let input = inputs.single().map_err(|e| { - calyx_utils::Error::misc(format!("Failed to parse buffer: {e}",)) + calyx_utils::Error::parse_error(e.variant.message()) + .with_pos(&Self::error_span(&e, file)) })?; let out = CalyxParser::file(input).map_err(|e| { - calyx_utils::Error::misc(format!("Failed to parse buffer: {e}",)) + calyx_utils::Error::parse_error(e.variant.message()) + .with_pos(&Self::error_span(&e, file)) })?; Ok(out) } @@ -134,6 +126,15 @@ impl CalyxParser { GPosIdx(pos) } + fn error_span(error: &pest::error::Error, file: FileIdx) -> GPosIdx { + let (start, end) = match error.location { + pest::error::InputLocation::Pos(off) => (off, off + 1), + pest::error::InputLocation::Span((start, end)) => (start, end), + }; + let pos = GlobalPositionTable::as_mut().add_pos(file, start, end); + GPosIdx(pos) + } + #[allow(clippy::result_large_err)] fn guard_expr_helper( ud: UserData, @@ -188,7 +189,7 @@ impl CalyxParser { #[allow(clippy::large_enum_variant)] enum ExtOrComp { - Ext((Option, Vec)), + Ext((Option, Vec)), Comp(ComponentDef), PrimInline(Primitive), } @@ -350,10 +351,11 @@ impl CalyxParser { Ok(input.as_str()) } - fn string_lit(input: Node) -> ParseResult { + fn string_lit(input: Node) -> ParseResult { + let span = Self::get_span(&input); Ok(match_nodes!( input.into_children(); - [char(c)..] => c.collect::>().join("") + [char(c)..] => PosString::new(c.collect::>().join(""), span) )) } @@ -361,7 +363,7 @@ impl CalyxParser { fn attribute(input: Node) -> ParseResult<(Attribute, u64)> { match_nodes!( input.clone().into_children(); - [string_lit(key), bitwidth(num)] => Attribute::from_str(&key).map(|attr| (attr, num)).map_err(|e| input.error(format!("{:?}", e))) + [string_lit(key), bitwidth(num)] => Attribute::from_str(key.as_ref()).map(|attr| (attr, num)).map_err(|e| input.error(format!("{:?}", e))) ) } fn attributes(input: Node) -> ParseResult { @@ -1199,14 +1201,14 @@ impl CalyxParser { ) } - fn imports(input: Node) -> ParseResult> { + fn imports(input: Node) -> ParseResult> { Ok(match_nodes!( input.into_children(); [string_lit(path)..] => path.collect() )) } - fn ext(input: Node) -> ParseResult<(Option, Vec)> { + fn ext(input: Node) -> ParseResult<(Option, Vec)> { Ok(match_nodes!( input.into_children(); [string_lit(file), primitive(prims)..] => (Some(file), prims.collect()) diff --git a/calyx-frontend/src/workspace.rs b/calyx-frontend/src/workspace.rs index d6ffaca3f3..167f945d4c 100644 --- a/calyx-frontend/src/workspace.rs +++ b/calyx-frontend/src/workspace.rs @@ -3,7 +3,7 @@ use super::{ parser, }; use crate::LibrarySignatures; -use calyx_utils::{CalyxResult, Error}; +use calyx_utils::{CalyxResult, Error, WithPos}; use std::{ collections::HashSet, path::{Path, PathBuf}, @@ -65,7 +65,7 @@ impl Workspace { lib_path: &Path, ) -> CalyxResult where - S: AsRef + Clone, + S: AsRef + Clone + WithPos, { let absolute_import = import.as_ref(); if absolute_import.is_absolute() && absolute_import.exists() { @@ -87,7 +87,7 @@ impl Workspace { import.as_ref().to_string_lossy(), parent.to_string_lossy(), lib_path.to_string_lossy() - ))) + )).with_pos(&import)) } // Get the absolute path to an extern. Extern can only exist on paths @@ -98,17 +98,19 @@ impl Workspace { parent: &Path, ) -> CalyxResult where - S: AsRef + Clone, + S: AsRef + Clone + WithPos, { - let parent_path = parent.join(extern_path.clone()).canonicalize()?; - if parent_path.exists() { - return Ok(parent_path); - } - Err(Error::invalid_file(format!( - "Extern path `{}` not found in parent directory ({})", - extern_path.as_ref().to_string_lossy(), - parent.to_string_lossy(), - ))) + parent + .join(extern_path.clone()) + .canonicalize() + .map_err(|_| { + Error::invalid_file(format!( + "Extern path `{}` not found in parent directory ({})", + extern_path.as_ref().to_string_lossy(), + parent.to_string_lossy(), + )) + .with_pos(&extern_path) + }) } /// Construct a new workspace using the `compile.futil` library which @@ -273,7 +275,8 @@ impl Workspace { })?; // Add original imports to workspace - ws.original_imports = ns.imports.clone(); + ws.original_imports = + ns.imports.iter().map(|imp| imp.to_string()).collect(); // TODO (griffin): Probably not a great idea to clone the metadata // string but it works for now diff --git a/calyx-ir/src/from_ast.rs b/calyx-ir/src/from_ast.rs index ee65c32919..cf912388b7 100644 --- a/calyx-ir/src/from_ast.rs +++ b/calyx-ir/src/from_ast.rs @@ -182,16 +182,20 @@ pub fn ast_to_ir(mut workspace: Workspace) -> CalyxResult { let mut all_names: HashSet<&Id> = HashSet::with_capacity(workspace.components.len() + prims.len()); - let prim_names = prims.iter().map(|p| &p.name); + let prim_names = prims.iter().map(|p| (&p.name, p.attributes.copy_span())); - let comp_names = workspace.components.iter().map(|comp| &comp.name); + let comp_names = workspace + .components + .iter() + .map(|comp| (&comp.name, comp.attributes.copy_span())); - for bound in prim_names.chain(comp_names) { + for (bound, span) in prim_names.chain(comp_names) { if all_names.contains(bound) { return Err(Error::already_bound( *bound, "component or primitive".to_string(), - )); + ) + .with_pos(&span)); } all_names.insert(bound); } diff --git a/calyx-lsp/Cargo.toml b/calyx-lsp/Cargo.toml index 6ff0731f69..7747dae274 100644 --- a/calyx-lsp/Cargo.toml +++ b/calyx-lsp/Cargo.toml @@ -27,6 +27,7 @@ default = ["diagnostics"] calyx-frontend.workspace = true calyx-ir.workspace = true calyx-utils.workspace = true +calyx-opt.workspace = true chrono = "0.4.33" itertools.workspace = true regex = "1.10.3" diff --git a/calyx-lsp/src/diagnostic.rs b/calyx-lsp/src/diagnostic.rs index 311cd16829..ee75cfeaf8 100644 --- a/calyx-lsp/src/diagnostic.rs +++ b/calyx-lsp/src/diagnostic.rs @@ -1,7 +1,14 @@ use std::path::Path; +use tower_lsp::lsp_types::{self as lspt}; +use calyx_opt::{ + passes::{Papercut, SynthesisPapercut, WellFormed}, + traversal::{ConstructVisitor, DiagnosticPass, Visitor}, +}; use resolve_path::PathResolveExt; +use crate::document::Document; + pub struct Diagnostic; /// A Calyx error message @@ -12,18 +19,69 @@ pub struct CalyxError { pub pos_start: usize, pub pos_end: usize, pub msg: String, + pub annotations: Vec<(String, usize, usize)>, + severity: lspt::DiagnosticSeverity, } impl Diagnostic { /// Run the `calyx` compiler on `path` with libraries at `lib_path` pub fn did_save(path: &Path, lib_path: &Path) -> Vec { - calyx_frontend::Workspace::construct( + calyx_frontend::Workspace::construct_shallow( &Some(path.to_path_buf()), lib_path.resolve().as_ref(), ) .and_then(calyx_ir::from_ast::ast_to_ir) - // TODO: call well-formed pass - .map(|_| vec![]) + .and_then(|mut ctx| { + let mut wellformed = ::from(&ctx)?; + wellformed.do_pass(&mut ctx)?; + + let mut diag_papercut = ::from(&ctx)?; + diag_papercut.do_pass(&mut ctx)?; + + let mut synth_papercut = + ::from(&ctx)?; + synth_papercut.do_pass(&mut ctx)?; + + let warnings = wellformed + .diagnostics() + .warning_iter() + .chain(diag_papercut.diagnostics().warning_iter()) + .chain(synth_papercut.diagnostics().warning_iter()) + .map(|e| { + let (file_name, pos_start, pos_end) = e.location(); + let msg = e.message(); + let annotations = e.annotations(); + CalyxError { + file_name: file_name.to_string(), + pos_start, + pos_end, + msg, + annotations, + severity: lspt::DiagnosticSeverity::WARNING, + } + }); + + Ok(wellformed + .diagnostics() + .errors_iter() + .chain(diag_papercut.diagnostics().errors_iter()) + .chain(synth_papercut.diagnostics().errors_iter()) + .map(|e| { + let (file_name, pos_start, pos_end) = e.location(); + let msg = e.message(); + let annotations = e.annotations(); + CalyxError { + file_name: file_name.to_string(), + pos_start, + pos_end, + msg, + annotations, + severity: lspt::DiagnosticSeverity::ERROR, + } + }) + .chain(warnings) + .collect::>()) + }) .unwrap_or_else(|e| { let (file_name, pos_start, pos_end) = e.location(); let msg = e.message(); @@ -32,7 +90,68 @@ impl Diagnostic { pos_start, pos_end, msg, + annotations: vec![], + severity: lspt::DiagnosticSeverity::ERROR, }] }) } } + +impl CalyxError { + pub fn into_lspt_diagnostics( + self, + doc: &Document, + ) -> Vec { + // convert annotations into related information + // this however doesn't actually highlight the locations. + // instead is just shows up in the error tooltop in VSCode. + let related_information = self + .annotations + .iter() + .filter_map(|(msg, start, end)| { + doc.bytes_to_range(*start, *end).map(|range| { + lspt::DiagnosticRelatedInformation { + location: lspt::Location::new( + doc.url.clone(), + range.into(), + ), + message: msg.to_string(), + } + }) + }) + .collect(); + + // also translate annotations into diagnostics + let annotation_diagnostics = + self.annotations.iter().filter_map(|(msg, start, end)| { + doc.bytes_to_range(*start, *end) + .map(|range| lspt::Diagnostic { + range: range.into(), + severity: Some(lspt::DiagnosticSeverity::INFORMATION), + code: None, + code_description: None, + source: Some("calyx-lsp".to_string()), + message: msg.to_string(), + related_information: None, + tags: None, + data: None, + }) + }); + + doc.bytes_to_range(self.pos_start, self.pos_end) + .map(|range| lspt::Diagnostic { + range: range.into(), + severity: Some(self.severity), + code: None, + code_description: None, + source: Some("calyx-lsp".to_string()), + message: self.msg, + related_information: Some(related_information), + tags: None, + data: None, + }) + .into_iter() + .chain(annotation_diagnostics) + .collect() + } +} diff --git a/calyx-lsp/src/document.rs b/calyx-lsp/src/document.rs index 1a1595e938..58d94d5f94 100644 --- a/calyx-lsp/src/document.rs +++ b/calyx-lsp/src/document.rs @@ -66,12 +66,12 @@ pub enum Context { Control, } -/// Transform an iterator of `treesit::Node` to `Range`. -pub trait NodeRangesIter<'a>: Iterator> + Sized { - fn ranges(self) -> impl Iterator { - self.map(Range::from) - } -} +// /// Transform an iterator of `treesit::Node` to `Range`. +// pub trait NodeRangesIter<'a>: Iterator> + Sized { +// fn ranges(self) -> impl Iterator { +// self.map(Range::from) +// } +// } impl Document { /// Create an empty document for `url`. @@ -126,6 +126,17 @@ impl Document { } } + pub fn bytes_to_range( + &self, + start_offset: usize, + end_offset: usize, + ) -> Option { + self.byte_to_point(start_offset).and_then(|start| { + self.byte_to_point(end_offset) + .map(|end| Range::new(start, end)) + }) + } + /// Compile `pattern` into a treesit query, run the query, /// and return a map of capture names to captured nodes. pub fn captures<'a, 'node: 'a>( diff --git a/calyx-lsp/src/log.rs b/calyx-lsp/src/log.rs index d801322d4b..aca1628529 100644 --- a/calyx-lsp/src/log.rs +++ b/calyx-lsp/src/log.rs @@ -16,7 +16,7 @@ impl Debug { let mut file = OpenOptions::new() .create(true) .append(true) - .open(format!("/tmp/calyx-lsp-debug.log")) + .open("/tmp/calyx-lsp-debug.log") .unwrap(); writeln!(file, "{}", msg.as_ref()).expect("Unable to write file"); } @@ -33,7 +33,7 @@ impl Debug { .create(true) .write(true) .truncate(true) - .open(format!("/tmp/calyx-lsp-debug.log")) + .open("/tmp/calyx-lsp-debug.log") .unwrap(); writeln!(file, "{} {}", msg.as_ref(), Local::now().to_rfc2822()) .expect("Unable to write file"); @@ -60,7 +60,7 @@ impl Debug { macro_rules! stdout { ($($t:tt)*) => {{ - log::Debug::stdout(format!($($t)*)) + crate::Debug::stdout(format!($($t)*)) }}; } diff --git a/calyx-lsp/src/main.rs b/calyx-lsp/src/main.rs index 5171e66a9f..feb33d7493 100644 --- a/calyx-lsp/src/main.rs +++ b/calyx-lsp/src/main.rs @@ -12,7 +12,7 @@ use std::fs; use std::path::PathBuf; use std::sync::RwLock; -use convert::{Point, Range}; +use convert::Point; use diagnostic::Diagnostic; use document::Document; use goto_definition::DefinitionProvider; @@ -127,7 +127,6 @@ impl Backend { /// Publish diagnostics for document `url`. async fn publish_diagnostics(&self, url: &lspt::Url) { - // TODO: factor the bulk of this method somewhere else let lib_path: PathBuf = self.config.read().unwrap().calyx_lsp.library_paths[0] .to_string() @@ -140,24 +139,7 @@ impl Backend { &lib_path, ) .into_iter() - .filter_map(|diag| { - doc.byte_to_point(diag.pos_start).and_then(|s| { - doc.byte_to_point(diag.pos_end) - .map(|e| (Range::new(s, e), diag.msg)) - }) - }) - .map(|(range, message)| lspt::Diagnostic { - range: range.into(), - severity: Some(lspt::DiagnosticSeverity::ERROR), - code: None, - code_description: None, - source: Some("calyx".to_string()), - message, - related_information: None, - tags: None, - data: None, - }) - .inspect(|diag| log::stdout!("{diag:#?}")) + .flat_map(|diag| diag.into_lspt_diagnostics(doc)) .collect(), ) }) diff --git a/calyx-lsp/tree-sitter-calyx/.gitignore b/calyx-lsp/tree-sitter-calyx/.gitignore index 9f46b86ff5..1776b0c869 100644 --- a/calyx-lsp/tree-sitter-calyx/.gitignore +++ b/calyx-lsp/tree-sitter-calyx/.gitignore @@ -1,3 +1,4 @@ /build/ /node_modules/ /package-lock.json +/Cargo.toml diff --git a/calyx-lsp/tree-sitter-calyx/grammar.js b/calyx-lsp/tree-sitter-calyx/grammar.js index 27e547bbdd..38cf50775a 100644 --- a/calyx-lsp/tree-sitter-calyx/grammar.js +++ b/calyx-lsp/tree-sitter-calyx/grammar.js @@ -73,7 +73,7 @@ module.exports = grammar({ wires: $ => seq('wires', '{', optional($.wires_inner), '}'), wires_inner: $ => repeat1(choice($.group, $.wire_assignment)), group: $ => seq( - optional('comb'), 'group', $.ident, optional($.attributes), + optional(choice('comb', $.static_annotation)), 'group', $.ident, optional($.attributes), '{', repeat($.wire_assignment), '}' @@ -105,8 +105,8 @@ module.exports = grammar({ wire_assignment: $ => seq(optional($.at_attribute), $.lhs, '=', choice($.switch, $.expr), ';'), // control - control: $ => seq('control', '{', $.control_inner, '}'), - control_inner: $ => $.stmt, + control: $ => seq('control', '{', optional($.control_inner), '}'), + control_inner: $ => repeat1($.stmt), enable: $ => seq(repeat($.at_attribute), optional($.ident), ';'), invoke_ref_arg: $ => seq($.ident, '=', $.ident), invoke_ref_args: $ => seq( diff --git a/calyx-lsp/tree-sitter-calyx/src/parser.c b/calyx-lsp/tree-sitter-calyx/src/parser.c index 3dad8e505e..29a46b804a 100644 --- a/calyx-lsp/tree-sitter-calyx/src/parser.c +++ b/calyx-lsp/tree-sitter-calyx/src/parser.c @@ -6,7 +6,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 462 +#define STATE_COUNT 463 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 126 #define ALIAS_COUNT 0 @@ -138,9 +138,9 @@ enum { aux_sym_arg_list_repeat1 = 119, aux_sym_wires_inner_repeat1 = 120, aux_sym_group_repeat1 = 121, - aux_sym_invoke_ref_args_repeat1 = 122, - aux_sym_invoke_args_repeat1 = 123, - aux_sym_seq_repeat1 = 124, + aux_sym_control_inner_repeat1 = 122, + aux_sym_invoke_ref_args_repeat1 = 123, + aux_sym_invoke_args_repeat1 = 124, aux_sym_attributes_repeat1 = 125, }; @@ -267,9 +267,9 @@ static const char * const ts_symbol_names[] = { [aux_sym_arg_list_repeat1] = "arg_list_repeat1", [aux_sym_wires_inner_repeat1] = "wires_inner_repeat1", [aux_sym_group_repeat1] = "group_repeat1", + [aux_sym_control_inner_repeat1] = "control_inner_repeat1", [aux_sym_invoke_ref_args_repeat1] = "invoke_ref_args_repeat1", [aux_sym_invoke_args_repeat1] = "invoke_args_repeat1", - [aux_sym_seq_repeat1] = "seq_repeat1", [aux_sym_attributes_repeat1] = "attributes_repeat1", }; @@ -396,9 +396,9 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_arg_list_repeat1] = aux_sym_arg_list_repeat1, [aux_sym_wires_inner_repeat1] = aux_sym_wires_inner_repeat1, [aux_sym_group_repeat1] = aux_sym_group_repeat1, + [aux_sym_control_inner_repeat1] = aux_sym_control_inner_repeat1, [aux_sym_invoke_ref_args_repeat1] = aux_sym_invoke_ref_args_repeat1, [aux_sym_invoke_args_repeat1] = aux_sym_invoke_args_repeat1, - [aux_sym_seq_repeat1] = aux_sym_seq_repeat1, [aux_sym_attributes_repeat1] = aux_sym_attributes_repeat1, }; @@ -891,15 +891,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_invoke_ref_args_repeat1] = { + [aux_sym_control_inner_repeat1] = { .visible = false, .named = false, }, - [aux_sym_invoke_args_repeat1] = { + [aux_sym_invoke_ref_args_repeat1] = { .visible = false, .named = false, }, - [aux_sym_seq_repeat1] = { + [aux_sym_invoke_args_repeat1] = { .visible = false, .named = false, }, @@ -935,37 +935,37 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [14] = 14, [15] = 15, [16] = 16, - [17] = 16, - [18] = 16, - [19] = 19, + [17] = 17, + [18] = 17, + [19] = 17, [20] = 20, [21] = 21, [22] = 22, [23] = 23, [24] = 24, [25] = 25, - [26] = 25, + [26] = 26, [27] = 27, [28] = 28, [29] = 29, - [30] = 30, + [30] = 28, [31] = 31, [32] = 32, - [33] = 31, + [33] = 33, [34] = 34, - [35] = 35, - [36] = 29, + [35] = 33, + [36] = 36, [37] = 37, [38] = 38, [39] = 39, - [40] = 40, + [40] = 31, [41] = 41, [42] = 42, [43] = 43, [44] = 44, [45] = 45, [46] = 46, - [47] = 37, + [47] = 47, [48] = 48, [49] = 49, [50] = 50, @@ -980,7 +980,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [59] = 59, [60] = 60, [61] = 61, - [62] = 62, + [62] = 37, [63] = 63, [64] = 64, [65] = 65, @@ -1002,7 +1002,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [81] = 80, [82] = 82, [83] = 83, - [84] = 82, + [84] = 83, [85] = 85, [86] = 86, [87] = 87, @@ -1015,19 +1015,19 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [94] = 94, [95] = 95, [96] = 96, - [97] = 95, + [97] = 97, [98] = 98, - [99] = 88, + [99] = 92, [100] = 100, - [101] = 98, + [101] = 101, [102] = 102, [103] = 103, [104] = 104, [105] = 105, [106] = 106, [107] = 107, - [108] = 108, - [109] = 109, + [108] = 106, + [109] = 87, [110] = 110, [111] = 111, [112] = 112, @@ -1054,8 +1054,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [133] = 133, [134] = 134, [135] = 135, - [136] = 126, - [137] = 137, + [136] = 136, + [137] = 129, [138] = 138, [139] = 139, [140] = 140, @@ -1066,13 +1066,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [145] = 145, [146] = 146, [147] = 147, - [148] = 128, - [149] = 149, + [148] = 148, + [149] = 145, [150] = 150, - [151] = 149, + [151] = 151, [152] = 152, [153] = 153, - [154] = 154, + [154] = 153, [155] = 155, [156] = 156, [157] = 157, @@ -1085,8 +1085,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [164] = 164, [165] = 165, [166] = 166, - [167] = 28, - [168] = 168, + [167] = 167, + [168] = 41, [169] = 169, [170] = 170, [171] = 171, @@ -1099,7 +1099,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [178] = 178, [179] = 179, [180] = 180, - [181] = 28, + [181] = 181, [182] = 182, [183] = 183, [184] = 184, @@ -1107,18 +1107,18 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [186] = 186, [187] = 187, [188] = 188, - [189] = 185, + [189] = 179, [190] = 190, - [191] = 191, - [192] = 192, - [193] = 41, + [191] = 59, + [192] = 41, + [193] = 193, [194] = 194, [195] = 195, - [196] = 194, - [197] = 192, + [196] = 196, + [197] = 197, [198] = 198, - [199] = 199, - [200] = 41, + [199] = 182, + [200] = 183, [201] = 201, [202] = 202, [203] = 203, @@ -1130,17 +1130,17 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [209] = 209, [210] = 210, [211] = 211, - [212] = 212, + [212] = 86, [213] = 213, - [214] = 214, + [214] = 151, [215] = 215, - [216] = 85, + [216] = 216, [217] = 217, - [218] = 218, + [218] = 156, [219] = 219, [220] = 220, [221] = 221, - [222] = 206, + [222] = 222, [223] = 223, [224] = 224, [225] = 225, @@ -1151,30 +1151,30 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [230] = 230, [231] = 231, [232] = 232, - [233] = 233, + [233] = 59, [234] = 234, [235] = 235, [236] = 236, [237] = 237, [238] = 238, - [239] = 239, - [240] = 41, + [239] = 85, + [240] = 211, [241] = 241, - [242] = 215, - [243] = 171, - [244] = 154, + [242] = 242, + [243] = 243, + [244] = 231, [245] = 245, - [246] = 79, + [246] = 246, [247] = 247, - [248] = 207, - [249] = 249, - [250] = 250, + [248] = 248, + [249] = 210, + [250] = 223, [251] = 251, [252] = 252, [253] = 253, - [254] = 202, - [255] = 205, - [256] = 256, + [254] = 254, + [255] = 219, + [256] = 59, [257] = 257, [258] = 258, [259] = 259, @@ -1184,9 +1184,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [263] = 263, [264] = 264, [265] = 265, - [266] = 263, + [266] = 266, [267] = 267, - [268] = 32, + [268] = 264, [269] = 267, [270] = 270, [271] = 271, @@ -1194,28 +1194,28 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [273] = 265, [274] = 274, [275] = 275, - [276] = 276, - [277] = 79, + [276] = 37, + [277] = 38, [278] = 278, [279] = 279, [280] = 280, - [281] = 281, - [282] = 282, - [283] = 85, - [284] = 284, + [281] = 86, + [282] = 32, + [283] = 34, + [284] = 85, [285] = 285, - [286] = 286, + [286] = 259, [287] = 287, [288] = 288, - [289] = 258, + [289] = 289, [290] = 290, - [291] = 291, + [291] = 260, [292] = 292, [293] = 293, [294] = 294, - [295] = 295, - [296] = 259, - [297] = 274, + [295] = 274, + [296] = 296, + [297] = 297, [298] = 298, [299] = 299, [300] = 300, @@ -1224,15 +1224,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [303] = 303, [304] = 304, [305] = 305, - [306] = 35, + [306] = 306, [307] = 307, - [308] = 261, - [309] = 309, + [308] = 308, + [309] = 262, [310] = 310, - [311] = 311, - [312] = 272, - [313] = 85, - [314] = 38, + [311] = 85, + [312] = 312, + [313] = 272, + [314] = 314, [315] = 315, [316] = 316, [317] = 317, @@ -1241,7 +1241,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [320] = 320, [321] = 321, [322] = 322, - [323] = 37, + [323] = 323, [324] = 324, [325] = 325, [326] = 326, @@ -1331,55 +1331,56 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [410] = 410, [411] = 411, [412] = 412, - [413] = 408, - [414] = 343, + [413] = 413, + [414] = 408, [415] = 415, [416] = 416, [417] = 417, [418] = 418, - [419] = 328, + [419] = 419, [420] = 398, - [421] = 378, - [422] = 422, + [421] = 381, + [422] = 418, [423] = 408, - [424] = 343, - [425] = 378, + [424] = 415, + [425] = 381, [426] = 408, - [427] = 343, - [428] = 325, + [427] = 415, + [428] = 355, [429] = 429, [430] = 430, [431] = 431, [432] = 432, [433] = 433, - [434] = 417, + [434] = 434, [435] = 435, [436] = 436, [437] = 437, [438] = 438, - [439] = 352, + [439] = 351, [440] = 440, [441] = 441, - [442] = 377, + [442] = 378, [443] = 443, - [444] = 325, + [444] = 355, [445] = 445, - [446] = 325, - [447] = 332, + [446] = 355, + [447] = 339, [448] = 448, [449] = 449, - [450] = 374, + [450] = 384, [451] = 451, - [452] = 384, - [453] = 453, + [452] = 396, + [453] = 415, [454] = 454, [455] = 455, - [456] = 438, + [456] = 437, [457] = 457, [458] = 458, [459] = 459, - [460] = 460, + [460] = 354, [461] = 461, + [462] = 462, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -1392,7 +1393,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '"') ADVANCE(27); if (lookahead == '#') ADVANCE(99); if (lookahead == '&') ADVANCE(165); - if (lookahead == '\'') ADVANCE(224); + if (lookahead == '\'') ADVANCE(225); if (lookahead == '(') ADVANCE(137); if (lookahead == ')') ADVANCE(139); if (lookahead == ',') ADVANCE(138); @@ -1409,18 +1410,18 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '[') ADVANCE(140); if (lookahead == '\\') SKIP(112) if (lookahead == ']') ADVANCE(141); - if (lookahead == 'b') ADVANCE(226); + if (lookahead == 'b') ADVANCE(227); if (lookahead == 'c') ADVANCE(39); - if (lookahead == 'd') ADVANCE(225); + if (lookahead == 'd') ADVANCE(226); if (lookahead == 'e') ADVANCE(61); if (lookahead == 'g') ADVANCE(79); if (lookahead == 'i') ADVANCE(50); - if (lookahead == 'o') ADVANCE(228); + if (lookahead == 'o') ADVANCE(229); if (lookahead == 'p') ADVANCE(34); if (lookahead == 'r') ADVANCE(40); if (lookahead == 's') ADVANCE(41); if (lookahead == 'w') ADVANCE(53); - if (lookahead == 'x') ADVANCE(227); + if (lookahead == 'x') ADVANCE(228); if (lookahead == '{') ADVANCE(132); if (lookahead == '|') ADVANCE(164); if (lookahead == '}') ADVANCE(133); @@ -1430,7 +1431,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(223); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224); END_STATE(); case 1: if (lookahead == '\n') SKIP(23) @@ -1440,17 +1441,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '\r') SKIP(1) END_STATE(); case 3: - if (lookahead == '\n') SKIP(24) + if (lookahead == '\n') SKIP(25) END_STATE(); case 4: - if (lookahead == '\n') SKIP(24) + if (lookahead == '\n') SKIP(25) if (lookahead == '\r') SKIP(3) END_STATE(); case 5: - if (lookahead == '\n') SKIP(25) + if (lookahead == '\n') SKIP(24) END_STATE(); case 6: - if (lookahead == '\n') SKIP(25) + if (lookahead == '\n') SKIP(24) if (lookahead == '\r') SKIP(5) END_STATE(); case 7: @@ -1563,7 +1564,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(23) if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 24: if (lookahead == '!') ADVANCE(31); @@ -1576,7 +1577,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '=') ADVANCE(151); if (lookahead == '>') ADVANCE(160); if (lookahead == '?') ADVANCE(166); - if (lookahead == '\\') SKIP(4) + if (lookahead == '\\') SKIP(6) if (lookahead == 'w') ADVANCE(58); if (lookahead == '{') ADVANCE(132); if (lookahead == '|') ADVANCE(164); @@ -1597,9 +1598,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '>') ADVANCE(160); if (lookahead == '?') ADVANCE(166); if (lookahead == '@') ADVANCE(185); - if (lookahead == '\\') SKIP(6) + if (lookahead == '\\') SKIP(4) if (lookahead == 'c') ADVANCE(209); if (lookahead == 'g') ADVANCE(215); + if (lookahead == 's') ADVANCE(218); if (lookahead == '|') ADVANCE(164); if (lookahead == '}') ADVANCE(133); if (lookahead == '\t' || @@ -1608,7 +1610,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(25) if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 26: if (lookahead == '!') ADVANCE(162); @@ -1624,10 +1626,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(26) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(223); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 27: if (lookahead == '"') ADVANCE(186); @@ -1648,7 +1650,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(28) if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 29: if (lookahead == '*') ADVANCE(109); @@ -1672,7 +1674,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(30) if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 31: if (lookahead == '=') ADVANCE(157); @@ -2061,10 +2063,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 135: ACCEPT_TOKEN(anon_sym_comb); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 136: ACCEPT_TOKEN(anon_sym_COLON); @@ -2119,10 +2121,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 149: ACCEPT_TOKEN(anon_sym_ref); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 150: ACCEPT_TOKEN(anon_sym_EQ); @@ -2140,10 +2142,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 154: ACCEPT_TOKEN(anon_sym_group); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 155: ACCEPT_TOKEN(anon_sym_DOT); @@ -2193,10 +2195,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 169: ACCEPT_TOKEN(anon_sym_invoke); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 170: ACCEPT_TOKEN(anon_sym_with); @@ -2207,10 +2209,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 172: ACCEPT_TOKEN(anon_sym_seq); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 173: ACCEPT_TOKEN(anon_sym_par); @@ -2218,10 +2220,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 174: ACCEPT_TOKEN(anon_sym_par); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 175: ACCEPT_TOKEN(anon_sym_if); @@ -2229,10 +2231,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 176: ACCEPT_TOKEN(anon_sym_if); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 177: ACCEPT_TOKEN(anon_sym_else); @@ -2240,10 +2242,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 178: ACCEPT_TOKEN(anon_sym_else); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 179: ACCEPT_TOKEN(anon_sym_while); @@ -2251,10 +2253,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 180: ACCEPT_TOKEN(anon_sym_while); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 181: ACCEPT_TOKEN(anon_sym_static); @@ -2262,10 +2264,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 182: ACCEPT_TOKEN(anon_sym_static); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 183: ACCEPT_TOKEN(anon_sym_repeat); @@ -2273,10 +2275,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 184: ACCEPT_TOKEN(anon_sym_repeat); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 185: ACCEPT_TOKEN(anon_sym_AT); @@ -2291,343 +2293,352 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(sym_ident); if (lookahead == 'a') ADVANCE(214); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 188: ACCEPT_TOKEN(sym_ident); - if (lookahead == 'a') ADVANCE(218); + if (lookahead == 'a') ADVANCE(219); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 189: ACCEPT_TOKEN(sym_ident); if (lookahead == 'a') ADVANCE(217); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 190: ACCEPT_TOKEN(sym_ident); if (lookahead == 'b') ADVANCE(135); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 191: ACCEPT_TOKEN(sym_ident); if (lookahead == 'c') ADVANCE(182); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 192: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(212); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 193: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(213); if (lookahead == 't') ADVANCE(188); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 194: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(180); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 195: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(169); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 196: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(178); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 197: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(200); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 198: ACCEPT_TOKEN(sym_ident); if (lookahead == 'e') ADVANCE(189); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 199: ACCEPT_TOKEN(sym_ident); if (lookahead == 'f') ADVANCE(176); - if (lookahead == 'n') ADVANCE(220); + if (lookahead == 'n') ADVANCE(221); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 200: ACCEPT_TOKEN(sym_ident); if (lookahead == 'f') ADVANCE(149); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 201: ACCEPT_TOKEN(sym_ident); if (lookahead == 'h') ADVANCE(202); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 202: ACCEPT_TOKEN(sym_ident); if (lookahead == 'i') ADVANCE(206); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 203: ACCEPT_TOKEN(sym_ident); if (lookahead == 'i') ADVANCE(191); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 204: ACCEPT_TOKEN(sym_ident); if (lookahead == 'k') ADVANCE(195); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 205: ACCEPT_TOKEN(sym_ident); if (lookahead == 'l') ADVANCE(216); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 206: ACCEPT_TOKEN(sym_ident); if (lookahead == 'l') ADVANCE(194); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 207: ACCEPT_TOKEN(sym_ident); if (lookahead == 'm') ADVANCE(190); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 208: ACCEPT_TOKEN(sym_ident); if (lookahead == 'o') ADVANCE(204); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 209: ACCEPT_TOKEN(sym_ident); if (lookahead == 'o') ADVANCE(207); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 210: ACCEPT_TOKEN(sym_ident); - if (lookahead == 'o') ADVANCE(219); + if (lookahead == 'o') ADVANCE(220); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 211: ACCEPT_TOKEN(sym_ident); if (lookahead == 'p') ADVANCE(154); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 212: ACCEPT_TOKEN(sym_ident); if (lookahead == 'p') ADVANCE(198); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 213: ACCEPT_TOKEN(sym_ident); if (lookahead == 'q') ADVANCE(172); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 214: ACCEPT_TOKEN(sym_ident); if (lookahead == 'r') ADVANCE(174); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 215: ACCEPT_TOKEN(sym_ident); if (lookahead == 'r') ADVANCE(210); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 216: ACCEPT_TOKEN(sym_ident); if (lookahead == 's') ADVANCE(196); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 217: ACCEPT_TOKEN(sym_ident); if (lookahead == 't') ADVANCE(184); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 218: ACCEPT_TOKEN(sym_ident); - if (lookahead == 't') ADVANCE(203); + if (lookahead == 't') ADVANCE(188); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 219: ACCEPT_TOKEN(sym_ident); - if (lookahead == 'u') ADVANCE(211); + if (lookahead == 't') ADVANCE(203); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 220: ACCEPT_TOKEN(sym_ident); - if (lookahead == 'v') ADVANCE(208); + if (lookahead == 'u') ADVANCE(211); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 221: ACCEPT_TOKEN(sym_ident); + if (lookahead == 'v') ADVANCE(208); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(222); + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 222: ACCEPT_TOKEN(sym_ident); if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || + ('0' <= lookahead && lookahead <= '9')) ADVANCE(223); + if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(222); END_STATE(); case 223: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(223); + ACCEPT_TOKEN(sym_ident); + if (lookahead == '-' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(223); END_STATE(); case 224: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224); END_STATE(); case 225: - ACCEPT_TOKEN(anon_sym_d); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 226: - ACCEPT_TOKEN(anon_sym_b); + ACCEPT_TOKEN(anon_sym_d); END_STATE(); case 227: - ACCEPT_TOKEN(anon_sym_x); + ACCEPT_TOKEN(anon_sym_b); END_STATE(); case 228: + ACCEPT_TOKEN(anon_sym_x); + END_STATE(); + case 229: ACCEPT_TOKEN(anon_sym_o); END_STATE(); default: @@ -2655,56 +2666,56 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [16] = {.lex_state = 23}, [17] = {.lex_state = 23}, [18] = {.lex_state = 23}, - [19] = {.lex_state = 0}, - [20] = {.lex_state = 24}, - [21] = {.lex_state = 0}, + [19] = {.lex_state = 23}, + [20] = {.lex_state = 0}, + [21] = {.lex_state = 25}, [22] = {.lex_state = 0}, - [23] = {.lex_state = 23}, - [24] = {.lex_state = 25}, - [25] = {.lex_state = 23}, + [23] = {.lex_state = 24}, + [24] = {.lex_state = 0}, + [25] = {.lex_state = 25}, [26] = {.lex_state = 23}, - [27] = {.lex_state = 0}, + [27] = {.lex_state = 25}, [28] = {.lex_state = 23}, - [29] = {.lex_state = 26}, - [30] = {.lex_state = 25}, + [29] = {.lex_state = 0}, + [30] = {.lex_state = 23}, [31] = {.lex_state = 26}, [32] = {.lex_state = 30}, [33] = {.lex_state = 26}, - [34] = {.lex_state = 25}, - [35] = {.lex_state = 30}, - [36] = {.lex_state = 26}, + [34] = {.lex_state = 30}, + [35] = {.lex_state = 26}, + [36] = {.lex_state = 25}, [37] = {.lex_state = 30}, [38] = {.lex_state = 30}, [39] = {.lex_state = 23}, - [40] = {.lex_state = 25}, + [40] = {.lex_state = 26}, [41] = {.lex_state = 23}, [42] = {.lex_state = 23}, - [43] = {.lex_state = 23}, + [43] = {.lex_state = 25}, [44] = {.lex_state = 23}, [45] = {.lex_state = 23}, [46] = {.lex_state = 23}, [47] = {.lex_state = 23}, - [48] = {.lex_state = 25}, + [48] = {.lex_state = 23}, [49] = {.lex_state = 25}, [50] = {.lex_state = 25}, - [51] = {.lex_state = 25}, + [51] = {.lex_state = 23}, [52] = {.lex_state = 23}, - [53] = {.lex_state = 25}, - [54] = {.lex_state = 25}, - [55] = {.lex_state = 25}, + [53] = {.lex_state = 23}, + [54] = {.lex_state = 23}, + [55] = {.lex_state = 23}, [56] = {.lex_state = 23}, [57] = {.lex_state = 23}, - [58] = {.lex_state = 23}, + [58] = {.lex_state = 25}, [59] = {.lex_state = 23}, - [60] = {.lex_state = 23}, - [61] = {.lex_state = 23}, + [60] = {.lex_state = 25}, + [61] = {.lex_state = 25}, [62] = {.lex_state = 23}, - [63] = {.lex_state = 23}, - [64] = {.lex_state = 23}, - [65] = {.lex_state = 23}, + [63] = {.lex_state = 25}, + [64] = {.lex_state = 25}, + [65] = {.lex_state = 25}, [66] = {.lex_state = 23}, - [67] = {.lex_state = 25}, - [68] = {.lex_state = 25}, + [67] = {.lex_state = 23}, + [68] = {.lex_state = 23}, [69] = {.lex_state = 23}, [70] = {.lex_state = 23}, [71] = {.lex_state = 23}, @@ -2718,191 +2729,191 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [79] = {.lex_state = 23}, [80] = {.lex_state = 25}, [81] = {.lex_state = 25}, - [82] = {.lex_state = 25}, - [83] = {.lex_state = 0}, + [82] = {.lex_state = 0}, + [83] = {.lex_state = 25}, [84] = {.lex_state = 25}, [85] = {.lex_state = 23}, - [86] = {.lex_state = 26}, - [87] = {.lex_state = 26}, - [88] = {.lex_state = 0}, + [86] = {.lex_state = 23}, + [87] = {.lex_state = 0}, + [88] = {.lex_state = 26}, [89] = {.lex_state = 26}, [90] = {.lex_state = 26}, [91] = {.lex_state = 26}, - [92] = {.lex_state = 26}, + [92] = {.lex_state = 0}, [93] = {.lex_state = 26}, [94] = {.lex_state = 26}, - [95] = {.lex_state = 0}, + [95] = {.lex_state = 26}, [96] = {.lex_state = 26}, - [97] = {.lex_state = 0}, - [98] = {.lex_state = 0}, + [97] = {.lex_state = 26}, + [98] = {.lex_state = 26}, [99] = {.lex_state = 0}, [100] = {.lex_state = 26}, - [101] = {.lex_state = 0}, + [101] = {.lex_state = 26}, [102] = {.lex_state = 26}, [103] = {.lex_state = 26}, [104] = {.lex_state = 26}, [105] = {.lex_state = 26}, - [106] = {.lex_state = 26}, + [106] = {.lex_state = 0}, [107] = {.lex_state = 26}, - [108] = {.lex_state = 26}, + [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 28}, + [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, + [118] = {.lex_state = 28}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 26}, + [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, - [124] = {.lex_state = 25}, + [124] = {.lex_state = 28}, [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, - [127] = {.lex_state = 25}, + [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, + [130] = {.lex_state = 26}, + [131] = {.lex_state = 26}, [132] = {.lex_state = 0}, - [133] = {.lex_state = 0}, + [133] = {.lex_state = 28}, [134] = {.lex_state = 0}, - [135] = {.lex_state = 26}, + [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 26}, - [139] = {.lex_state = 0}, + [138] = {.lex_state = 25}, + [139] = {.lex_state = 25}, [140] = {.lex_state = 0}, - [141] = {.lex_state = 28}, + [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 25}, - [144] = {.lex_state = 0}, - [145] = {.lex_state = 25}, - [146] = {.lex_state = 28}, + [144] = {.lex_state = 25}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 26}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, [150] = {.lex_state = 0}, - [151] = {.lex_state = 0}, - [152] = {.lex_state = 26}, + [151] = {.lex_state = 25}, + [152] = {.lex_state = 25}, [153] = {.lex_state = 0}, - [154] = {.lex_state = 25}, - [155] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 25}, [156] = {.lex_state = 25}, - [157] = {.lex_state = 28}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 0}, - [160] = {.lex_state = 25}, - [161] = {.lex_state = 25}, - [162] = {.lex_state = 28}, - [163] = {.lex_state = 25}, - [164] = {.lex_state = 28}, - [165] = {.lex_state = 0}, + [157] = {.lex_state = 25}, + [158] = {.lex_state = 25}, + [159] = {.lex_state = 25}, + [160] = {.lex_state = 26}, + [161] = {.lex_state = 0}, + [162] = {.lex_state = 0}, + [163] = {.lex_state = 28}, + [164] = {.lex_state = 0}, + [165] = {.lex_state = 28}, [166] = {.lex_state = 0}, [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, [169] = {.lex_state = 28}, [170] = {.lex_state = 0}, - [171] = {.lex_state = 25}, - [172] = {.lex_state = 28}, - [173] = {.lex_state = 25}, + [171] = {.lex_state = 0}, + [172] = {.lex_state = 0}, + [173] = {.lex_state = 28}, [174] = {.lex_state = 28}, - [175] = {.lex_state = 26}, - [176] = {.lex_state = 28}, - [177] = {.lex_state = 0}, + [175] = {.lex_state = 28}, + [176] = {.lex_state = 0}, + [177] = {.lex_state = 28}, [178] = {.lex_state = 0}, [179] = {.lex_state = 0}, - [180] = {.lex_state = 26}, - [181] = {.lex_state = 26}, - [182] = {.lex_state = 28}, + [180] = {.lex_state = 0}, + [181] = {.lex_state = 28}, + [182] = {.lex_state = 26}, [183] = {.lex_state = 0}, - [184] = {.lex_state = 26}, + [184] = {.lex_state = 0}, [185] = {.lex_state = 0}, [186] = {.lex_state = 0}, [187] = {.lex_state = 26}, - [188] = {.lex_state = 0}, + [188] = {.lex_state = 26}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 0}, + [190] = {.lex_state = 26}, [191] = {.lex_state = 0}, [192] = {.lex_state = 26}, [193] = {.lex_state = 0}, [194] = {.lex_state = 0}, - [195] = {.lex_state = 28}, - [196] = {.lex_state = 0}, - [197] = {.lex_state = 26}, - [198] = {.lex_state = 0}, - [199] = {.lex_state = 28}, - [200] = {.lex_state = 26}, - [201] = {.lex_state = 0}, - [202] = {.lex_state = 26}, - [203] = {.lex_state = 0}, + [195] = {.lex_state = 26}, + [196] = {.lex_state = 28}, + [197] = {.lex_state = 0}, + [198] = {.lex_state = 28}, + [199] = {.lex_state = 26}, + [200] = {.lex_state = 0}, + [201] = {.lex_state = 14}, + [202] = {.lex_state = 14}, + [203] = {.lex_state = 26}, [204] = {.lex_state = 0}, - [205] = {.lex_state = 26}, - [206] = {.lex_state = 26}, - [207] = {.lex_state = 26}, + [205] = {.lex_state = 0}, + [206] = {.lex_state = 0}, + [207] = {.lex_state = 0}, [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, [210] = {.lex_state = 26}, [211] = {.lex_state = 26}, [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, - [214] = {.lex_state = 0}, - [215] = {.lex_state = 26}, + [214] = {.lex_state = 26}, + [215] = {.lex_state = 0}, [216] = {.lex_state = 0}, [217] = {.lex_state = 0}, - [218] = {.lex_state = 0}, - [219] = {.lex_state = 0}, - [220] = {.lex_state = 14}, - [221] = {.lex_state = 26}, - [222] = {.lex_state = 26}, + [218] = {.lex_state = 26}, + [219] = {.lex_state = 26}, + [220] = {.lex_state = 0}, + [221] = {.lex_state = 0}, + [222] = {.lex_state = 0}, [223] = {.lex_state = 26}, [224] = {.lex_state = 0}, [225] = {.lex_state = 0}, [226] = {.lex_state = 0}, - [227] = {.lex_state = 0}, - [228] = {.lex_state = 0}, - [229] = {.lex_state = 14}, + [227] = {.lex_state = 26}, + [228] = {.lex_state = 26}, + [229] = {.lex_state = 0}, [230] = {.lex_state = 0}, - [231] = {.lex_state = 0}, + [231] = {.lex_state = 26}, [232] = {.lex_state = 0}, - [233] = {.lex_state = 0}, + [233] = {.lex_state = 26}, [234] = {.lex_state = 0}, - [235] = {.lex_state = 26}, + [235] = {.lex_state = 0}, [236] = {.lex_state = 0}, - [237] = {.lex_state = 0}, - [238] = {.lex_state = 0}, - [239] = {.lex_state = 14}, - [240] = {.lex_state = 28}, - [241] = {.lex_state = 26}, - [242] = {.lex_state = 26}, + [237] = {.lex_state = 26}, + [238] = {.lex_state = 26}, + [239] = {.lex_state = 0}, + [240] = {.lex_state = 26}, + [241] = {.lex_state = 14}, + [242] = {.lex_state = 0}, [243] = {.lex_state = 26}, [244] = {.lex_state = 26}, [245] = {.lex_state = 0}, [246] = {.lex_state = 0}, [247] = {.lex_state = 0}, - [248] = {.lex_state = 26}, - [249] = {.lex_state = 0}, - [250] = {.lex_state = 0}, + [248] = {.lex_state = 0}, + [249] = {.lex_state = 26}, + [250] = {.lex_state = 26}, [251] = {.lex_state = 0}, [252] = {.lex_state = 0}, [253] = {.lex_state = 0}, - [254] = {.lex_state = 26}, + [254] = {.lex_state = 0}, [255] = {.lex_state = 26}, - [256] = {.lex_state = 0}, + [256] = {.lex_state = 28}, [257] = {.lex_state = 0}, - [258] = {.lex_state = 0}, + [258] = {.lex_state = 26}, [259] = {.lex_state = 0}, [260] = {.lex_state = 0}, [261] = {.lex_state = 0}, [262] = {.lex_state = 0}, [263] = {.lex_state = 0}, - [264] = {.lex_state = 26}, + [264] = {.lex_state = 0}, [265] = {.lex_state = 0}, - [266] = {.lex_state = 0}, + [266] = {.lex_state = 26}, [267] = {.lex_state = 0}, [268] = {.lex_state = 0}, [269] = {.lex_state = 0}, @@ -2913,23 +2924,23 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [274] = {.lex_state = 0}, [275] = {.lex_state = 26}, [276] = {.lex_state = 0}, - [277] = {.lex_state = 26}, + [277] = {.lex_state = 0}, [278] = {.lex_state = 0}, [279] = {.lex_state = 26}, [280] = {.lex_state = 0}, - [281] = {.lex_state = 0}, + [281] = {.lex_state = 26}, [282] = {.lex_state = 0}, - [283] = {.lex_state = 28}, - [284] = {.lex_state = 26}, - [285] = {.lex_state = 26}, + [283] = {.lex_state = 0}, + [284] = {.lex_state = 28}, + [285] = {.lex_state = 0}, [286] = {.lex_state = 0}, [287] = {.lex_state = 0}, [288] = {.lex_state = 0}, - [289] = {.lex_state = 0}, + [289] = {.lex_state = 26}, [290] = {.lex_state = 0}, [291] = {.lex_state = 0}, [292] = {.lex_state = 0}, - [293] = {.lex_state = 0}, + [293] = {.lex_state = 26}, [294] = {.lex_state = 0}, [295] = {.lex_state = 0}, [296] = {.lex_state = 0}, @@ -2943,104 +2954,104 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [304] = {.lex_state = 0}, [305] = {.lex_state = 0}, [306] = {.lex_state = 0}, - [307] = {.lex_state = 26}, - [308] = {.lex_state = 0}, - [309] = {.lex_state = 14}, - [310] = {.lex_state = 26}, - [311] = {.lex_state = 0}, + [307] = {.lex_state = 0}, + [308] = {.lex_state = 26}, + [309] = {.lex_state = 0}, + [310] = {.lex_state = 0}, + [311] = {.lex_state = 26}, [312] = {.lex_state = 0}, - [313] = {.lex_state = 26}, + [313] = {.lex_state = 0}, [314] = {.lex_state = 0}, - [315] = {.lex_state = 0}, - [316] = {.lex_state = 26}, - [317] = {.lex_state = 0}, + [315] = {.lex_state = 14}, + [316] = {.lex_state = 0}, + [317] = {.lex_state = 26}, [318] = {.lex_state = 0}, [319] = {.lex_state = 0}, [320] = {.lex_state = 0}, - [321] = {.lex_state = 28}, + [321] = {.lex_state = 0}, [322] = {.lex_state = 0}, [323] = {.lex_state = 0}, - [324] = {.lex_state = 0}, + [324] = {.lex_state = 28}, [325] = {.lex_state = 0}, - [326] = {.lex_state = 0}, + [326] = {.lex_state = 26}, [327] = {.lex_state = 0}, [328] = {.lex_state = 0}, [329] = {.lex_state = 0}, [330] = {.lex_state = 0}, [331] = {.lex_state = 26}, [332] = {.lex_state = 26}, - [333] = {.lex_state = 0}, - [334] = {.lex_state = 26}, + [333] = {.lex_state = 26}, + [334] = {.lex_state = 0}, [335] = {.lex_state = 0}, - [336] = {.lex_state = 26}, - [337] = {.lex_state = 0}, + [336] = {.lex_state = 0}, + [337] = {.lex_state = 26}, [338] = {.lex_state = 0}, [339] = {.lex_state = 26}, [340] = {.lex_state = 0}, - [341] = {.lex_state = 0}, + [341] = {.lex_state = 26}, [342] = {.lex_state = 26}, [343] = {.lex_state = 0}, [344] = {.lex_state = 0}, - [345] = {.lex_state = 26}, + [345] = {.lex_state = 121}, [346] = {.lex_state = 26}, [347] = {.lex_state = 0}, - [348] = {.lex_state = 0}, + [348] = {.lex_state = 26}, [349] = {.lex_state = 0}, - [350] = {.lex_state = 26}, - [351] = {.lex_state = 121}, + [350] = {.lex_state = 0}, + [351] = {.lex_state = 0}, [352] = {.lex_state = 0}, [353] = {.lex_state = 0}, [354] = {.lex_state = 0}, [355] = {.lex_state = 0}, - [356] = {.lex_state = 26}, + [356] = {.lex_state = 0}, [357] = {.lex_state = 0}, [358] = {.lex_state = 0}, [359] = {.lex_state = 0}, [360] = {.lex_state = 0}, [361] = {.lex_state = 0}, [362] = {.lex_state = 0}, - [363] = {.lex_state = 26}, + [363] = {.lex_state = 0}, [364] = {.lex_state = 0}, [365] = {.lex_state = 26}, [366] = {.lex_state = 26}, [367] = {.lex_state = 0}, - [368] = {.lex_state = 26}, + [368] = {.lex_state = 0}, [369] = {.lex_state = 26}, [370] = {.lex_state = 0}, - [371] = {.lex_state = 26}, - [372] = {.lex_state = 0}, + [371] = {.lex_state = 0}, + [372] = {.lex_state = 26}, [373] = {.lex_state = 0}, - [374] = {.lex_state = 26}, - [375] = {.lex_state = 26}, - [376] = {.lex_state = 0}, + [374] = {.lex_state = 0}, + [375] = {.lex_state = 0}, + [376] = {.lex_state = 26}, [377] = {.lex_state = 0}, [378] = {.lex_state = 0}, - [379] = {.lex_state = 0}, - [380] = {.lex_state = 0}, + [379] = {.lex_state = 26}, + [380] = {.lex_state = 26}, [381] = {.lex_state = 0}, [382] = {.lex_state = 0}, [383] = {.lex_state = 0}, - [384] = {.lex_state = 0}, + [384] = {.lex_state = 26}, [385] = {.lex_state = 0}, - [386] = {.lex_state = 26}, + [386] = {.lex_state = 0}, [387] = {.lex_state = 26}, - [388] = {.lex_state = 0}, + [388] = {.lex_state = 26}, [389] = {.lex_state = 0}, - [390] = {.lex_state = 26}, + [390] = {.lex_state = 0}, [391] = {.lex_state = 0}, - [392] = {.lex_state = 26}, - [393] = {.lex_state = 0}, - [394] = {.lex_state = 0}, + [392] = {.lex_state = 0}, + [393] = {.lex_state = 26}, + [394] = {.lex_state = 26}, [395] = {.lex_state = 0}, [396] = {.lex_state = 0}, [397] = {.lex_state = 0}, [398] = {.lex_state = 0}, - [399] = {.lex_state = 26}, - [400] = {.lex_state = 0}, + [399] = {.lex_state = 0}, + [400] = {.lex_state = 26}, [401] = {.lex_state = 0}, - [402] = {.lex_state = 0}, + [402] = {.lex_state = 26}, [403] = {.lex_state = 0}, - [404] = {.lex_state = 26}, + [404] = {.lex_state = 0}, [405] = {.lex_state = 0}, [406] = {.lex_state = 26}, [407] = {.lex_state = 0}, @@ -3049,8 +3060,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [410] = {.lex_state = 0}, [411] = {.lex_state = 0}, [412] = {.lex_state = 0}, - [413] = {.lex_state = 26}, - [414] = {.lex_state = 0}, + [413] = {.lex_state = 0}, + [414] = {.lex_state = 26}, [415] = {.lex_state = 0}, [416] = {.lex_state = 0}, [417] = {.lex_state = 0}, @@ -3070,16 +3081,16 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [431] = {.lex_state = 26}, [432] = {.lex_state = 0}, [433] = {.lex_state = 0}, - [434] = {.lex_state = 0}, - [435] = {.lex_state = 26}, + [434] = {.lex_state = 26}, + [435] = {.lex_state = 0}, [436] = {.lex_state = 0}, [437] = {.lex_state = 0}, - [438] = {.lex_state = 0}, + [438] = {.lex_state = 26}, [439] = {.lex_state = 0}, [440] = {.lex_state = 0}, [441] = {.lex_state = 22}, [442] = {.lex_state = 0}, - [443] = {.lex_state = 26}, + [443] = {.lex_state = 0}, [444] = {.lex_state = 0}, [445] = {.lex_state = 0}, [446] = {.lex_state = 0}, @@ -3096,8 +3107,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [457] = {.lex_state = 26}, [458] = {.lex_state = 0}, [459] = {.lex_state = 0}, - [460] = {(TSStateId)(-1)}, + [460] = {.lex_state = 0}, [461] = {(TSStateId)(-1)}, + [462] = {(TSStateId)(-1)}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3161,16 +3173,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [1] = { [sym_source_file] = STATE(449), [sym_comment] = STATE(1), - [sym_import] = STATE(117), + [sym_import] = STATE(113), [sym_metadata_ci] = STATE(448), [sym_metadata] = STATE(445), [sym_component] = STATE(140), - [sym_comb_or_static] = STATE(260), + [sym_comb_or_static] = STATE(261), [sym_primitive] = STATE(140), [sym_extern] = STATE(140), - [sym_static_annotation] = STATE(204), - [aux_sym_source_file_repeat1] = STATE(19), - [aux_sym_source_file_repeat2] = STATE(21), + [sym_static_annotation] = STATE(230), + [aux_sym_source_file_repeat1] = STATE(20), + [aux_sym_source_file_repeat2] = STATE(22), [ts_builtin_sym_end] = ACTIONS(7), [anon_sym_SLASH_SLASH] = ACTIONS(3), [aux_sym_comment_token2] = ACTIONS(5), @@ -3185,7 +3197,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }; static const uint16_t ts_small_parse_table[] = { - [0] = 20, + [0] = 21, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3214,17 +3226,19 @@ static const uint16_t ts_small_parse_table[] = { sym_ident, STATE(2), 1, sym_comment, - STATE(7), 1, - aux_sym_seq_repeat1, - STATE(26), 1, + STATE(12), 1, + aux_sym_control_inner_repeat1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(359), 1, + sym_control_inner, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3232,46 +3246,45 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [67] = 20, + [70] = 19, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(23), 1, + ACTIONS(45), 1, anon_sym_SEMI, - ACTIONS(27), 1, + ACTIONS(48), 1, + anon_sym_RBRACE, + ACTIONS(50), 1, anon_sym_invoke, - ACTIONS(29), 1, + ACTIONS(53), 1, anon_sym_seq, - ACTIONS(31), 1, + ACTIONS(56), 1, anon_sym_par, - ACTIONS(33), 1, + ACTIONS(59), 1, anon_sym_if, - ACTIONS(35), 1, + ACTIONS(62), 1, anon_sym_while, - ACTIONS(37), 1, + ACTIONS(65), 1, anon_sym_static, - ACTIONS(39), 1, + ACTIONS(68), 1, anon_sym_repeat, - ACTIONS(41), 1, + ACTIONS(71), 1, anon_sym_AT, - ACTIONS(43), 1, + ACTIONS(74), 1, sym_ident, - ACTIONS(45), 1, - anon_sym_RBRACE, - STATE(3), 1, - sym_comment, - STATE(11), 1, - aux_sym_seq_repeat1, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(3), 2, + sym_comment, + aux_sym_control_inner_repeat1, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3279,7 +3292,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [134] = 20, + [135] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3304,21 +3317,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(47), 1, + ACTIONS(77), 1, anon_sym_RBRACE, STATE(4), 1, sym_comment, - STATE(10), 1, - aux_sym_seq_repeat1, - STATE(26), 1, + STATE(6), 1, + aux_sym_control_inner_repeat1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3326,7 +3339,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [201] = 20, + [202] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3351,21 +3364,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(45), 1, + ACTIONS(79), 1, anon_sym_RBRACE, STATE(5), 1, sym_comment, - STATE(7), 1, - aux_sym_seq_repeat1, - STATE(26), 1, + STATE(9), 1, + aux_sym_control_inner_repeat1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3373,7 +3386,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [268] = 20, + [269] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3398,21 +3411,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(47), 1, + ACTIONS(81), 1, anon_sym_RBRACE, + STATE(3), 1, + aux_sym_control_inner_repeat1, STATE(6), 1, sym_comment, - STATE(7), 1, - aux_sym_seq_repeat1, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3420,45 +3433,46 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [335] = 19, + [336] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(49), 1, + ACTIONS(23), 1, anon_sym_SEMI, - ACTIONS(52), 1, - anon_sym_RBRACE, - ACTIONS(54), 1, + ACTIONS(27), 1, anon_sym_invoke, - ACTIONS(57), 1, + ACTIONS(29), 1, anon_sym_seq, - ACTIONS(60), 1, + ACTIONS(31), 1, anon_sym_par, - ACTIONS(63), 1, + ACTIONS(33), 1, anon_sym_if, - ACTIONS(66), 1, + ACTIONS(35), 1, anon_sym_while, - ACTIONS(69), 1, + ACTIONS(37), 1, anon_sym_static, - ACTIONS(72), 1, + ACTIONS(39), 1, anon_sym_repeat, - ACTIONS(75), 1, + ACTIONS(41), 1, anon_sym_AT, - ACTIONS(78), 1, + ACTIONS(43), 1, sym_ident, - STATE(26), 1, + ACTIONS(83), 1, + anon_sym_RBRACE, + STATE(3), 1, + aux_sym_control_inner_repeat1, + STATE(7), 1, + sym_comment, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(7), 2, - sym_comment, - aux_sym_seq_repeat1, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3466,7 +3480,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [400] = 20, + [403] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3491,21 +3505,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(81), 1, + ACTIONS(85), 1, anon_sym_RBRACE, - STATE(5), 1, - aux_sym_seq_repeat1, + STATE(3), 1, + aux_sym_control_inner_repeat1, STATE(8), 1, sym_comment, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3513,7 +3527,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [467] = 20, + [470] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3538,21 +3552,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(83), 1, + ACTIONS(87), 1, anon_sym_RBRACE, - STATE(6), 1, - aux_sym_seq_repeat1, + STATE(3), 1, + aux_sym_control_inner_repeat1, STATE(9), 1, sym_comment, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3560,7 +3574,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [534] = 20, + [537] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3585,21 +3599,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(85), 1, + ACTIONS(89), 1, anon_sym_RBRACE, - STATE(7), 1, - aux_sym_seq_repeat1, + STATE(8), 1, + aux_sym_control_inner_repeat1, STATE(10), 1, sym_comment, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3607,7 +3621,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [601] = 20, + [604] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3632,21 +3646,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(87), 1, + ACTIONS(79), 1, anon_sym_RBRACE, - STATE(7), 1, - aux_sym_seq_repeat1, + STATE(3), 1, + aux_sym_control_inner_repeat1, STATE(11), 1, sym_comment, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3654,7 +3668,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [668] = 20, + [671] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3679,21 +3693,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(85), 1, + ACTIONS(91), 1, anon_sym_RBRACE, + STATE(3), 1, + aux_sym_control_inner_repeat1, STATE(12), 1, sym_comment, - STATE(14), 1, - aux_sym_seq_repeat1, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3701,7 +3715,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [735] = 20, + [738] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3726,21 +3740,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(87), 1, + ACTIONS(89), 1, anon_sym_RBRACE, - STATE(2), 1, - aux_sym_seq_repeat1, + STATE(3), 1, + aux_sym_control_inner_repeat1, STATE(13), 1, sym_comment, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3748,7 +3762,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [802] = 20, + [805] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3773,21 +3787,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(89), 1, + ACTIONS(83), 1, anon_sym_RBRACE, - STATE(7), 1, - aux_sym_seq_repeat1, + STATE(13), 1, + aux_sym_control_inner_repeat1, STATE(14), 1, sym_comment, - STATE(26), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(75), 1, + STATE(55), 1, sym_stmt, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(185), 1, + STATE(179), 1, sym_static_annotation, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3795,7 +3809,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [869] = 19, + [872] = 20, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3808,31 +3822,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_seq, ACTIONS(31), 1, anon_sym_par, + ACTIONS(33), 1, + anon_sym_if, + ACTIONS(35), 1, + anon_sym_while, + ACTIONS(37), 1, + anon_sym_static, + ACTIONS(39), 1, + anon_sym_repeat, ACTIONS(41), 1, anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(91), 1, - anon_sym_if, ACTIONS(93), 1, + anon_sym_RBRACE, + STATE(7), 1, + aux_sym_control_inner_repeat1, + STATE(15), 1, + sym_comment, + STATE(28), 1, + aux_sym_io_port_repeat1, + STATE(55), 1, + sym_stmt, + STATE(86), 1, + sym_at_attribute, + STATE(179), 1, + sym_static_annotation, + STATE(56), 7, + sym_enable, + sym_invoke, + sym_seq, + sym_par, + sym_if_stmt, + sym_while_stmt, + sym_repeat_stmt, + [939] = 20, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(23), 1, + anon_sym_SEMI, + ACTIONS(27), 1, + anon_sym_invoke, + ACTIONS(29), 1, + anon_sym_seq, + ACTIONS(31), 1, + anon_sym_par, + ACTIONS(33), 1, + anon_sym_if, + ACTIONS(35), 1, anon_sym_while, - ACTIONS(95), 1, + ACTIONS(37), 1, anon_sym_static, - ACTIONS(97), 1, + ACTIONS(39), 1, anon_sym_repeat, - STATE(15), 1, + ACTIONS(41), 1, + anon_sym_AT, + ACTIONS(43), 1, + sym_ident, + ACTIONS(81), 1, + anon_sym_RBRACE, + STATE(11), 1, + aux_sym_control_inner_repeat1, + STATE(16), 1, sym_comment, - STATE(25), 1, + STATE(28), 1, aux_sym_io_port_repeat1, - STATE(79), 1, + STATE(55), 1, + sym_stmt, + STATE(86), 1, sym_at_attribute, - STATE(189), 1, + STATE(179), 1, sym_static_annotation, - STATE(357), 1, - sym_stmt, - STATE(394), 1, - sym_control_inner, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3840,7 +3903,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [933] = 18, + [1006] = 18, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3857,25 +3920,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(91), 1, + ACTIONS(95), 1, anon_sym_if, - ACTIONS(93), 1, + ACTIONS(97), 1, anon_sym_while, - ACTIONS(95), 1, + ACTIONS(99), 1, anon_sym_static, - ACTIONS(97), 1, + ACTIONS(101), 1, anon_sym_repeat, - STATE(16), 1, + STATE(17), 1, sym_comment, - STATE(25), 1, + STATE(30), 1, aux_sym_io_port_repeat1, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, STATE(189), 1, sym_static_annotation, - STATE(378), 1, + STATE(425), 1, sym_stmt, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3883,7 +3946,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [994] = 18, + [1067] = 18, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3900,25 +3963,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(91), 1, + ACTIONS(95), 1, anon_sym_if, - ACTIONS(93), 1, + ACTIONS(97), 1, anon_sym_while, - ACTIONS(95), 1, + ACTIONS(99), 1, anon_sym_static, - ACTIONS(97), 1, + ACTIONS(101), 1, anon_sym_repeat, - STATE(17), 1, + STATE(18), 1, sym_comment, - STATE(25), 1, + STATE(30), 1, aux_sym_io_port_repeat1, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, STATE(189), 1, sym_static_annotation, - STATE(421), 1, + STATE(381), 1, sym_stmt, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3926,7 +3989,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [1055] = 18, + [1128] = 18, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3943,25 +4006,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AT, ACTIONS(43), 1, sym_ident, - ACTIONS(91), 1, + ACTIONS(95), 1, anon_sym_if, - ACTIONS(93), 1, + ACTIONS(97), 1, anon_sym_while, - ACTIONS(95), 1, + ACTIONS(99), 1, anon_sym_static, - ACTIONS(97), 1, + ACTIONS(101), 1, anon_sym_repeat, - STATE(18), 1, + STATE(19), 1, sym_comment, - STATE(25), 1, + STATE(30), 1, aux_sym_io_port_repeat1, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, STATE(189), 1, sym_static_annotation, - STATE(425), 1, + STATE(421), 1, sym_stmt, - STATE(45), 7, + STATE(56), 7, sym_enable, sym_invoke, sym_seq, @@ -3969,7 +4032,7 @@ static const uint16_t ts_small_parse_table[] = { sym_if_stmt, sym_while_stmt, sym_repeat_stmt, - [1116] = 19, + [1189] = 19, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -3988,19 +4051,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_extern, ACTIONS(21), 1, anon_sym_static, - ACTIONS(99), 1, + ACTIONS(103), 1, ts_builtin_sym_end, - STATE(19), 1, + STATE(20), 1, sym_comment, - STATE(22), 1, + STATE(24), 1, aux_sym_source_file_repeat2, - STATE(83), 1, + STATE(82), 1, aux_sym_source_file_repeat1, - STATE(117), 1, + STATE(113), 1, sym_import, - STATE(204), 1, + STATE(230), 1, sym_static_annotation, - STATE(260), 1, + STATE(261), 1, sym_comb_or_static, STATE(429), 1, sym_metadata, @@ -4010,31 +4073,42 @@ static const uint16_t ts_small_parse_table[] = { sym_component, sym_primitive, sym_extern, - [1176] = 5, + [1249] = 16, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(20), 1, + ACTIONS(105), 1, + anon_sym_RBRACE, + ACTIONS(107), 1, + anon_sym_comb, + ACTIONS(109), 1, + anon_sym_group, + ACTIONS(111), 1, + anon_sym_static, + ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(115), 1, + sym_ident, + STATE(21), 1, sym_comment, - ACTIONS(103), 3, - anon_sym_EQ, - anon_sym_GT, - anon_sym_LT, - ACTIONS(101), 12, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - anon_sym_with, - [1205] = 16, + STATE(25), 1, + aux_sym_wires_inner_repeat1, + STATE(199), 1, + sym_at_attribute, + STATE(327), 1, + sym_static_annotation, + STATE(329), 1, + sym_wires_inner, + STATE(339), 1, + sym_lhs, + STATE(155), 2, + sym_group, + sym_wire_assignment, + STATE(333), 2, + sym_hole, + sym_port, + [1300] = 16, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -4051,15 +4125,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_extern, ACTIONS(21), 1, anon_sym_static, - ACTIONS(99), 1, + ACTIONS(103), 1, ts_builtin_sym_end, - STATE(21), 1, + STATE(22), 1, sym_comment, - STATE(27), 1, + STATE(29), 1, aux_sym_source_file_repeat2, - STATE(204), 1, + STATE(230), 1, sym_static_annotation, - STATE(260), 1, + STATE(261), 1, sym_comb_or_static, STATE(429), 1, sym_metadata, @@ -4069,7 +4143,31 @@ static const uint16_t ts_small_parse_table[] = { sym_component, sym_primitive, sym_extern, - [1256] = 16, + [1351] = 5, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(23), 1, + sym_comment, + ACTIONS(119), 3, + anon_sym_EQ, + anon_sym_GT, + anon_sym_LT, + ACTIONS(117), 12, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + anon_sym_with, + [1380] = 16, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -4086,15 +4184,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_extern, ACTIONS(21), 1, anon_sym_static, - ACTIONS(105), 1, + ACTIONS(121), 1, ts_builtin_sym_end, - STATE(22), 1, + STATE(24), 1, sym_comment, - STATE(27), 1, + STATE(29), 1, aux_sym_source_file_repeat2, - STATE(204), 1, + STATE(230), 1, sym_static_annotation, - STATE(260), 1, + STATE(261), 1, sym_comb_or_static, STATE(409), 1, sym_metadata, @@ -4104,22 +4202,55 @@ static const uint16_t ts_small_parse_table[] = { sym_component, sym_primitive, sym_extern, - [1307] = 7, + [1431] = 15, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(107), 1, + anon_sym_comb, ACTIONS(109), 1, - anon_sym_LBRACK, + anon_sym_group, + ACTIONS(111), 1, + anon_sym_static, ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(115), 1, + sym_ident, + ACTIONS(123), 1, + anon_sym_RBRACE, + STATE(25), 1, + sym_comment, + STATE(27), 1, + aux_sym_wires_inner_repeat1, + STATE(199), 1, + sym_at_attribute, + STATE(327), 1, + sym_static_annotation, + STATE(339), 1, + sym_lhs, + STATE(155), 2, + sym_group, + sym_wire_assignment, + STATE(333), 2, + sym_hole, + sym_port, + [1479] = 7, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(127), 1, + anon_sym_LBRACK, + ACTIONS(131), 1, anon_sym_DOT, - STATE(23), 1, + STATE(26), 1, sym_comment, - ACTIONS(111), 3, + ACTIONS(129), 3, anon_sym_EQ, anon_sym_GT, anon_sym_LT, - ACTIONS(107), 9, + ACTIONS(125), 9, anon_sym_SEMI, anon_sym_RPAREN, anon_sym_EQ_EQ, @@ -4129,246 +4260,175 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_QMARK, - [1339] = 14, + [1511] = 14, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(115), 1, + ACTIONS(133), 1, anon_sym_RBRACE, - ACTIONS(117), 1, + ACTIONS(135), 1, anon_sym_comb, - ACTIONS(119), 1, + ACTIONS(138), 1, anon_sym_group, - ACTIONS(121), 1, + ACTIONS(141), 1, + anon_sym_static, + ACTIONS(144), 1, anon_sym_AT, - ACTIONS(123), 1, + ACTIONS(147), 1, sym_ident, - STATE(24), 1, - sym_comment, - STATE(40), 1, - aux_sym_wires_inner_repeat1, - STATE(197), 1, + STATE(199), 1, sym_at_attribute, - STATE(332), 1, + STATE(327), 1, + sym_static_annotation, + STATE(339), 1, sym_lhs, - STATE(335), 1, - sym_wires_inner, - STATE(156), 2, + STATE(27), 2, + sym_comment, + aux_sym_wires_inner_repeat1, + STATE(155), 2, sym_group, sym_wire_assignment, - STATE(334), 2, + STATE(333), 2, sym_hole, sym_port, - [1384] = 16, + [1557] = 16, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(41), 1, anon_sym_AT, - ACTIONS(125), 1, + ACTIONS(150), 1, anon_sym_SEMI, - ACTIONS(127), 1, + ACTIONS(152), 1, anon_sym_invoke, - ACTIONS(129), 1, + ACTIONS(154), 1, anon_sym_seq, - ACTIONS(131), 1, + ACTIONS(156), 1, anon_sym_par, - ACTIONS(133), 1, + ACTIONS(158), 1, anon_sym_if, - ACTIONS(135), 1, + ACTIONS(160), 1, anon_sym_while, - ACTIONS(137), 1, + ACTIONS(162), 1, anon_sym_static, - ACTIONS(139), 1, + ACTIONS(164), 1, anon_sym_repeat, - ACTIONS(141), 1, + ACTIONS(166), 1, sym_ident, - STATE(25), 1, - sym_comment, STATE(28), 1, - aux_sym_io_port_repeat1, - STATE(79), 1, - sym_at_attribute, - STATE(196), 1, - sym_static_annotation, - [1433] = 16, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(41), 1, - anon_sym_AT, - ACTIONS(125), 1, - anon_sym_SEMI, - ACTIONS(127), 1, - anon_sym_invoke, - ACTIONS(129), 1, - anon_sym_seq, - ACTIONS(131), 1, - anon_sym_par, - ACTIONS(141), 1, - sym_ident, - ACTIONS(143), 1, - anon_sym_if, - ACTIONS(145), 1, - anon_sym_while, - ACTIONS(147), 1, - anon_sym_static, - ACTIONS(149), 1, - anon_sym_repeat, - STATE(26), 1, sym_comment, - STATE(28), 1, + STATE(41), 1, aux_sym_io_port_repeat1, - STATE(79), 1, + STATE(86), 1, sym_at_attribute, - STATE(194), 1, + STATE(200), 1, sym_static_annotation, - [1482] = 12, + [1606] = 12, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(153), 1, + ACTIONS(170), 1, anon_sym_component, - ACTIONS(156), 1, + ACTIONS(173), 1, anon_sym_comb, - ACTIONS(159), 1, + ACTIONS(176), 1, anon_sym_primitive, - ACTIONS(162), 1, + ACTIONS(179), 1, anon_sym_extern, - ACTIONS(165), 1, + ACTIONS(182), 1, anon_sym_static, - STATE(204), 1, + STATE(230), 1, sym_static_annotation, - STATE(260), 1, + STATE(261), 1, sym_comb_or_static, - ACTIONS(151), 2, + ACTIONS(168), 2, ts_builtin_sym_end, aux_sym_metadata_ci_token1, - STATE(27), 2, + STATE(29), 2, sym_comment, aux_sym_source_file_repeat2, STATE(140), 3, sym_component, sym_primitive, sym_extern, - [1523] = 7, + [1647] = 16, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(168), 1, - anon_sym_SEMI, - ACTIONS(172), 1, + ACTIONS(41), 1, anon_sym_AT, - STATE(79), 1, - sym_at_attribute, - STATE(28), 2, - sym_comment, - aux_sym_io_port_repeat1, - ACTIONS(170), 8, + ACTIONS(150), 1, + anon_sym_SEMI, + ACTIONS(152), 1, anon_sym_invoke, + ACTIONS(154), 1, anon_sym_seq, + ACTIONS(156), 1, anon_sym_par, + ACTIONS(166), 1, + sym_ident, + ACTIONS(185), 1, anon_sym_if, + ACTIONS(187), 1, anon_sym_while, + ACTIONS(189), 1, anon_sym_static, + ACTIONS(191), 1, anon_sym_repeat, - sym_ident, - [1553] = 12, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(175), 1, - anon_sym_LPAREN, - ACTIONS(177), 1, - anon_sym_BANG, - ACTIONS(179), 1, - sym_ident, - ACTIONS(181), 1, - sym_number, - STATE(29), 1, - sym_comment, - STATE(80), 1, - sym_expr, - STATE(422), 1, - sym_term, - STATE(434), 1, - sym_switch, - STATE(68), 2, - sym_base_expr, - sym_cmp_expr, - STATE(67), 3, - sym_hole, - sym_port, - sym_literal, - [1593] = 5, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, STATE(30), 1, sym_comment, - ACTIONS(185), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(183), 10, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - [1619] = 12, + STATE(41), 1, + aux_sym_io_port_repeat1, + STATE(86), 1, + sym_at_attribute, + STATE(183), 1, + sym_static_annotation, + [1696] = 12, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(177), 1, + ACTIONS(195), 1, anon_sym_BANG, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, STATE(31), 1, sym_comment, - STATE(84), 1, + STATE(83), 1, sym_expr, - STATE(398), 1, - sym_switch, - STATE(422), 1, + STATE(419), 1, sym_term, - STATE(68), 2, + STATE(420), 1, + sym_switch, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [1659] = 6, + [1736] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(191), 1, + ACTIONS(205), 1, anon_sym_else, STATE(32), 1, sym_comment, - ACTIONS(187), 3, + ACTIONS(201), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(189), 8, + ACTIONS(203), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4377,70 +4437,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [1687] = 12, + [1764] = 12, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(177), 1, + ACTIONS(195), 1, anon_sym_BANG, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, STATE(33), 1, sym_comment, - STATE(82), 1, + STATE(81), 1, sym_expr, - STATE(420), 1, + STATE(418), 1, sym_switch, - STATE(422), 1, + STATE(419), 1, sym_term, - STATE(68), 2, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [1727] = 12, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(193), 1, - anon_sym_RBRACE, - ACTIONS(195), 1, - anon_sym_comb, - ACTIONS(198), 1, - anon_sym_group, - ACTIONS(201), 1, - anon_sym_AT, - ACTIONS(204), 1, - sym_ident, - STATE(197), 1, - sym_at_attribute, - STATE(332), 1, - sym_lhs, - STATE(34), 2, - sym_comment, - aux_sym_wires_inner_repeat1, - STATE(156), 2, - sym_group, - sym_wire_assignment, - STATE(334), 2, - sym_hole, - sym_port, - [1767] = 6, + [1804] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(211), 1, anon_sym_else, - STATE(35), 1, + STATE(34), 1, sym_comment, ACTIONS(207), 3, anon_sym_SEMI, @@ -4455,46 +4487,67 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [1795] = 12, + [1832] = 12, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(177), 1, + ACTIONS(195), 1, anon_sym_BANG, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(36), 1, + STATE(35), 1, sym_comment, - STATE(81), 1, + STATE(80), 1, sym_expr, - STATE(417), 1, - sym_switch, - STATE(422), 1, + STATE(419), 1, sym_term, - STATE(68), 2, + STATE(422), 1, + sym_switch, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [1835] = 5, + [1872] = 5, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(36), 1, + sym_comment, + ACTIONS(215), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(213), 10, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + [1898] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(37), 1, sym_comment, - ACTIONS(213), 3, + ACTIONS(217), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(215), 9, + ACTIONS(219), 9, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4504,20 +4557,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [1861] = 6, + [1924] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(221), 1, + ACTIONS(225), 1, anon_sym_else, STATE(38), 1, sym_comment, - ACTIONS(217), 3, + ACTIONS(221), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(219), 8, + ACTIONS(223), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4526,18 +4579,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [1889] = 5, + [1952] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(39), 1, sym_comment, - ACTIONS(225), 3, + ACTIONS(229), 3, anon_sym_EQ, anon_sym_GT, anon_sym_LT, - ACTIONS(223), 9, + ACTIONS(227), 9, anon_sym_SEMI, anon_sym_RPAREN, anon_sym_EQ_EQ, @@ -4547,47 +4600,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_QMARK, - [1915] = 13, + [1978] = 12, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(117), 1, - anon_sym_comb, - ACTIONS(119), 1, - anon_sym_group, - ACTIONS(121), 1, - anon_sym_AT, - ACTIONS(123), 1, + ACTIONS(193), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + anon_sym_BANG, + ACTIONS(197), 1, sym_ident, - ACTIONS(227), 1, - anon_sym_RBRACE, - STATE(34), 1, - aux_sym_wires_inner_repeat1, + ACTIONS(199), 1, + sym_number, STATE(40), 1, sym_comment, - STATE(197), 1, - sym_at_attribute, - STATE(332), 1, - sym_lhs, - STATE(156), 2, - sym_group, - sym_wire_assignment, - STATE(334), 2, + STATE(84), 1, + sym_expr, + STATE(398), 1, + sym_switch, + STATE(419), 1, + sym_term, + STATE(49), 2, + sym_base_expr, + sym_cmp_expr, + STATE(50), 3, sym_hole, sym_port, - [1957] = 6, + sym_literal, + [2018] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(231), 1, - anon_sym_LPAREN, - STATE(41), 1, - sym_comment, - ACTIONS(229), 2, anon_sym_SEMI, + ACTIONS(235), 1, anon_sym_AT, + STATE(86), 1, + sym_at_attribute, + STATE(41), 2, + sym_comment, + aux_sym_io_port_repeat1, ACTIONS(233), 8, anon_sym_invoke, anon_sym_seq, @@ -4597,18 +4651,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [1984] = 5, + [2048] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(42), 1, sym_comment, - ACTIONS(235), 3, + ACTIONS(238), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(237), 8, + ACTIONS(240), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4617,38 +4671,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2009] = 5, + [2073] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(43), 1, sym_comment, - ACTIONS(239), 3, + ACTIONS(244), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(242), 9, anon_sym_SEMI, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(241), 8, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - anon_sym_while, - anon_sym_static, - anon_sym_repeat, - sym_ident, - [2034] = 5, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, + anon_sym_RPAREN, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + [2098] = 5, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, STATE(44), 1, sym_comment, - ACTIONS(243), 3, + ACTIONS(246), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(245), 8, + ACTIONS(248), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4657,18 +4711,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2059] = 5, + [2123] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(45), 1, sym_comment, - ACTIONS(247), 3, + ACTIONS(250), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(249), 8, + ACTIONS(252), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4677,18 +4731,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2084] = 5, + [2148] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(46), 1, sym_comment, - ACTIONS(251), 3, + ACTIONS(254), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(253), 8, + ACTIONS(256), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4697,18 +4751,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2109] = 5, + [2173] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(47), 1, sym_comment, - ACTIONS(213), 3, + ACTIONS(258), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(215), 8, + ACTIONS(260), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4717,37 +4771,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2134] = 5, + [2198] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(48), 1, sym_comment, - ACTIONS(257), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(255), 9, + ACTIONS(262), 3, anon_sym_SEMI, - anon_sym_RPAREN, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - [2159] = 5, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(264), 8, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + anon_sym_while, + anon_sym_static, + anon_sym_repeat, + sym_ident, + [2223] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(49), 1, sym_comment, - ACTIONS(261), 2, + ACTIONS(268), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(259), 9, + ACTIONS(266), 9, anon_sym_SEMI, anon_sym_RPAREN, anon_sym_EQ_EQ, @@ -4757,61 +4811,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_QMARK, - [2184] = 6, + [2248] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, STATE(50), 1, sym_comment, - ACTIONS(261), 2, + ACTIONS(272), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(259), 8, + ACTIONS(270), 9, anon_sym_SEMI, anon_sym_RPAREN, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - [2211] = 7, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(263), 1, anon_sym_EQ_EQ, - ACTIONS(265), 1, anon_sym_BANG_EQ, - STATE(51), 1, - sym_comment, - ACTIONS(261), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(259), 7, - anon_sym_SEMI, - anon_sym_RPAREN, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_QMARK, - [2240] = 5, + [2273] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(52), 1, + STATE(51), 1, sym_comment, - ACTIONS(267), 3, + ACTIONS(274), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(269), 8, + ACTIONS(276), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4820,90 +4851,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2265] = 8, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - STATE(53), 1, - sym_comment, - ACTIONS(261), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(259), 6, - anon_sym_SEMI, - anon_sym_RPAREN, - anon_sym_GT_EQ, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - [2296] = 9, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - ACTIONS(273), 1, - anon_sym_GT_EQ, - STATE(54), 1, - sym_comment, - ACTIONS(261), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(259), 5, - anon_sym_SEMI, - anon_sym_RPAREN, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - [2329] = 10, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(261), 1, - anon_sym_LT, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - ACTIONS(273), 1, - anon_sym_GT_EQ, - ACTIONS(275), 1, - anon_sym_GT, - STATE(55), 1, - sym_comment, - ACTIONS(259), 5, - anon_sym_SEMI, - anon_sym_RPAREN, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_QMARK, - [2364] = 5, + [2298] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(56), 1, + STATE(52), 1, sym_comment, - ACTIONS(277), 3, + ACTIONS(278), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(279), 8, + ACTIONS(280), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4912,18 +4871,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2389] = 5, + [2323] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(57), 1, + STATE(53), 1, sym_comment, - ACTIONS(281), 3, + ACTIONS(282), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(283), 8, + ACTIONS(284), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4932,18 +4891,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2414] = 5, + [2348] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(58), 1, + STATE(54), 1, sym_comment, - ACTIONS(285), 3, + ACTIONS(286), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(287), 8, + ACTIONS(288), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4952,18 +4911,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2439] = 5, + [2373] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(59), 1, + STATE(55), 1, sym_comment, - ACTIONS(289), 3, + ACTIONS(290), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(291), 8, + ACTIONS(292), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4972,18 +4931,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2464] = 5, + [2398] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(60), 1, + STATE(56), 1, sym_comment, - ACTIONS(293), 3, + ACTIONS(294), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(295), 8, + ACTIONS(296), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -4992,18 +4951,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2489] = 5, + [2423] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(61), 1, + STATE(57), 1, sym_comment, - ACTIONS(217), 3, + ACTIONS(298), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(219), 8, + ACTIONS(300), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5012,38 +4971,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2514] = 5, + [2448] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(62), 1, + STATE(58), 1, sym_comment, - ACTIONS(297), 3, + ACTIONS(304), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(302), 9, anon_sym_SEMI, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(299), 8, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - anon_sym_while, - anon_sym_static, - anon_sym_repeat, - sym_ident, - [2539] = 5, + anon_sym_RPAREN, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + [2473] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(63), 1, + ACTIONS(308), 1, + anon_sym_LPAREN, + STATE(59), 1, sym_comment, - ACTIONS(301), 3, + ACTIONS(306), 2, anon_sym_SEMI, - anon_sym_RBRACE, anon_sym_AT, - ACTIONS(303), 8, + ACTIONS(310), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5052,58 +5012,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2564] = 5, + [2500] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(64), 1, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + STATE(60), 1, sym_comment, - ACTIONS(305), 3, + ACTIONS(304), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(302), 8, anon_sym_SEMI, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(307), 8, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - anon_sym_while, - anon_sym_static, - anon_sym_repeat, - sym_ident, - [2589] = 5, + anon_sym_RPAREN, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + [2527] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(65), 1, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + STATE(61), 1, sym_comment, - ACTIONS(309), 3, + ACTIONS(304), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(302), 7, anon_sym_SEMI, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(311), 8, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - anon_sym_while, - anon_sym_static, - anon_sym_repeat, - sym_ident, - [2614] = 5, + anon_sym_RPAREN, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + [2556] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(66), 1, + STATE(62), 1, sym_comment, - ACTIONS(313), 3, + ACTIONS(217), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(315), 8, + ACTIONS(219), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5112,58 +5075,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2639] = 5, + [2581] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(67), 1, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + ACTIONS(316), 1, + anon_sym_LT_EQ, + STATE(63), 1, sym_comment, - ACTIONS(319), 2, + ACTIONS(304), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(317), 9, + ACTIONS(302), 6, anon_sym_SEMI, anon_sym_RPAREN, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_QMARK, - [2664] = 5, + [2612] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(68), 1, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + ACTIONS(316), 1, + anon_sym_LT_EQ, + ACTIONS(318), 1, + anon_sym_GT_EQ, + STATE(64), 1, sym_comment, - ACTIONS(323), 2, + ACTIONS(304), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(321), 9, + ACTIONS(302), 5, anon_sym_SEMI, anon_sym_RPAREN, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_QMARK, + [2645] = 10, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(304), 1, + anon_sym_LT, + ACTIONS(312), 1, anon_sym_EQ_EQ, + ACTIONS(314), 1, anon_sym_BANG_EQ, + ACTIONS(316), 1, anon_sym_LT_EQ, + ACTIONS(318), 1, anon_sym_GT_EQ, + ACTIONS(320), 1, + anon_sym_GT, + STATE(65), 1, + sym_comment, + ACTIONS(302), 5, + anon_sym_SEMI, + anon_sym_RPAREN, anon_sym_PIPE, anon_sym_AMP, anon_sym_QMARK, - [2689] = 5, + [2680] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(69), 1, + STATE(66), 1, sym_comment, - ACTIONS(325), 3, + ACTIONS(322), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(327), 8, + ACTIONS(324), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5172,18 +5167,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2714] = 5, + [2705] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(70), 1, + STATE(67), 1, sym_comment, - ACTIONS(329), 3, + ACTIONS(221), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(331), 8, + ACTIONS(223), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5192,18 +5187,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2739] = 5, + [2730] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(71), 1, + STATE(68), 1, sym_comment, - ACTIONS(333), 3, + ACTIONS(326), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(335), 8, + ACTIONS(328), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5212,18 +5207,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2764] = 5, + [2755] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(72), 1, + STATE(69), 1, sym_comment, - ACTIONS(337), 3, + ACTIONS(330), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(339), 8, + ACTIONS(332), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5232,18 +5227,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2789] = 5, + [2780] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(73), 1, + STATE(70), 1, sym_comment, - ACTIONS(341), 3, + ACTIONS(334), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(343), 8, + ACTIONS(336), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5252,18 +5247,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2814] = 5, + [2805] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(74), 1, + STATE(71), 1, sym_comment, - ACTIONS(345), 3, + ACTIONS(338), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(347), 8, + ACTIONS(340), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5272,18 +5267,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2839] = 5, + [2830] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(75), 1, + STATE(72), 1, sym_comment, - ACTIONS(349), 3, + ACTIONS(342), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(351), 8, + ACTIONS(344), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5292,18 +5287,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2864] = 5, + [2855] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(76), 1, + STATE(73), 1, sym_comment, - ACTIONS(353), 3, + ACTIONS(346), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(355), 8, + ACTIONS(348), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5312,18 +5307,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2889] = 5, + [2880] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(77), 1, + STATE(74), 1, sym_comment, - ACTIONS(357), 3, + ACTIONS(350), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(359), 8, + ACTIONS(352), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5332,18 +5327,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2914] = 5, + [2905] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(78), 1, + STATE(75), 1, sym_comment, - ACTIONS(361), 3, + ACTIONS(354), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(363), 8, + ACTIONS(356), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5352,17 +5347,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2939] = 5, + [2930] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(79), 1, + STATE(76), 1, sym_comment, - ACTIONS(365), 2, + ACTIONS(358), 3, anon_sym_SEMI, + anon_sym_RBRACE, anon_sym_AT, - ACTIONS(367), 8, + ACTIONS(360), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5371,100 +5367,133 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [2963] = 13, + [2955] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - ACTIONS(273), 1, - anon_sym_GT_EQ, - ACTIONS(275), 1, - anon_sym_GT, - ACTIONS(369), 1, - anon_sym_SEMI, - ACTIONS(371), 1, - anon_sym_LT, - ACTIONS(373), 1, - anon_sym_PIPE, - ACTIONS(375), 1, - anon_sym_AMP, - ACTIONS(377), 1, - anon_sym_QMARK, - STATE(80), 1, + STATE(77), 1, sym_comment, - [3003] = 13, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(263), 1, + ACTIONS(362), 3, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(364), 8, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + anon_sym_while, + anon_sym_static, + anon_sym_repeat, + sym_ident, + [2980] = 5, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(78), 1, + sym_comment, + ACTIONS(366), 3, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(368), 8, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + anon_sym_while, + anon_sym_static, + anon_sym_repeat, + sym_ident, + [3005] = 5, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(79), 1, + sym_comment, + ACTIONS(370), 3, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(372), 8, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + anon_sym_while, + anon_sym_static, + anon_sym_repeat, + sym_ident, + [3030] = 13, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(312), 1, anon_sym_EQ_EQ, - ACTIONS(265), 1, + ACTIONS(314), 1, anon_sym_BANG_EQ, - ACTIONS(271), 1, + ACTIONS(316), 1, anon_sym_LT_EQ, - ACTIONS(273), 1, + ACTIONS(318), 1, anon_sym_GT_EQ, - ACTIONS(275), 1, + ACTIONS(320), 1, anon_sym_GT, - ACTIONS(371), 1, + ACTIONS(374), 1, + anon_sym_SEMI, + ACTIONS(376), 1, anon_sym_LT, - ACTIONS(373), 1, + ACTIONS(378), 1, anon_sym_PIPE, - ACTIONS(375), 1, + ACTIONS(380), 1, anon_sym_AMP, - ACTIONS(377), 1, + ACTIONS(382), 1, anon_sym_QMARK, - ACTIONS(379), 1, - anon_sym_SEMI, - STATE(81), 1, + STATE(80), 1, sym_comment, - [3043] = 13, + [3070] = 13, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, + ACTIONS(312), 1, anon_sym_EQ_EQ, - ACTIONS(265), 1, + ACTIONS(314), 1, anon_sym_BANG_EQ, - ACTIONS(271), 1, + ACTIONS(316), 1, anon_sym_LT_EQ, - ACTIONS(273), 1, + ACTIONS(318), 1, anon_sym_GT_EQ, - ACTIONS(275), 1, + ACTIONS(320), 1, anon_sym_GT, - ACTIONS(371), 1, + ACTIONS(376), 1, anon_sym_LT, - ACTIONS(373), 1, + ACTIONS(378), 1, anon_sym_PIPE, - ACTIONS(375), 1, + ACTIONS(380), 1, anon_sym_AMP, - ACTIONS(377), 1, + ACTIONS(382), 1, anon_sym_QMARK, - ACTIONS(381), 1, + ACTIONS(384), 1, anon_sym_SEMI, - STATE(82), 1, + STATE(81), 1, sym_comment, - [3083] = 6, + [3110] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(385), 1, + ACTIONS(388), 1, anon_sym_import, - STATE(117), 1, + STATE(113), 1, sym_import, - STATE(83), 2, + STATE(82), 2, sym_comment, aux_sym_source_file_repeat1, - ACTIONS(383), 7, + ACTIONS(386), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -5472,44 +5501,71 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [3109] = 13, + [3136] = 13, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, + ACTIONS(312), 1, anon_sym_EQ_EQ, - ACTIONS(265), 1, + ACTIONS(314), 1, anon_sym_BANG_EQ, - ACTIONS(271), 1, + ACTIONS(316), 1, anon_sym_LT_EQ, - ACTIONS(273), 1, + ACTIONS(318), 1, anon_sym_GT_EQ, - ACTIONS(275), 1, + ACTIONS(320), 1, anon_sym_GT, - ACTIONS(371), 1, + ACTIONS(376), 1, anon_sym_LT, - ACTIONS(373), 1, + ACTIONS(378), 1, anon_sym_PIPE, - ACTIONS(375), 1, + ACTIONS(380), 1, anon_sym_AMP, - ACTIONS(377), 1, + ACTIONS(382), 1, anon_sym_QMARK, - ACTIONS(388), 1, + ACTIONS(391), 1, + anon_sym_SEMI, + STATE(83), 1, + sym_comment, + [3176] = 13, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + ACTIONS(316), 1, + anon_sym_LT_EQ, + ACTIONS(318), 1, + anon_sym_GT_EQ, + ACTIONS(320), 1, + anon_sym_GT, + ACTIONS(376), 1, + anon_sym_LT, + ACTIONS(378), 1, + anon_sym_PIPE, + ACTIONS(380), 1, + anon_sym_AMP, + ACTIONS(382), 1, + anon_sym_QMARK, + ACTIONS(393), 1, anon_sym_SEMI, STATE(84), 1, sym_comment, - [3149] = 5, + [3216] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(85), 1, sym_comment, - ACTIONS(390), 2, + ACTIONS(395), 2, anon_sym_SEMI, anon_sym_AT, - ACTIONS(392), 8, + ACTIONS(397), 8, anon_sym_invoke, anon_sym_seq, anon_sym_par, @@ -5518,568 +5574,564 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_static, anon_sym_repeat, sym_ident, - [3173] = 10, + [3240] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(394), 1, - anon_sym_RBRACE, - ACTIONS(396), 1, - anon_sym_AT, - ACTIONS(399), 1, - sym_ident, - STATE(192), 1, - sym_at_attribute, - STATE(241), 1, - sym_wire_assignment, - STATE(447), 1, - sym_lhs, - STATE(86), 2, + STATE(86), 1, sym_comment, - aux_sym_group_repeat1, - STATE(334), 2, - sym_hole, - sym_port, - [3206] = 11, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(121), 1, + ACTIONS(399), 2, + anon_sym_SEMI, anon_sym_AT, - ACTIONS(179), 1, + ACTIONS(401), 8, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + anon_sym_while, + anon_sym_static, + anon_sym_repeat, sym_ident, - ACTIONS(402), 1, - anon_sym_RBRACE, - STATE(87), 1, - sym_comment, - STATE(107), 1, - aux_sym_group_repeat1, - STATE(192), 1, - sym_at_attribute, - STATE(241), 1, - sym_wire_assignment, - STATE(447), 1, - sym_lhs, - STATE(334), 2, - sym_hole, - sym_port, - [3241] = 11, + [3264] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(21), 1, anon_sym_static, - ACTIONS(404), 1, + ACTIONS(403), 1, anon_sym_LBRACE, - ACTIONS(406), 1, + ACTIONS(405), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(407), 1, anon_sym_AT, - STATE(88), 1, + STATE(87), 1, sym_comment, - STATE(151), 1, + STATE(154), 1, aux_sym_io_port_repeat1, - STATE(246), 1, + STATE(212), 1, sym_at_attribute, - STATE(352), 1, + STATE(439), 1, sym_static_annotation, - STATE(59), 2, + STATE(67), 2, sym_block, sym_if_stmt, - [3276] = 9, + [3299] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(54), 1, + STATE(61), 1, sym_expr, - STATE(89), 1, + STATE(88), 1, sym_comment, - STATE(68), 2, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3307] = 9, + [3330] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(55), 1, - sym_expr, - STATE(90), 1, + STATE(89), 1, sym_comment, - STATE(68), 2, + STATE(139), 1, + sym_expr, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3338] = 9, + [3361] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(51), 1, - sym_expr, - STATE(91), 1, + STATE(90), 1, sym_comment, - STATE(68), 2, + STATE(138), 1, + sym_expr, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3369] = 9, + [3392] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, - anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, - sym_number, - STATE(92), 1, + ACTIONS(409), 1, + anon_sym_RBRACE, + STATE(91), 1, sym_comment, - STATE(143), 1, - sym_expr, - STATE(68), 2, - sym_base_expr, - sym_cmp_expr, - STATE(67), 3, + STATE(98), 1, + aux_sym_group_repeat1, + STATE(182), 1, + sym_at_attribute, + STATE(237), 1, + sym_wire_assignment, + STATE(447), 1, + sym_lhs, + STATE(333), 2, sym_hole, sym_port, - sym_literal, - [3400] = 11, + [3427] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, + ACTIONS(21), 1, + anon_sym_static, + ACTIONS(407), 1, anon_sym_AT, - ACTIONS(179), 1, + ACTIONS(411), 1, + anon_sym_LBRACE, + ACTIONS(413), 1, + anon_sym_if, + STATE(92), 1, + sym_comment, + STATE(153), 1, + aux_sym_io_port_repeat1, + STATE(212), 1, + sym_at_attribute, + STATE(351), 1, + sym_static_annotation, + STATE(77), 2, + sym_block, + sym_if_stmt, + [3462] = 11, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(197), 1, sym_ident, - ACTIONS(410), 1, + ACTIONS(415), 1, anon_sym_RBRACE, - STATE(86), 1, - aux_sym_group_repeat1, STATE(93), 1, sym_comment, - STATE(192), 1, + STATE(96), 1, + aux_sym_group_repeat1, + STATE(182), 1, sym_at_attribute, - STATE(241), 1, + STATE(237), 1, sym_wire_assignment, STATE(447), 1, sym_lhs, - STATE(334), 2, + STATE(333), 2, sym_hole, sym_port, - [3435] = 9, + [3497] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(50), 1, + STATE(58), 1, sym_expr, STATE(94), 1, sym_comment, - STATE(68), 2, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3466] = 11, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(21), 1, - anon_sym_static, - ACTIONS(408), 1, - anon_sym_AT, - ACTIONS(412), 1, - anon_sym_LBRACE, - ACTIONS(414), 1, - anon_sym_if, - STATE(95), 1, - sym_comment, - STATE(149), 1, - aux_sym_io_port_repeat1, - STATE(246), 1, - sym_at_attribute, - STATE(439), 1, - sym_static_annotation, - STATE(61), 2, - sym_block, - sym_if_stmt, - [3501] = 9, + [3528] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(96), 1, - sym_comment, - STATE(145), 1, + STATE(60), 1, sym_expr, - STATE(68), 2, + STATE(95), 1, + sym_comment, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3532] = 11, + [3559] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(21), 1, - anon_sym_static, - ACTIONS(404), 1, - anon_sym_LBRACE, - ACTIONS(406), 1, - anon_sym_if, - ACTIONS(408), 1, + ACTIONS(113), 1, anon_sym_AT, - STATE(97), 1, + ACTIONS(197), 1, + sym_ident, + ACTIONS(417), 1, + anon_sym_RBRACE, + STATE(96), 1, sym_comment, - STATE(151), 1, - aux_sym_io_port_repeat1, - STATE(246), 1, + STATE(98), 1, + aux_sym_group_repeat1, + STATE(182), 1, sym_at_attribute, - STATE(352), 1, - sym_static_annotation, - STATE(61), 2, - sym_block, - sym_if_stmt, - [3567] = 11, + STATE(237), 1, + sym_wire_assignment, + STATE(447), 1, + sym_lhs, + STATE(333), 2, + sym_hole, + sym_port, + [3594] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(21), 1, - anon_sym_static, - ACTIONS(408), 1, + ACTIONS(113), 1, anon_sym_AT, - ACTIONS(412), 1, - anon_sym_LBRACE, - ACTIONS(414), 1, - anon_sym_if, - STATE(98), 1, - sym_comment, - STATE(149), 1, - aux_sym_io_port_repeat1, - STATE(246), 1, - sym_at_attribute, - STATE(439), 1, - sym_static_annotation, - STATE(74), 2, - sym_block, - sym_if_stmt, - [3602] = 11, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(21), 1, - anon_sym_static, - ACTIONS(408), 1, - anon_sym_AT, - ACTIONS(412), 1, - anon_sym_LBRACE, - ACTIONS(414), 1, - anon_sym_if, - STATE(99), 1, + ACTIONS(197), 1, + sym_ident, + ACTIONS(409), 1, + anon_sym_RBRACE, + STATE(97), 1, sym_comment, - STATE(149), 1, - aux_sym_io_port_repeat1, - STATE(246), 1, + STATE(102), 1, + aux_sym_group_repeat1, + STATE(182), 1, sym_at_attribute, - STATE(439), 1, - sym_static_annotation, - STATE(59), 2, - sym_block, - sym_if_stmt, - [3637] = 11, + STATE(237), 1, + sym_wire_assignment, + STATE(447), 1, + sym_lhs, + STATE(333), 2, + sym_hole, + sym_port, + [3629] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, + ACTIONS(419), 1, + anon_sym_RBRACE, + ACTIONS(421), 1, anon_sym_AT, - ACTIONS(179), 1, + ACTIONS(424), 1, sym_ident, - ACTIONS(416), 1, - anon_sym_RBRACE, - STATE(93), 1, - aux_sym_group_repeat1, - STATE(100), 1, - sym_comment, - STATE(192), 1, + STATE(182), 1, sym_at_attribute, - STATE(241), 1, + STATE(237), 1, sym_wire_assignment, STATE(447), 1, sym_lhs, - STATE(334), 2, + STATE(98), 2, + sym_comment, + aux_sym_group_repeat1, + STATE(333), 2, sym_hole, sym_port, - [3672] = 11, + [3662] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(21), 1, anon_sym_static, - ACTIONS(404), 1, + ACTIONS(403), 1, anon_sym_LBRACE, - ACTIONS(406), 1, + ACTIONS(405), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(407), 1, anon_sym_AT, - STATE(101), 1, + STATE(99), 1, sym_comment, - STATE(151), 1, + STATE(154), 1, aux_sym_io_port_repeat1, - STATE(246), 1, + STATE(212), 1, sym_at_attribute, - STATE(352), 1, + STATE(439), 1, sym_static_annotation, - STATE(74), 2, + STATE(77), 2, sym_block, sym_if_stmt, - [3707] = 11, + [3697] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, - anon_sym_AT, - ACTIONS(179), 1, + ACTIONS(193), 1, + anon_sym_LPAREN, + ACTIONS(197), 1, sym_ident, - ACTIONS(402), 1, - anon_sym_RBRACE, - STATE(86), 1, - aux_sym_group_repeat1, - STATE(102), 1, + ACTIONS(199), 1, + sym_number, + STATE(63), 1, + sym_expr, + STATE(100), 1, sym_comment, - STATE(192), 1, - sym_at_attribute, - STATE(241), 1, - sym_wire_assignment, - STATE(447), 1, - sym_lhs, - STATE(334), 2, + STATE(49), 2, + sym_base_expr, + sym_cmp_expr, + STATE(50), 3, sym_hole, sym_port, - [3742] = 11, + sym_literal, + [3728] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, + ACTIONS(193), 1, + anon_sym_LPAREN, + ACTIONS(197), 1, + sym_ident, + ACTIONS(199), 1, + sym_number, + STATE(64), 1, + sym_expr, + STATE(101), 1, + sym_comment, + STATE(49), 2, + sym_base_expr, + sym_cmp_expr, + STATE(50), 3, + sym_hole, + sym_port, + sym_literal, + [3759] = 11, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(113), 1, anon_sym_AT, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(410), 1, + ACTIONS(427), 1, anon_sym_RBRACE, - STATE(102), 1, + STATE(98), 1, aux_sym_group_repeat1, - STATE(103), 1, + STATE(102), 1, sym_comment, - STATE(192), 1, + STATE(182), 1, sym_at_attribute, - STATE(241), 1, + STATE(237), 1, sym_wire_assignment, STATE(447), 1, sym_lhs, - STATE(334), 2, + STATE(333), 2, sym_hole, sym_port, - [3777] = 9, + [3794] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(53), 1, + STATE(65), 1, sym_expr, - STATE(104), 1, + STATE(103), 1, sym_comment, - STATE(68), 2, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3808] = 9, + [3825] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(105), 1, + STATE(104), 1, sym_comment, - STATE(124), 1, + STATE(144), 1, sym_expr, - STATE(68), 2, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3839] = 9, + [3856] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, + ACTIONS(193), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(197), 1, sym_ident, - ACTIONS(181), 1, + ACTIONS(199), 1, sym_number, - STATE(106), 1, + STATE(105), 1, sym_comment, - STATE(127), 1, + STATE(143), 1, sym_expr, - STATE(68), 2, + STATE(49), 2, sym_base_expr, sym_cmp_expr, - STATE(67), 3, + STATE(50), 3, sym_hole, sym_port, sym_literal, - [3870] = 11, + [3887] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, + ACTIONS(21), 1, + anon_sym_static, + ACTIONS(407), 1, anon_sym_AT, - ACTIONS(179), 1, + ACTIONS(411), 1, + anon_sym_LBRACE, + ACTIONS(413), 1, + anon_sym_if, + STATE(106), 1, + sym_comment, + STATE(153), 1, + aux_sym_io_port_repeat1, + STATE(212), 1, + sym_at_attribute, + STATE(351), 1, + sym_static_annotation, + STATE(75), 2, + sym_block, + sym_if_stmt, + [3922] = 11, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(197), 1, sym_ident, - ACTIONS(418), 1, + ACTIONS(417), 1, anon_sym_RBRACE, - STATE(86), 1, + STATE(91), 1, aux_sym_group_repeat1, STATE(107), 1, sym_comment, - STATE(192), 1, + STATE(182), 1, sym_at_attribute, - STATE(241), 1, + STATE(237), 1, sym_wire_assignment, STATE(447), 1, sym_lhs, - STATE(334), 2, + STATE(333), 2, sym_hole, sym_port, - [3905] = 9, + [3957] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(175), 1, - anon_sym_LPAREN, - ACTIONS(179), 1, - sym_ident, - ACTIONS(181), 1, - sym_number, - STATE(49), 1, - sym_expr, + ACTIONS(21), 1, + anon_sym_static, + ACTIONS(403), 1, + anon_sym_LBRACE, + ACTIONS(405), 1, + anon_sym_if, + ACTIONS(407), 1, + anon_sym_AT, STATE(108), 1, sym_comment, - STATE(68), 2, - sym_base_expr, - sym_cmp_expr, - STATE(67), 3, - sym_hole, - sym_port, - sym_literal, - [3936] = 11, + STATE(154), 1, + aux_sym_io_port_repeat1, + STATE(212), 1, + sym_at_attribute, + STATE(439), 1, + sym_static_annotation, + STATE(75), 2, + sym_block, + sym_if_stmt, + [3992] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(15), 1, - anon_sym_comb, - ACTIONS(17), 1, - anon_sym_primitive, ACTIONS(21), 1, anon_sym_static, - ACTIONS(420), 1, - anon_sym_RBRACE, + ACTIONS(407), 1, + anon_sym_AT, + ACTIONS(411), 1, + anon_sym_LBRACE, + ACTIONS(413), 1, + anon_sym_if, STATE(109), 1, sym_comment, - STATE(118), 1, - aux_sym_extern_repeat1, - STATE(198), 1, - sym_primitive, - STATE(204), 1, + STATE(153), 1, + aux_sym_io_port_repeat1, + STATE(212), 1, + sym_at_attribute, + STATE(351), 1, sym_static_annotation, - STATE(396), 1, - sym_comb_or_static, - [3970] = 4, + STATE(67), 2, + sym_block, + sym_if_stmt, + [4027] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(110), 1, sym_comment, - ACTIONS(422), 8, + ACTIONS(429), 8, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6088,37 +6140,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [3990] = 11, + [4047] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(424), 1, - anon_sym_RBRACE, - ACTIONS(426), 1, - anon_sym_ref, - ACTIONS(428), 1, - anon_sym_AT, - ACTIONS(430), 1, - sym_ident, STATE(111), 1, sym_comment, - STATE(146), 1, - aux_sym_cells_inner_repeat1, - STATE(182), 1, - sym_cell_assignment, - STATE(321), 1, - sym_at_attribute, - STATE(338), 1, - sym_cells_inner, - [4024] = 4, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - STATE(112), 1, - sym_comment, - ACTIONS(432), 8, + ACTIONS(431), 8, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6127,14 +6156,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4044] = 4, + [4067] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(113), 1, + STATE(112), 1, sym_comment, - ACTIONS(434), 8, + ACTIONS(433), 8, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6143,14 +6172,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4064] = 4, + [4087] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(114), 1, + STATE(113), 1, sym_comment, - ACTIONS(436), 8, + ACTIONS(435), 8, ts_builtin_sym_end, anon_sym_import, aux_sym_metadata_ci_token1, @@ -6159,52 +6188,114 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4084] = 4, + [4107] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(115), 1, + STATE(114), 1, sym_comment, - ACTIONS(438), 8, - ts_builtin_sym_end, - aux_sym_metadata_ci_token1, + ACTIONS(437), 8, anon_sym_component, - anon_sym_RBRACE, anon_sym_comb, anon_sym_primitive, - anon_sym_extern, - anon_sym_static, - [4104] = 10, + anon_sym_group, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + [4127] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(440), 1, - anon_sym_RBRACE, - ACTIONS(442), 1, + ACTIONS(15), 1, anon_sym_comb, - ACTIONS(445), 1, + ACTIONS(17), 1, anon_sym_primitive, - ACTIONS(448), 1, + ACTIONS(21), 1, anon_sym_static, - STATE(198), 1, + ACTIONS(439), 1, + anon_sym_RBRACE, + STATE(115), 1, + sym_comment, + STATE(120), 1, + aux_sym_extern_repeat1, + STATE(178), 1, sym_primitive, - STATE(204), 1, + STATE(230), 1, sym_static_annotation, - STATE(396), 1, + STATE(390), 1, sym_comb_or_static, - STATE(116), 2, + [4161] = 10, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(441), 1, + anon_sym_RBRACE, + ACTIONS(443), 1, + anon_sym_comb, + ACTIONS(446), 1, + anon_sym_primitive, + ACTIONS(449), 1, + anon_sym_static, + STATE(178), 1, + sym_primitive, + STATE(230), 1, + sym_static_annotation, + STATE(390), 1, + sym_comb_or_static, + STATE(116), 2, sym_comment, aux_sym_extern_repeat1, - [4136] = 4, + [4193] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(117), 1, sym_comment, - ACTIONS(451), 8, + ACTIONS(452), 8, + anon_sym_component, + anon_sym_comb, + anon_sym_primitive, + anon_sym_group, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + [4213] = 11, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(454), 1, + anon_sym_RBRACE, + ACTIONS(456), 1, + anon_sym_ref, + ACTIONS(458), 1, + anon_sym_AT, + ACTIONS(460), 1, + sym_ident, + STATE(118), 1, + sym_comment, + STATE(124), 1, + aux_sym_cells_inner_repeat1, + STATE(177), 1, + sym_cell_assignment, + STATE(324), 1, + sym_at_attribute, + STATE(330), 1, + sym_cells_inner, + [4247] = 4, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(119), 1, + sym_comment, + ACTIONS(462), 8, ts_builtin_sym_end, anon_sym_import, aux_sym_metadata_ci_token1, @@ -6213,7 +6304,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4156] = 11, + [4267] = 11, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -6224,26 +6315,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, ACTIONS(21), 1, anon_sym_static, - ACTIONS(453), 1, + ACTIONS(464), 1, anon_sym_RBRACE, STATE(116), 1, aux_sym_extern_repeat1, - STATE(118), 1, + STATE(120), 1, sym_comment, - STATE(198), 1, + STATE(178), 1, sym_primitive, - STATE(204), 1, + STATE(230), 1, sym_static_annotation, - STATE(396), 1, + STATE(390), 1, sym_comb_or_static, - [4190] = 4, + [4301] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(119), 1, + STATE(121), 1, sym_comment, - ACTIONS(455), 8, + ACTIONS(466), 8, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6252,50 +6343,66 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4210] = 4, + [4321] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(120), 1, + STATE(122), 1, sym_comment, - ACTIONS(457), 7, + ACTIONS(468), 8, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, + anon_sym_RBRACE, anon_sym_comb, anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4229] = 10, + [4341] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, + STATE(123), 1, + sym_comment, + ACTIONS(470), 7, + ts_builtin_sym_end, + aux_sym_metadata_ci_token1, + anon_sym_component, + anon_sym_comb, + anon_sym_primitive, + anon_sym_extern, + anon_sym_static, + [4360] = 10, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(456), 1, + anon_sym_ref, + ACTIONS(458), 1, anon_sym_AT, - ACTIONS(459), 1, - anon_sym_RPAREN, - ACTIONS(461), 1, + ACTIONS(460), 1, sym_ident, - STATE(121), 1, + ACTIONS(472), 1, + anon_sym_RBRACE, + STATE(124), 1, sym_comment, - STATE(135), 1, - aux_sym_io_port_list_repeat1, - STATE(187), 1, - aux_sym_io_port_repeat1, - STATE(276), 1, - sym_io_port, - STATE(277), 1, + STATE(133), 1, + aux_sym_cells_inner_repeat1, + STATE(177), 1, + sym_cell_assignment, + STATE(324), 1, sym_at_attribute, - [4260] = 4, + [4391] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(122), 1, + STATE(125), 1, sym_comment, - ACTIONS(463), 7, + ACTIONS(474), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6303,14 +6410,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4279] = 4, + [4410] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(123), 1, + ACTIONS(476), 1, + anon_sym_RBRACE, + ACTIONS(478), 1, + anon_sym_cells, + ACTIONS(480), 1, + anon_sym_wires, + ACTIONS(482), 1, + anon_sym_control, + STATE(126), 1, + sym_comment, + STATE(164), 1, + sym_cells, + STATE(208), 1, + sym_wires, + STATE(367), 1, + sym_control, + [4441] = 4, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(127), 1, sym_comment, - ACTIONS(465), 7, + ACTIONS(484), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6318,128 +6446,89 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4298] = 10, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - ACTIONS(273), 1, - anon_sym_GT_EQ, - ACTIONS(275), 1, - anon_sym_GT, - ACTIONS(371), 1, - anon_sym_LT, - ACTIONS(467), 1, - anon_sym_QMARK, - STATE(124), 1, - sym_comment, - [4329] = 4, + [4460] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(125), 1, + STATE(128), 1, sym_comment, - ACTIONS(469), 7, + ACTIONS(486), 7, + ts_builtin_sym_end, + aux_sym_metadata_ci_token1, anon_sym_component, anon_sym_comb, anon_sym_primitive, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - [4348] = 7, + anon_sym_extern, + anon_sym_static, + [4479] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(471), 1, + ACTIONS(488), 1, anon_sym_LT, - ACTIONS(475), 1, + ACTIONS(492), 1, anon_sym_repeat, - STATE(126), 1, - sym_comment, - STATE(132), 1, + STATE(114), 1, sym_latency_annotation, - ACTIONS(473), 4, + STATE(129), 1, + sym_comment, + ACTIONS(490), 4, anon_sym_invoke, anon_sym_seq, anon_sym_par, anon_sym_if, - [4373] = 10, + [4504] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - ACTIONS(273), 1, - anon_sym_GT_EQ, - ACTIONS(275), 1, - anon_sym_GT, - ACTIONS(371), 1, - anon_sym_LT, - ACTIONS(477), 1, - anon_sym_QMARK, - STATE(127), 1, - sym_comment, - [4404] = 7, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(471), 1, - anon_sym_LT, - ACTIONS(479), 1, - anon_sym_repeat, - STATE(128), 1, + ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(494), 1, + anon_sym_RPAREN, + ACTIONS(496), 1, + sym_ident, + STATE(130), 1, sym_comment, - STATE(132), 1, - sym_latency_annotation, - ACTIONS(473), 4, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - [4429] = 10, + STATE(131), 1, + aux_sym_io_port_list_repeat1, + STATE(195), 1, + aux_sym_io_port_repeat1, + STATE(280), 1, + sym_io_port, + STATE(281), 1, + sym_at_attribute, + [4535] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(481), 1, - anon_sym_RBRACE, - ACTIONS(483), 1, - anon_sym_cells, - ACTIONS(485), 1, - anon_sym_wires, - ACTIONS(487), 1, - anon_sym_control, - STATE(129), 1, + ACTIONS(113), 1, + anon_sym_AT, + ACTIONS(496), 1, + sym_ident, + ACTIONS(498), 1, + anon_sym_RPAREN, + STATE(131), 1, sym_comment, - STATE(153), 1, - sym_cells, - STATE(232), 1, - sym_wires, - STATE(379), 1, - sym_control, - [4460] = 4, + STATE(146), 1, + aux_sym_io_port_list_repeat1, + STATE(195), 1, + aux_sym_io_port_repeat1, + STATE(281), 1, + sym_at_attribute, + STATE(299), 1, + sym_io_port, + [4566] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(130), 1, + STATE(132), 1, sym_comment, - ACTIONS(489), 7, + ACTIONS(500), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6447,71 +6536,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4479] = 10, + [4585] = 9, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(502), 1, + anon_sym_RBRACE, + ACTIONS(504), 1, + anon_sym_ref, + ACTIONS(507), 1, + anon_sym_AT, + ACTIONS(510), 1, + sym_ident, + STATE(177), 1, + sym_cell_assignment, + STATE(324), 1, + sym_at_attribute, + STATE(133), 2, + sym_comment, + aux_sym_cells_inner_repeat1, + [4614] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, + ACTIONS(513), 1, anon_sym_LPAREN, - ACTIONS(493), 1, + ACTIONS(515), 1, anon_sym_LBRACK, - ACTIONS(495), 1, + ACTIONS(517), 1, anon_sym_LT, - STATE(131), 1, + STATE(134), 1, sym_comment, - STATE(155), 1, + STATE(171), 1, sym_attributes, - STATE(249), 1, - sym_params, - STATE(250), 1, + STATE(232), 1, sym_signature, - STATE(412), 1, + STATE(235), 1, + sym_params, + STATE(413), 1, sym_io_port_list, - [4510] = 4, + [4645] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(132), 1, - sym_comment, - ACTIONS(497), 7, - anon_sym_component, - anon_sym_comb, - anon_sym_primitive, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - [4529] = 10, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(483), 1, - anon_sym_cells, - ACTIONS(485), 1, - anon_sym_wires, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(499), 1, - anon_sym_RBRACE, - STATE(133), 1, - sym_comment, - STATE(165), 1, - sym_cells, - STATE(224), 1, - sym_wires, - STATE(353), 1, - sym_control, - [4560] = 4, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - STATE(134), 1, + STATE(135), 1, sym_comment, - ACTIONS(501), 7, + ACTIONS(519), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6519,109 +6592,91 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4579] = 10, + [4664] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, - anon_sym_AT, - ACTIONS(461), 1, - sym_ident, - ACTIONS(503), 1, - anon_sym_RPAREN, - STATE(135), 1, + ACTIONS(488), 1, + anon_sym_LT, + STATE(114), 1, + sym_latency_annotation, + STATE(136), 1, sym_comment, - STATE(138), 1, - aux_sym_io_port_list_repeat1, - STATE(187), 1, - aux_sym_io_port_repeat1, - STATE(277), 1, - sym_at_attribute, - STATE(286), 1, - sym_io_port, - [4610] = 7, + ACTIONS(490), 5, + anon_sym_component, + anon_sym_comb, + anon_sym_primitive, + anon_sym_group, + anon_sym_if, + [4687] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(471), 1, + ACTIONS(488), 1, anon_sym_LT, - ACTIONS(505), 1, + ACTIONS(521), 1, anon_sym_repeat, - STATE(132), 1, + STATE(114), 1, sym_latency_annotation, - STATE(136), 1, + STATE(137), 1, sym_comment, - ACTIONS(473), 4, + ACTIONS(490), 4, anon_sym_invoke, anon_sym_seq, anon_sym_par, anon_sym_if, - [4635] = 4, + [4712] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(137), 1, - sym_comment, - ACTIONS(507), 7, - ts_builtin_sym_end, - aux_sym_metadata_ci_token1, - anon_sym_component, - anon_sym_comb, - anon_sym_primitive, - anon_sym_extern, - anon_sym_static, - [4654] = 9, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(509), 1, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + ACTIONS(316), 1, + anon_sym_LT_EQ, + ACTIONS(318), 1, + anon_sym_GT_EQ, + ACTIONS(320), 1, + anon_sym_GT, + ACTIONS(376), 1, + anon_sym_LT, + ACTIONS(523), 1, anon_sym_RPAREN, - ACTIONS(511), 1, - anon_sym_AT, - ACTIONS(514), 1, - sym_ident, - STATE(187), 1, - aux_sym_io_port_repeat1, - STATE(277), 1, - sym_at_attribute, - STATE(355), 1, - sym_io_port, - STATE(138), 2, + STATE(138), 1, sym_comment, - aux_sym_io_port_list_repeat1, - [4683] = 10, + [4743] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(483), 1, - anon_sym_cells, - ACTIONS(485), 1, - anon_sym_wires, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(517), 1, - anon_sym_RBRACE, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + ACTIONS(316), 1, + anon_sym_LT_EQ, + ACTIONS(318), 1, + anon_sym_GT_EQ, + ACTIONS(320), 1, + anon_sym_GT, + ACTIONS(376), 1, + anon_sym_LT, + ACTIONS(525), 1, + anon_sym_QMARK, STATE(139), 1, sym_comment, - STATE(170), 1, - sym_cells, - STATE(208), 1, - sym_wires, - STATE(360), 1, - sym_control, - [4714] = 4, + [4774] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(140), 1, sym_comment, - ACTIONS(519), 7, + ACTIONS(527), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6629,70 +6684,136 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4733] = 9, + [4793] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(521), 1, - anon_sym_RBRACE, - ACTIONS(523), 1, - anon_sym_ref, - ACTIONS(526), 1, - anon_sym_AT, + ACTIONS(478), 1, + anon_sym_cells, + ACTIONS(480), 1, + anon_sym_wires, + ACTIONS(482), 1, + anon_sym_control, ACTIONS(529), 1, - sym_ident, - STATE(182), 1, - sym_cell_assignment, - STATE(321), 1, - sym_at_attribute, - STATE(141), 2, + anon_sym_RBRACE, + STATE(141), 1, sym_comment, - aux_sym_cells_inner_repeat1, - [4762] = 4, + STATE(166), 1, + sym_cells, + STATE(247), 1, + sym_wires, + STATE(362), 1, + sym_control, + [4824] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(478), 1, + anon_sym_cells, + ACTIONS(480), 1, + anon_sym_wires, + ACTIONS(482), 1, + anon_sym_control, + ACTIONS(531), 1, + anon_sym_RBRACE, STATE(142), 1, sym_comment, - ACTIONS(532), 7, - ts_builtin_sym_end, - aux_sym_metadata_ci_token1, - anon_sym_component, - anon_sym_comb, - anon_sym_primitive, - anon_sym_extern, - anon_sym_static, - [4781] = 10, + STATE(167), 1, + sym_cells, + STATE(246), 1, + sym_wires, + STATE(347), 1, + sym_control, + [4855] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, + ACTIONS(312), 1, anon_sym_EQ_EQ, - ACTIONS(265), 1, + ACTIONS(314), 1, anon_sym_BANG_EQ, - ACTIONS(271), 1, + ACTIONS(316), 1, anon_sym_LT_EQ, - ACTIONS(273), 1, + ACTIONS(318), 1, anon_sym_GT_EQ, - ACTIONS(275), 1, + ACTIONS(320), 1, anon_sym_GT, - ACTIONS(371), 1, + ACTIONS(376), 1, anon_sym_LT, - ACTIONS(477), 1, + ACTIONS(533), 1, anon_sym_QMARK, STATE(143), 1, sym_comment, - [4812] = 4, + [4886] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(312), 1, + anon_sym_EQ_EQ, + ACTIONS(314), 1, + anon_sym_BANG_EQ, + ACTIONS(316), 1, + anon_sym_LT_EQ, + ACTIONS(318), 1, + anon_sym_GT_EQ, + ACTIONS(320), 1, + anon_sym_GT, + ACTIONS(376), 1, + anon_sym_LT, + ACTIONS(533), 1, + anon_sym_QMARK, STATE(144), 1, sym_comment, - ACTIONS(534), 7, + [4917] = 7, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(488), 1, + anon_sym_LT, + ACTIONS(535), 1, + anon_sym_repeat, + STATE(114), 1, + sym_latency_annotation, + STATE(145), 1, + sym_comment, + ACTIONS(490), 4, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + [4942] = 9, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(537), 1, + anon_sym_RPAREN, + ACTIONS(539), 1, + anon_sym_AT, + ACTIONS(542), 1, + sym_ident, + STATE(195), 1, + aux_sym_io_port_repeat1, + STATE(281), 1, + sym_at_attribute, + STATE(352), 1, + sym_io_port, + STATE(146), 2, + sym_comment, + aux_sym_io_port_list_repeat1, + [4971] = 4, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(147), 1, + sym_comment, + ACTIONS(545), 7, ts_builtin_sym_end, aux_sym_metadata_ci_token1, anon_sym_component, @@ -6700,1877 +6821,1830 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_extern, anon_sym_static, - [4831] = 10, + [4990] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(263), 1, - anon_sym_EQ_EQ, - ACTIONS(265), 1, - anon_sym_BANG_EQ, - ACTIONS(271), 1, - anon_sym_LT_EQ, - ACTIONS(273), 1, - anon_sym_GT_EQ, - ACTIONS(275), 1, - anon_sym_GT, - ACTIONS(371), 1, - anon_sym_LT, - ACTIONS(536), 1, - anon_sym_RPAREN, - STATE(145), 1, + STATE(148), 1, sym_comment, - [4862] = 10, + ACTIONS(547), 7, + ts_builtin_sym_end, + aux_sym_metadata_ci_token1, + anon_sym_component, + anon_sym_comb, + anon_sym_primitive, + anon_sym_extern, + anon_sym_static, + [5009] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(426), 1, - anon_sym_ref, - ACTIONS(428), 1, - anon_sym_AT, - ACTIONS(430), 1, - sym_ident, - ACTIONS(538), 1, - anon_sym_RBRACE, - STATE(141), 1, - aux_sym_cells_inner_repeat1, - STATE(146), 1, + ACTIONS(488), 1, + anon_sym_LT, + ACTIONS(549), 1, + anon_sym_repeat, + STATE(114), 1, + sym_latency_annotation, + STATE(149), 1, sym_comment, - STATE(182), 1, - sym_cell_assignment, - STATE(321), 1, - sym_at_attribute, - [4893] = 10, + ACTIONS(490), 4, + anon_sym_invoke, + anon_sym_seq, + anon_sym_par, + anon_sym_if, + [5034] = 10, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, + ACTIONS(513), 1, anon_sym_LPAREN, - ACTIONS(493), 1, + ACTIONS(515), 1, anon_sym_LBRACK, - ACTIONS(495), 1, + ACTIONS(517), 1, anon_sym_LT, - STATE(147), 1, + STATE(150), 1, sym_comment, - STATE(159), 1, + STATE(170), 1, sym_attributes, - STATE(237), 1, + STATE(217), 1, sym_params, - STATE(238), 1, + STATE(222), 1, sym_signature, - STATE(412), 1, + STATE(413), 1, sym_io_port_list, - [4924] = 7, + [5065] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(471), 1, - anon_sym_LT, - ACTIONS(540), 1, - anon_sym_repeat, - STATE(132), 1, - sym_latency_annotation, - STATE(148), 1, + STATE(151), 1, + sym_comment, + ACTIONS(551), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(553), 4, + anon_sym_comb, + anon_sym_group, + anon_sym_static, + sym_ident, + [5085] = 5, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + STATE(152), 1, sym_comment, - ACTIONS(473), 4, - anon_sym_invoke, - anon_sym_seq, - anon_sym_par, - anon_sym_if, - [4949] = 9, + ACTIONS(555), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(557), 4, + anon_sym_comb, + anon_sym_group, + anon_sym_static, + sym_ident, + [5105] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(21), 1, anon_sym_static, - ACTIONS(408), 1, + ACTIONS(407), 1, anon_sym_AT, - ACTIONS(542), 1, + ACTIONS(559), 1, anon_sym_if, - STATE(149), 1, + STATE(153), 1, sym_comment, - STATE(167), 1, + STATE(168), 1, aux_sym_io_port_repeat1, - STATE(246), 1, + STATE(212), 1, sym_at_attribute, - STATE(442), 1, + STATE(378), 1, sym_static_annotation, - [4977] = 6, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(471), 1, - anon_sym_LT, - STATE(132), 1, - sym_latency_annotation, - STATE(150), 1, - sym_comment, - ACTIONS(473), 4, - anon_sym_component, - anon_sym_comb, - anon_sym_primitive, - anon_sym_if, - [4999] = 9, + [5133] = 9, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, ACTIONS(21), 1, anon_sym_static, - ACTIONS(408), 1, + ACTIONS(407), 1, anon_sym_AT, - ACTIONS(544), 1, + ACTIONS(561), 1, anon_sym_if, - STATE(151), 1, + STATE(154), 1, sym_comment, - STATE(167), 1, + STATE(168), 1, aux_sym_io_port_repeat1, - STATE(246), 1, + STATE(212), 1, sym_at_attribute, - STATE(377), 1, + STATE(442), 1, sym_static_annotation, - [5027] = 7, + [5161] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(179), 1, - sym_ident, - ACTIONS(181), 1, - sym_number, - STATE(152), 1, + STATE(155), 1, sym_comment, - STATE(340), 1, - sym_base_expr, - STATE(67), 3, - sym_hole, - sym_port, - sym_literal, - [5051] = 8, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(485), 1, - anon_sym_wires, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(499), 1, + ACTIONS(563), 2, anon_sym_RBRACE, - STATE(153), 1, - sym_comment, - STATE(224), 1, - sym_wires, - STATE(353), 1, - sym_control, - [5076] = 5, + anon_sym_AT, + ACTIONS(565), 4, + anon_sym_comb, + anon_sym_group, + anon_sym_static, + sym_ident, + [5181] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(154), 1, + STATE(156), 1, sym_comment, - ACTIONS(546), 2, + ACTIONS(567), 2, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(548), 3, + ACTIONS(569), 4, anon_sym_comb, anon_sym_group, + anon_sym_static, sym_ident, - [5095] = 8, + [5201] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, - ACTIONS(493), 1, - anon_sym_LBRACK, - STATE(155), 1, + STATE(157), 1, sym_comment, - STATE(237), 1, - sym_params, - STATE(238), 1, - sym_signature, - STATE(412), 1, - sym_io_port_list, - [5120] = 5, + ACTIONS(571), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(573), 4, + anon_sym_comb, + anon_sym_group, + anon_sym_static, + sym_ident, + [5221] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(156), 1, + STATE(158), 1, sym_comment, - ACTIONS(550), 2, + ACTIONS(575), 2, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(552), 3, + ACTIONS(577), 4, anon_sym_comb, anon_sym_group, + anon_sym_static, sym_ident, - [5139] = 5, + [5241] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(157), 1, + STATE(159), 1, sym_comment, - ACTIONS(556), 2, - anon_sym_ref, - sym_ident, - ACTIONS(554), 3, - anon_sym_SEMI, + ACTIONS(579), 2, anon_sym_RBRACE, anon_sym_AT, - [5158] = 8, + ACTIONS(581), 4, + anon_sym_comb, + anon_sym_group, + anon_sym_static, + sym_ident, + [5261] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, - ACTIONS(495), 1, - anon_sym_LT, - STATE(158), 1, + ACTIONS(197), 1, + sym_ident, + ACTIONS(199), 1, + sym_number, + STATE(160), 1, sym_comment, - STATE(251), 1, - sym_attributes, - STATE(412), 1, - sym_io_port_list, - STATE(416), 1, - sym_signature, - [5183] = 8, + STATE(334), 1, + sym_base_expr, + STATE(50), 3, + sym_hole, + sym_port, + sym_literal, + [5285] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, + ACTIONS(513), 1, anon_sym_LPAREN, - ACTIONS(493), 1, - anon_sym_LBRACK, - STATE(159), 1, + ACTIONS(517), 1, + anon_sym_LT, + STATE(161), 1, sym_comment, - STATE(227), 1, - sym_params, - STATE(228), 1, + STATE(248), 1, + sym_attributes, + STATE(397), 1, sym_signature, - STATE(412), 1, + STATE(413), 1, sym_io_port_list, - [5208] = 5, + [5310] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(160), 1, + ACTIONS(131), 1, + anon_sym_DOT, + STATE(162), 1, sym_comment, - ACTIONS(558), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(560), 3, - anon_sym_comb, - anon_sym_group, - sym_ident, - [5227] = 5, + ACTIONS(125), 4, + anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_with, + [5329] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(161), 1, + STATE(163), 1, sym_comment, - ACTIONS(562), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(564), 3, - anon_sym_comb, - anon_sym_group, + ACTIONS(585), 2, + anon_sym_ref, sym_ident, - [5246] = 6, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(566), 1, + ACTIONS(583), 3, anon_sym_SEMI, - STATE(162), 1, - sym_comment, - ACTIONS(568), 2, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(570), 2, - anon_sym_ref, - sym_ident, - [5267] = 5, + [5348] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(163), 1, - sym_comment, - ACTIONS(572), 2, + ACTIONS(480), 1, + anon_sym_wires, + ACTIONS(482), 1, + anon_sym_control, + ACTIONS(531), 1, anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(574), 3, - anon_sym_comb, - anon_sym_group, - sym_ident, - [5286] = 5, + STATE(164), 1, + sym_comment, + STATE(246), 1, + sym_wires, + STATE(347), 1, + sym_control, + [5373] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(164), 1, + STATE(165), 1, sym_comment, - ACTIONS(578), 2, + ACTIONS(589), 2, anon_sym_ref, sym_ident, - ACTIONS(576), 3, + ACTIONS(587), 3, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - [5305] = 8, + [5392] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(485), 1, + ACTIONS(480), 1, anon_sym_wires, - ACTIONS(487), 1, + ACTIONS(482), 1, anon_sym_control, - ACTIONS(517), 1, + ACTIONS(591), 1, anon_sym_RBRACE, - STATE(165), 1, + STATE(166), 1, sym_comment, - STATE(208), 1, + STATE(215), 1, sym_wires, - STATE(360), 1, + STATE(405), 1, sym_control, - [5330] = 8, + [5417] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, - ACTIONS(495), 1, - anon_sym_LT, - STATE(166), 1, + ACTIONS(480), 1, + anon_sym_wires, + ACTIONS(482), 1, + anon_sym_control, + ACTIONS(529), 1, + anon_sym_RBRACE, + STATE(167), 1, sym_comment, - STATE(236), 1, - sym_attributes, - STATE(401), 1, - sym_signature, - STATE(412), 1, - sym_io_port_list, - [5355] = 6, + STATE(247), 1, + sym_wires, + STATE(362), 1, + sym_control, + [5442] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(580), 1, + ACTIONS(593), 1, anon_sym_AT, - STATE(246), 1, + STATE(212), 1, sym_at_attribute, - ACTIONS(168), 2, + ACTIONS(231), 2, anon_sym_if, anon_sym_static, - STATE(167), 2, + STATE(168), 2, sym_comment, aux_sym_io_port_repeat1, - [5376] = 5, - ACTIONS(3), 1, - anon_sym_SLASH_SLASH, - ACTIONS(5), 1, - aux_sym_comment_token2, - ACTIONS(113), 1, - anon_sym_DOT, - STATE(168), 1, - sym_comment, - ACTIONS(107), 4, - anon_sym_LBRACE, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_with, - [5395] = 6, + [5463] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(583), 1, + ACTIONS(596), 1, anon_sym_SEMI, STATE(169), 1, sym_comment, - ACTIONS(585), 2, + ACTIONS(598), 2, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(587), 2, + ACTIONS(600), 2, anon_sym_ref, sym_ident, - [5416] = 8, + [5484] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(485), 1, - anon_sym_wires, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(589), 1, - anon_sym_RBRACE, + ACTIONS(513), 1, + anon_sym_LPAREN, + ACTIONS(515), 1, + anon_sym_LBRACK, STATE(170), 1, sym_comment, - STATE(212), 1, - sym_wires, - STATE(405), 1, - sym_control, - [5441] = 5, + STATE(225), 1, + sym_params, + STATE(245), 1, + sym_signature, + STATE(413), 1, + sym_io_port_list, + [5509] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(513), 1, + anon_sym_LPAREN, + ACTIONS(515), 1, + anon_sym_LBRACK, STATE(171), 1, sym_comment, - ACTIONS(591), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(593), 3, - anon_sym_comb, - anon_sym_group, - sym_ident, - [5460] = 6, + STATE(217), 1, + sym_params, + STATE(222), 1, + sym_signature, + STATE(413), 1, + sym_io_port_list, + [5534] = 8, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(595), 1, - anon_sym_SEMI, + ACTIONS(513), 1, + anon_sym_LPAREN, + ACTIONS(517), 1, + anon_sym_LT, STATE(172), 1, sym_comment, - ACTIONS(597), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(599), 2, - anon_sym_ref, - sym_ident, - [5481] = 5, + STATE(229), 1, + sym_attributes, + STATE(413), 1, + sym_io_port_list, + STATE(417), 1, + sym_signature, + [5559] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(173), 1, sym_comment, - ACTIONS(601), 2, + ACTIONS(604), 2, + anon_sym_ref, + sym_ident, + ACTIONS(602), 3, + anon_sym_SEMI, anon_sym_RBRACE, anon_sym_AT, - ACTIONS(603), 3, - anon_sym_comb, - anon_sym_group, - sym_ident, - [5500] = 5, + [5578] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(606), 1, + anon_sym_SEMI, STATE(174), 1, sym_comment, - ACTIONS(607), 2, - anon_sym_ref, - sym_ident, - ACTIONS(605), 3, - anon_sym_SEMI, + ACTIONS(608), 2, anon_sym_RBRACE, anon_sym_AT, - [5519] = 6, + ACTIONS(610), 2, + anon_sym_ref, + sym_ident, + [5599] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(181), 1, - sym_number, - ACTIONS(609), 1, - sym_ident, + ACTIONS(612), 1, + anon_sym_SEMI, STATE(175), 1, sym_comment, - STATE(304), 2, - sym_port, - sym_literal, - [5539] = 5, + ACTIONS(614), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(616), 2, + anon_sym_ref, + sym_ident, + [5620] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(176), 1, sym_comment, - ACTIONS(568), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(570), 2, - anon_sym_ref, - sym_ident, - [5557] = 7, + ACTIONS(618), 4, + anon_sym_d, + anon_sym_b, + anon_sym_x, + anon_sym_o, + [5636] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(613), 1, - anon_sym_LBRACK, STATE(177), 1, sym_comment, - STATE(294), 1, - sym_invoke_args, - STATE(303), 1, - sym_invoke_ref_args, - [5579] = 7, + ACTIONS(620), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(622), 2, + anon_sym_ref, + sym_ident, + [5654] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(615), 1, - anon_sym_GT, - ACTIONS(617), 1, - sym_string, STATE(178), 1, sym_comment, - STATE(190), 1, - aux_sym_attributes_repeat1, - STATE(280), 1, - sym_attribute, - [5601] = 7, + ACTIONS(624), 4, + anon_sym_RBRACE, + anon_sym_comb, + anon_sym_primitive, + anon_sym_static, + [5670] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(613), 1, - anon_sym_LBRACK, + ACTIONS(559), 1, + anon_sym_if, + ACTIONS(626), 1, + anon_sym_invoke, + ACTIONS(628), 1, + anon_sym_seq, + ACTIONS(630), 1, + anon_sym_par, STATE(179), 1, sym_comment, - STATE(315), 1, - sym_invoke_ref_args, - STATE(318), 1, - sym_invoke_args, - [5623] = 7, + [5692] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(619), 1, - anon_sym_RPAREN, - ACTIONS(621), 1, - sym_ident, + ACTIONS(632), 1, + anon_sym_LPAREN, + ACTIONS(634), 1, + anon_sym_LBRACK, STATE(180), 1, sym_comment, - STATE(211), 1, - aux_sym_invoke_args_repeat1, - STATE(288), 1, - sym_invoke_arg, - [5645] = 6, + STATE(296), 1, + sym_invoke_args, + STATE(304), 1, + sym_invoke_ref_args, + [5714] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(168), 1, - sym_ident, - ACTIONS(623), 1, - anon_sym_AT, - STATE(277), 1, - sym_at_attribute, - STATE(181), 2, + STATE(181), 1, sym_comment, - aux_sym_io_port_repeat1, - [5665] = 5, + ACTIONS(614), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(616), 2, + anon_sym_ref, + sym_ident, + [5732] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(197), 1, + sym_ident, STATE(182), 1, sym_comment, - ACTIONS(626), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(628), 2, - anon_sym_ref, - sym_ident, - [5683] = 7, + STATE(450), 1, + sym_lhs, + STATE(333), 2, + sym_hole, + sym_port, + [5752] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(613), 1, - anon_sym_LBRACK, + ACTIONS(636), 1, + anon_sym_invoke, + ACTIONS(638), 1, + anon_sym_seq, + ACTIONS(640), 1, + anon_sym_par, + ACTIONS(642), 1, + anon_sym_if, STATE(183), 1, sym_comment, - STATE(270), 1, - sym_invoke_args, - STATE(271), 1, - sym_invoke_ref_args, - [5705] = 7, + [5774] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(630), 1, - anon_sym_RBRACK, ACTIONS(632), 1, - sym_ident, + anon_sym_LPAREN, + ACTIONS(634), 1, + anon_sym_LBRACK, STATE(184), 1, sym_comment, - STATE(210), 1, - aux_sym_invoke_ref_args_repeat1, - STATE(292), 1, - sym_invoke_ref_arg, - [5727] = 7, + STATE(316), 1, + sym_invoke_ref_args, + STATE(318), 1, + sym_invoke_args, + [5796] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(542), 1, - anon_sym_if, - ACTIONS(634), 1, - anon_sym_invoke, - ACTIONS(636), 1, - anon_sym_seq, - ACTIONS(638), 1, - anon_sym_par, + ACTIONS(21), 1, + anon_sym_static, STATE(185), 1, sym_comment, - [5749] = 6, + STATE(263), 1, + sym_static_annotation, + ACTIONS(644), 2, + anon_sym_component, + anon_sym_primitive, + [5816] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(640), 1, + ACTIONS(646), 1, anon_sym_GT, - ACTIONS(642), 1, + ACTIONS(648), 1, sym_string, - STATE(354), 1, - sym_attribute, - STATE(186), 2, + STATE(186), 1, sym_comment, + STATE(194), 1, aux_sym_attributes_repeat1, - [5769] = 7, + STATE(285), 1, + sym_attribute, + [5838] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(121), 1, - anon_sym_AT, - ACTIONS(645), 1, + ACTIONS(650), 1, + anon_sym_RBRACK, + ACTIONS(652), 1, sym_ident, - STATE(181), 1, - aux_sym_io_port_repeat1, STATE(187), 1, sym_comment, - STATE(277), 1, - sym_at_attribute, - [5791] = 6, + STATE(228), 1, + aux_sym_invoke_ref_args_repeat1, + STATE(294), 1, + sym_invoke_ref_arg, + [5860] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(21), 1, - anon_sym_static, + ACTIONS(654), 1, + anon_sym_RPAREN, + ACTIONS(656), 1, + sym_ident, STATE(188), 1, sym_comment, - STATE(262), 1, - sym_static_annotation, - ACTIONS(647), 2, - anon_sym_component, - anon_sym_primitive, - [5811] = 7, + STATE(203), 1, + aux_sym_invoke_args_repeat1, + STATE(290), 1, + sym_invoke_arg, + [5882] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(544), 1, + ACTIONS(561), 1, anon_sym_if, - ACTIONS(634), 1, + ACTIONS(626), 1, anon_sym_invoke, - ACTIONS(636), 1, + ACTIONS(628), 1, anon_sym_seq, - ACTIONS(638), 1, + ACTIONS(630), 1, anon_sym_par, STATE(189), 1, sym_comment, - [5833] = 7, + [5904] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(617), 1, - sym_string, - ACTIONS(649), 1, - anon_sym_GT, - STATE(186), 1, - aux_sym_attributes_repeat1, + ACTIONS(199), 1, + sym_number, + ACTIONS(658), 1, + sym_ident, STATE(190), 1, sym_comment, - STATE(291), 1, - sym_attribute, - [5855] = 4, + STATE(307), 2, + sym_port, + sym_literal, + [5924] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(660), 1, + anon_sym_LPAREN, STATE(191), 1, sym_comment, - ACTIONS(651), 4, - anon_sym_d, - anon_sym_b, - anon_sym_x, - anon_sym_o, - [5871] = 6, + ACTIONS(306), 3, + anon_sym_if, + anon_sym_static, + anon_sym_AT, + [5942] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(179), 1, + ACTIONS(231), 1, sym_ident, - STATE(192), 1, + ACTIONS(662), 1, + anon_sym_AT, + STATE(281), 1, + sym_at_attribute, + STATE(192), 2, sym_comment, - STATE(450), 1, - sym_lhs, - STATE(334), 2, - sym_hole, - sym_port, - [5891] = 5, + aux_sym_io_port_repeat1, + [5962] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(653), 1, + ACTIONS(632), 1, anon_sym_LPAREN, + ACTIONS(634), 1, + anon_sym_LBRACK, STATE(193), 1, sym_comment, - ACTIONS(229), 3, - anon_sym_if, - anon_sym_static, - anon_sym_AT, - [5909] = 7, + STATE(270), 1, + sym_invoke_args, + STATE(271), 1, + sym_invoke_ref_args, + [5984] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(655), 1, - anon_sym_invoke, - ACTIONS(657), 1, - anon_sym_seq, - ACTIONS(659), 1, - anon_sym_par, - ACTIONS(661), 1, - anon_sym_if, + ACTIONS(648), 1, + sym_string, + ACTIONS(665), 1, + anon_sym_GT, STATE(194), 1, sym_comment, - [5931] = 5, + STATE(197), 1, + aux_sym_attributes_repeat1, + STATE(303), 1, + sym_attribute, + [6006] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(195), 1, - sym_comment, - ACTIONS(585), 2, - anon_sym_RBRACE, + ACTIONS(113), 1, anon_sym_AT, - ACTIONS(587), 2, - anon_sym_ref, + ACTIONS(667), 1, sym_ident, - [5949] = 7, + STATE(192), 1, + aux_sym_io_port_repeat1, + STATE(195), 1, + sym_comment, + STATE(281), 1, + sym_at_attribute, + [6028] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(655), 1, - anon_sym_invoke, - ACTIONS(657), 1, - anon_sym_seq, - ACTIONS(659), 1, - anon_sym_par, - ACTIONS(663), 1, - anon_sym_if, STATE(196), 1, sym_comment, - [5971] = 6, + ACTIONS(598), 2, + anon_sym_RBRACE, + anon_sym_AT, + ACTIONS(600), 2, + anon_sym_ref, + sym_ident, + [6046] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(179), 1, - sym_ident, - STATE(197), 1, + ACTIONS(669), 1, + anon_sym_GT, + ACTIONS(671), 1, + sym_string, + STATE(349), 1, + sym_attribute, + STATE(197), 2, sym_comment, - STATE(374), 1, - sym_lhs, - STATE(334), 2, - sym_hole, - sym_port, - [5991] = 4, + aux_sym_attributes_repeat1, + [6066] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(198), 1, sym_comment, - ACTIONS(665), 4, + ACTIONS(674), 2, anon_sym_RBRACE, - anon_sym_comb, - anon_sym_primitive, - anon_sym_static, - [6007] = 5, + anon_sym_AT, + ACTIONS(676), 2, + anon_sym_ref, + sym_ident, + [6084] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(197), 1, + sym_ident, STATE(199), 1, sym_comment, - ACTIONS(667), 2, - anon_sym_RBRACE, - anon_sym_AT, - ACTIONS(669), 2, - anon_sym_ref, - sym_ident, - [6025] = 5, + STATE(384), 1, + sym_lhs, + STATE(333), 2, + sym_hole, + sym_port, + [6104] = 7, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(671), 1, - anon_sym_LPAREN, + ACTIONS(636), 1, + anon_sym_invoke, + ACTIONS(638), 1, + anon_sym_seq, + ACTIONS(640), 1, + anon_sym_par, + ACTIONS(678), 1, + anon_sym_if, STATE(200), 1, sym_comment, - ACTIONS(229), 2, - anon_sym_AT, - sym_ident, - [6042] = 5, - ACTIONS(3), 1, + [6126] = 6, + ACTIONS(680), 1, anon_sym_SLASH_SLASH, - ACTIONS(5), 1, + ACTIONS(682), 1, aux_sym_comment_token2, - ACTIONS(673), 1, - anon_sym_COMMA, + ACTIONS(684), 1, + anon_sym_RBRACE, + ACTIONS(686), 1, + sym_any_line, STATE(201), 1, sym_comment, - ACTIONS(675), 2, - anon_sym_RPAREN, - sym_number, - [6059] = 6, - ACTIONS(3), 1, + STATE(241), 1, + aux_sym_primitive_blob_repeat1, + [6145] = 5, + ACTIONS(680), 1, anon_sym_SLASH_SLASH, - ACTIONS(5), 1, + ACTIONS(682), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, - STATE(202), 1, + ACTIONS(688), 1, + anon_sym_RBRACE, + ACTIONS(690), 1, + sym_any_line, + STATE(202), 2, sym_comment, - STATE(297), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6078] = 6, + aux_sym_primitive_blob_repeat1, + [6162] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(495), 1, - anon_sym_LT, - ACTIONS(677), 1, - anon_sym_LBRACE, + ACTIONS(656), 1, + sym_ident, STATE(203), 1, sym_comment, - STATE(411), 1, - sym_attributes, - [6097] = 5, + STATE(238), 1, + aux_sym_invoke_args_repeat1, + STATE(322), 1, + sym_invoke_arg, + [6181] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(679), 1, - anon_sym_comb, STATE(204), 1, sym_comment, - ACTIONS(647), 2, - anon_sym_component, - anon_sym_primitive, - [6114] = 6, + ACTIONS(693), 3, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_with, + [6196] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, - STATE(205), 1, + ACTIONS(695), 1, + anon_sym_RPAREN, + ACTIONS(697), 1, + sym_number, + STATE(205), 2, sym_comment, - STATE(265), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6133] = 6, + aux_sym_arg_list_repeat1, + [6213] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, + ACTIONS(700), 1, + anon_sym_COMMA, STATE(206), 1, sym_comment, - STATE(263), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6152] = 6, + ACTIONS(702), 2, + anon_sym_RPAREN, + sym_number, + [6230] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, + ACTIONS(704), 1, + anon_sym_RPAREN, + ACTIONS(706), 1, + sym_number, + STATE(205), 1, + aux_sym_arg_list_repeat1, STATE(207), 1, sym_comment, - STATE(296), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6171] = 6, + [6249] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(487), 1, + ACTIONS(482), 1, anon_sym_control, - ACTIONS(589), 1, + ACTIONS(531), 1, anon_sym_RBRACE, STATE(208), 1, sym_comment, - STATE(405), 1, + STATE(347), 1, sym_control, - [6190] = 4, + [6268] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(209), 1, sym_comment, - ACTIONS(681), 3, - anon_sym_RBRACE, - anon_sym_wires, - anon_sym_control, - [6205] = 6, + ACTIONS(708), 3, + anon_sym_SEMI, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [6283] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(632), 1, + ACTIONS(658), 1, sym_ident, STATE(210), 1, sym_comment, - STATE(223), 1, - aux_sym_invoke_ref_args_repeat1, - STATE(319), 1, - sym_invoke_ref_arg, - [6224] = 6, + STATE(265), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6302] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(621), 1, + ACTIONS(658), 1, sym_ident, STATE(211), 1, sym_comment, - STATE(221), 1, - aux_sym_invoke_args_repeat1, - STATE(322), 1, - sym_invoke_arg, - [6243] = 6, + STATE(264), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6321] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(683), 1, - anon_sym_RBRACE, STATE(212), 1, sym_comment, - STATE(453), 1, - sym_control, - [6262] = 4, + ACTIONS(399), 3, + anon_sym_if, + anon_sym_static, + anon_sym_AT, + [6336] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(213), 1, sym_comment, - ACTIONS(685), 3, + ACTIONS(710), 3, anon_sym_SEMI, anon_sym_LPAREN, anon_sym_with, - [6277] = 6, + [6351] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(687), 1, - anon_sym_RPAREN, - ACTIONS(689), 1, - sym_number, STATE(214), 1, sym_comment, - STATE(230), 1, - aux_sym_arg_list_repeat1, - [6296] = 6, + ACTIONS(551), 3, + anon_sym_RBRACE, + anon_sym_AT, + sym_ident, + [6366] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, + ACTIONS(482), 1, + anon_sym_control, + ACTIONS(712), 1, + anon_sym_RBRACE, STATE(215), 1, sym_comment, - STATE(272), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6315] = 4, + STATE(443), 1, + sym_control, + [6385] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(216), 1, sym_comment, - ACTIONS(390), 3, - anon_sym_if, - anon_sym_static, - anon_sym_AT, - [6330] = 6, + ACTIONS(714), 3, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + [6400] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(691), 1, - anon_sym_SEMI, - ACTIONS(693), 1, - anon_sym_LBRACE, + ACTIONS(513), 1, + anon_sym_LPAREN, STATE(217), 1, sym_comment, - STATE(361), 1, - sym_primitive_blob, - [6349] = 6, + STATE(245), 1, + sym_signature, + STATE(413), 1, + sym_io_port_list, + [6419] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(495), 1, - anon_sym_LT, - ACTIONS(695), 1, - anon_sym_LBRACE, STATE(218), 1, sym_comment, - STATE(437), 1, - sym_attributes, - [6368] = 4, + ACTIONS(567), 3, + anon_sym_RBRACE, + anon_sym_AT, + sym_ident, + [6434] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(658), 1, + sym_ident, STATE(219), 1, sym_comment, - ACTIONS(697), 3, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_with, - [6383] = 5, - ACTIONS(699), 1, + STATE(295), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6453] = 4, + ACTIONS(3), 1, anon_sym_SLASH_SLASH, - ACTIONS(701), 1, + ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(703), 1, - anon_sym_RBRACE, - ACTIONS(705), 1, - sym_any_line, - STATE(220), 2, + STATE(220), 1, sym_comment, - aux_sym_primitive_blob_repeat1, - [6400] = 5, + ACTIONS(716), 3, + anon_sym_RBRACE, + anon_sym_wires, + anon_sym_control, + [6468] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(708), 1, - sym_ident, - STATE(370), 1, - sym_invoke_arg, - STATE(221), 2, + ACTIONS(517), 1, + anon_sym_LT, + ACTIONS(718), 1, + anon_sym_LBRACE, + STATE(221), 1, sym_comment, - aux_sym_invoke_args_repeat1, - [6417] = 6, + STATE(435), 1, + sym_attributes, + [6487] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, + ACTIONS(720), 1, + anon_sym_SEMI, + ACTIONS(722), 1, + anon_sym_LBRACE, STATE(222), 1, sym_comment, - STATE(266), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6436] = 5, + STATE(357), 1, + sym_primitive_blob, + [6506] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(711), 1, + ACTIONS(658), 1, sym_ident, - STATE(373), 1, - sym_invoke_ref_arg, - STATE(223), 2, + STATE(223), 1, sym_comment, - aux_sym_invoke_ref_args_repeat1, - [6453] = 6, + STATE(291), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6525] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(517), 1, - anon_sym_RBRACE, + ACTIONS(722), 1, + anon_sym_LBRACE, + ACTIONS(724), 1, + anon_sym_SEMI, STATE(224), 1, sym_comment, - STATE(360), 1, - sym_control, - [6472] = 4, + STATE(363), 1, + sym_primitive_blob, + [6544] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(513), 1, + anon_sym_LPAREN, + STATE(224), 1, + sym_signature, STATE(225), 1, sym_comment, - ACTIONS(714), 3, - anon_sym_LBRACE, - anon_sym_LPAREN, - anon_sym_LBRACK, - [6487] = 4, + STATE(413), 1, + sym_io_port_list, + [6563] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(226), 1, sym_comment, - ACTIONS(716), 3, + ACTIONS(726), 3, anon_sym_SEMI, anon_sym_DASH_GT, anon_sym_LBRACE, - [6502] = 6, + [6578] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, - STATE(217), 1, - sym_signature, STATE(227), 1, sym_comment, - STATE(412), 1, - sym_io_port_list, - [6521] = 6, + ACTIONS(537), 3, + anon_sym_RPAREN, + anon_sym_AT, + sym_ident, + [6593] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(693), 1, - anon_sym_LBRACE, - ACTIONS(718), 1, - anon_sym_SEMI, + ACTIONS(652), 1, + sym_ident, STATE(228), 1, sym_comment, - STATE(344), 1, - sym_primitive_blob, - [6540] = 6, - ACTIONS(699), 1, + STATE(243), 1, + aux_sym_invoke_ref_args_repeat1, + STATE(321), 1, + sym_invoke_ref_arg, + [6612] = 6, + ACTIONS(3), 1, anon_sym_SLASH_SLASH, - ACTIONS(701), 1, + ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(720), 1, - anon_sym_RBRACE, - ACTIONS(722), 1, - sym_any_line, - STATE(220), 1, - aux_sym_primitive_blob_repeat1, + ACTIONS(513), 1, + anon_sym_LPAREN, STATE(229), 1, sym_comment, - [6559] = 5, + STATE(397), 1, + sym_signature, + STATE(413), 1, + sym_io_port_list, + [6631] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(724), 1, - anon_sym_RPAREN, - ACTIONS(726), 1, - sym_number, - STATE(230), 2, + ACTIONS(728), 1, + anon_sym_comb, + STATE(230), 1, sym_comment, - aux_sym_arg_list_repeat1, - [6576] = 4, + ACTIONS(644), 2, + anon_sym_component, + anon_sym_primitive, + [6648] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(658), 1, + sym_ident, STATE(231), 1, sym_comment, - ACTIONS(729), 3, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_with, - [6591] = 6, + STATE(298), 1, + sym_port, + STATE(313), 1, + sym_port_with, + [6667] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(487), 1, - anon_sym_control, - ACTIONS(499), 1, - anon_sym_RBRACE, + ACTIONS(722), 1, + anon_sym_LBRACE, + ACTIONS(730), 1, + anon_sym_SEMI, STATE(232), 1, sym_comment, - STATE(353), 1, - sym_control, - [6610] = 4, + STATE(391), 1, + sym_primitive_blob, + [6686] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(732), 1, + anon_sym_LPAREN, STATE(233), 1, sym_comment, - ACTIONS(731), 3, - anon_sym_LBRACE, - anon_sym_LPAREN, - anon_sym_LBRACK, - [6625] = 4, + ACTIONS(306), 2, + anon_sym_AT, + sym_ident, + [6703] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(234), 1, sym_comment, - ACTIONS(733), 3, + ACTIONS(734), 3, anon_sym_SEMI, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [6640] = 4, + anon_sym_LPAREN, + anon_sym_with, + [6718] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(513), 1, + anon_sym_LPAREN, + STATE(222), 1, + sym_signature, STATE(235), 1, sym_comment, - ACTIONS(509), 3, - anon_sym_RPAREN, - anon_sym_AT, - sym_ident, - [6655] = 6, + STATE(413), 1, + sym_io_port_list, + [6737] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, + ACTIONS(517), 1, + anon_sym_LT, + ACTIONS(736), 1, + anon_sym_LBRACE, STATE(236), 1, sym_comment, - STATE(359), 1, - sym_signature, - STATE(412), 1, - sym_io_port_list, - [6674] = 6, + STATE(411), 1, + sym_attributes, + [6756] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, - STATE(228), 1, - sym_signature, STATE(237), 1, sym_comment, - STATE(412), 1, - sym_io_port_list, - [6693] = 6, + ACTIONS(738), 3, + anon_sym_RBRACE, + anon_sym_AT, + sym_ident, + [6771] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(693), 1, - anon_sym_LBRACE, - ACTIONS(735), 1, - anon_sym_SEMI, - STATE(238), 1, + ACTIONS(740), 1, + sym_ident, + STATE(371), 1, + sym_invoke_arg, + STATE(238), 2, sym_comment, - STATE(362), 1, - sym_primitive_blob, - [6712] = 6, - ACTIONS(699), 1, + aux_sym_invoke_args_repeat1, + [6788] = 4, + ACTIONS(3), 1, anon_sym_SLASH_SLASH, - ACTIONS(701), 1, + ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(722), 1, - sym_any_line, - ACTIONS(737), 1, - anon_sym_RBRACE, - STATE(229), 1, - aux_sym_primitive_blob_repeat1, STATE(239), 1, sym_comment, - [6731] = 5, + ACTIONS(395), 3, + anon_sym_if, + anon_sym_static, + anon_sym_AT, + [6803] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(739), 1, - anon_sym_LPAREN, + ACTIONS(658), 1, + sym_ident, STATE(240), 1, sym_comment, - ACTIONS(233), 2, - anon_sym_ref, - sym_ident, - [6748] = 4, - ACTIONS(3), 1, + STATE(268), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6822] = 6, + ACTIONS(680), 1, anon_sym_SLASH_SLASH, - ACTIONS(5), 1, + ACTIONS(682), 1, aux_sym_comment_token2, + ACTIONS(686), 1, + sym_any_line, + ACTIONS(743), 1, + anon_sym_RBRACE, + STATE(202), 1, + aux_sym_primitive_blob_repeat1, STATE(241), 1, sym_comment, - ACTIONS(741), 3, - anon_sym_RBRACE, - anon_sym_AT, - sym_ident, - [6763] = 6, + [6841] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, STATE(242), 1, sym_comment, - STATE(298), 1, - sym_port, - STATE(312), 1, - sym_port_with, - [6782] = 4, + ACTIONS(745), 3, + anon_sym_RBRACE, + anon_sym_wires, + anon_sym_control, + [6856] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - STATE(243), 1, - sym_comment, - ACTIONS(591), 3, - anon_sym_RBRACE, - anon_sym_AT, + ACTIONS(747), 1, sym_ident, - [6797] = 4, + STATE(374), 1, + sym_invoke_ref_arg, + STATE(243), 2, + sym_comment, + aux_sym_invoke_ref_args_repeat1, + [6873] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(658), 1, + sym_ident, STATE(244), 1, sym_comment, - ACTIONS(546), 3, - anon_sym_RBRACE, - anon_sym_AT, - sym_ident, - [6812] = 4, + STATE(272), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6892] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(722), 1, + anon_sym_LBRACE, + ACTIONS(750), 1, + anon_sym_SEMI, STATE(245), 1, sym_comment, - ACTIONS(743), 3, - anon_sym_LBRACE, - anon_sym_LPAREN, - anon_sym_LBRACK, - [6827] = 4, + STATE(336), 1, + sym_primitive_blob, + [6911] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(482), 1, + anon_sym_control, + ACTIONS(529), 1, + anon_sym_RBRACE, STATE(246), 1, sym_comment, - ACTIONS(365), 3, - anon_sym_if, - anon_sym_static, - anon_sym_AT, - [6842] = 4, + STATE(362), 1, + sym_control, + [6930] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(482), 1, + anon_sym_control, + ACTIONS(591), 1, + anon_sym_RBRACE, STATE(247), 1, sym_comment, - ACTIONS(745), 3, - anon_sym_SEMI, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [6857] = 6, + STATE(405), 1, + sym_control, + [6949] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, + ACTIONS(513), 1, + anon_sym_LPAREN, STATE(248), 1, sym_comment, - STATE(259), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6876] = 6, + STATE(356), 1, + sym_signature, + STATE(413), 1, + sym_io_port_list, + [6968] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, - STATE(238), 1, - sym_signature, + ACTIONS(658), 1, + sym_ident, STATE(249), 1, sym_comment, - STATE(412), 1, - sym_io_port_list, - [6895] = 6, + STATE(273), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [6987] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(693), 1, - anon_sym_LBRACE, - ACTIONS(747), 1, - anon_sym_SEMI, + ACTIONS(658), 1, + sym_ident, STATE(250), 1, sym_comment, - STATE(397), 1, - sym_primitive_blob, - [6914] = 6, + STATE(260), 1, + sym_port_with, + STATE(298), 1, + sym_port, + [7006] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, STATE(251), 1, sym_comment, - STATE(401), 1, - sym_signature, - STATE(412), 1, - sym_io_port_list, - [6933] = 6, + ACTIONS(752), 3, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + [7021] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(689), 1, - sym_number, - ACTIONS(749), 1, - anon_sym_RPAREN, - STATE(214), 1, - aux_sym_arg_list_repeat1, STATE(252), 1, sym_comment, - [6952] = 4, + ACTIONS(754), 3, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + [7036] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(706), 1, + sym_number, + ACTIONS(756), 1, + anon_sym_RPAREN, + STATE(207), 1, + aux_sym_arg_list_repeat1, STATE(253), 1, sym_comment, - ACTIONS(751), 3, - anon_sym_RBRACE, - anon_sym_wires, - anon_sym_control, - [6967] = 6, + [7055] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, - sym_ident, STATE(254), 1, sym_comment, - STATE(274), 1, - sym_port_with, - STATE(298), 1, - sym_port, - [6986] = 6, + ACTIONS(758), 3, + anon_sym_SEMI, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [7070] = 6, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(609), 1, + ACTIONS(658), 1, sym_ident, STATE(255), 1, sym_comment, - STATE(273), 1, + STATE(274), 1, sym_port_with, STATE(298), 1, sym_port, - [7005] = 4, + [7089] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(760), 1, + anon_sym_LPAREN, STATE(256), 1, sym_comment, - ACTIONS(753), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [7019] = 4, + ACTIONS(310), 2, + anon_sym_ref, + sym_ident, + [7106] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(257), 1, sym_comment, - ACTIONS(755), 2, + ACTIONS(762), 2, anon_sym_COMMA, - anon_sym_GT, - [7033] = 5, + anon_sym_RPAREN, + [7120] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(412), 1, - anon_sym_LBRACE, - STATE(56), 1, - sym_block, - STATE(258), 1, + ACTIONS(764), 1, + sym_ident, + STATE(258), 2, sym_comment, - [7049] = 5, + aux_sym_params_repeat1, + [7134] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(412), 1, + ACTIONS(403), 1, anon_sym_LBRACE, - STATE(63), 1, + STATE(45), 1, sym_block, STATE(259), 1, sym_comment, - [7065] = 5, + [7150] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(757), 1, - anon_sym_component, - ACTIONS(759), 1, - anon_sym_primitive, + ACTIONS(403), 1, + anon_sym_LBRACE, + STATE(46), 1, + sym_block, STATE(260), 1, sym_comment, - [7081] = 5, + [7166] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(412), 1, - anon_sym_LBRACE, - STATE(66), 1, - sym_block, + ACTIONS(767), 1, + anon_sym_component, + ACTIONS(769), 1, + anon_sym_primitive, STATE(261), 1, sym_comment, - [7097] = 4, + [7182] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(403), 1, + anon_sym_LBRACE, + STATE(70), 1, + sym_block, STATE(262), 1, sym_comment, - ACTIONS(761), 2, - anon_sym_component, - anon_sym_primitive, - [7111] = 5, + [7198] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, - anon_sym_LBRACE, - STATE(44), 1, - sym_block, STATE(263), 1, sym_comment, - [7127] = 5, + ACTIONS(771), 2, + anon_sym_component, + anon_sym_primitive, + [7212] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(763), 1, - sym_ident, - STATE(162), 1, - sym_instantiation, + ACTIONS(411), 1, + anon_sym_LBRACE, + STATE(54), 1, + sym_block, STATE(264), 1, sym_comment, - [7143] = 5, + [7228] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, + ACTIONS(403), 1, anon_sym_LBRACE, + STATE(32), 1, + sym_block, STATE(265), 1, sym_comment, - STATE(306), 1, - sym_block, - [7159] = 5, + [7244] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(412), 1, - anon_sym_LBRACE, - STATE(44), 1, - sym_block, + ACTIONS(773), 1, + sym_ident, + STATE(169), 1, + sym_instantiation, STATE(266), 1, sym_comment, - [7175] = 5, + [7260] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, + ACTIONS(411), 1, anon_sym_LBRACE, - STATE(43), 1, + STATE(53), 1, sym_block, STATE(267), 1, sym_comment, - [7191] = 5, + [7276] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(187), 1, - anon_sym_RBRACE, - ACTIONS(765), 1, - anon_sym_else, + ACTIONS(403), 1, + anon_sym_LBRACE, + STATE(54), 1, + sym_block, STATE(268), 1, sym_comment, - [7207] = 5, + [7292] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(412), 1, + ACTIONS(403), 1, anon_sym_LBRACE, - STATE(43), 1, + STATE(53), 1, sym_block, STATE(269), 1, sym_comment, - [7223] = 5, + [7308] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, + ACTIONS(632), 1, anon_sym_LPAREN, STATE(270), 1, sym_comment, - STATE(295), 1, + STATE(297), 1, sym_invoke_args, - [7239] = 5, + [7324] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, + ACTIONS(632), 1, anon_sym_LPAREN, STATE(271), 1, sym_comment, - STATE(294), 1, + STATE(296), 1, sym_invoke_args, - [7255] = 5, + [7340] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(767), 1, + ACTIONS(775), 1, anon_sym_LBRACE, - STATE(38), 1, - sym_block, STATE(272), 1, sym_comment, - [7271] = 5, + STATE(277), 1, + sym_block, + [7356] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(767), 1, + ACTIONS(775), 1, anon_sym_LBRACE, - STATE(35), 1, - sym_block, STATE(273), 1, sym_comment, - [7287] = 5, + STATE(282), 1, + sym_block, + [7372] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(767), 1, + ACTIONS(775), 1, anon_sym_LBRACE, - STATE(32), 1, - sym_block, STATE(274), 1, sym_comment, - [7303] = 5, + STATE(283), 1, + sym_block, + [7388] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(769), 1, + ACTIONS(777), 1, sym_ident, STATE(275), 1, sym_comment, - STATE(284), 1, + STATE(289), 1, aux_sym_params_repeat1, - [7319] = 5, + [7404] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(503), 1, - anon_sym_RPAREN, - ACTIONS(771), 1, - anon_sym_COMMA, STATE(276), 1, sym_comment, - [7335] = 4, + ACTIONS(217), 2, + anon_sym_RBRACE, + anon_sym_else, + [7418] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(221), 1, + anon_sym_RBRACE, + ACTIONS(779), 1, + anon_sym_else, STATE(277), 1, sym_comment, - ACTIONS(365), 2, - anon_sym_AT, - sym_ident, - [7349] = 5, + [7434] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(773), 1, + ACTIONS(781), 1, anon_sym_LPAREN, - STATE(174), 1, + STATE(173), 1, sym_arg_list, STATE(278), 1, sym_comment, - [7365] = 5, + [7450] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(763), 1, + ACTIONS(773), 1, sym_ident, - STATE(169), 1, + STATE(175), 1, sym_instantiation, STATE(279), 1, sym_comment, - [7381] = 5, + [7466] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(649), 1, - anon_sym_GT, - ACTIONS(775), 1, + ACTIONS(498), 1, + anon_sym_RPAREN, + ACTIONS(783), 1, anon_sym_COMMA, STATE(280), 1, sym_comment, - [7397] = 5, + [7482] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(491), 1, - anon_sym_LPAREN, STATE(281), 1, sym_comment, - STATE(300), 1, - sym_io_port_list, - [7413] = 5, + ACTIONS(399), 2, + anon_sym_AT, + sym_ident, + [7496] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(777), 1, - anon_sym_COMMA, - ACTIONS(779), 1, - anon_sym_RBRACK, + ACTIONS(201), 1, + anon_sym_RBRACE, + ACTIONS(785), 1, + anon_sym_else, STATE(282), 1, sym_comment, - [7429] = 4, + [7512] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(207), 1, + anon_sym_RBRACE, + ACTIONS(787), 1, + anon_sym_else, STATE(283), 1, sym_comment, - ACTIONS(392), 2, - anon_sym_ref, - sym_ident, - [7443] = 5, + [7528] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(781), 1, - sym_ident, STATE(284), 1, sym_comment, - STATE(307), 1, - aux_sym_params_repeat1, - [7459] = 4, + ACTIONS(397), 2, + anon_sym_ref, + sym_ident, + [7542] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(665), 1, + anon_sym_GT, + ACTIONS(789), 1, + anon_sym_COMMA, STATE(285), 1, sym_comment, - ACTIONS(783), 2, - sym_ident, - sym_number, - [7473] = 5, + [7558] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(771), 1, - anon_sym_COMMA, - ACTIONS(785), 1, - anon_sym_RPAREN, + ACTIONS(411), 1, + anon_sym_LBRACE, + STATE(45), 1, + sym_block, STATE(286), 1, sym_comment, - [7489] = 5, + [7574] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(787), 1, - anon_sym_SEMI, - ACTIONS(789), 1, - anon_sym_with, + ACTIONS(513), 1, + anon_sym_LPAREN, STATE(287), 1, sym_comment, - [7505] = 5, + STATE(310), 1, + sym_io_port_list, + [7590] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, @@ -8578,2595 +8652,2611 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(791), 1, anon_sym_COMMA, ACTIONS(793), 1, - anon_sym_RPAREN, + anon_sym_RBRACK, STATE(288), 1, sym_comment, - [7521] = 5, + [7606] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, - anon_sym_LBRACE, - STATE(56), 1, - sym_block, + ACTIONS(795), 1, + sym_ident, + STATE(258), 1, + aux_sym_params_repeat1, STATE(289), 1, sym_comment, - [7537] = 4, + [7622] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(797), 1, + anon_sym_COMMA, + ACTIONS(799), 1, + anon_sym_RPAREN, STATE(290), 1, sym_comment, - ACTIONS(640), 2, - anon_sym_GT, - sym_string, - [7551] = 5, + [7638] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(775), 1, - anon_sym_COMMA, - ACTIONS(795), 1, - anon_sym_GT, + ACTIONS(411), 1, + anon_sym_LBRACE, + STATE(46), 1, + sym_block, STATE(291), 1, sym_comment, - [7567] = 5, + [7654] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(797), 1, - anon_sym_COMMA, - ACTIONS(799), 1, - anon_sym_RBRACK, + ACTIONS(801), 1, + anon_sym_SEMI, + ACTIONS(803), 1, + anon_sym_with, STATE(292), 1, sym_comment, - [7583] = 5, + [7670] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, - STATE(287), 1, - sym_invoke_args, STATE(293), 1, sym_comment, - [7599] = 5, + ACTIONS(805), 2, + sym_ident, + sym_number, + [7684] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, + ACTIONS(807), 1, + anon_sym_COMMA, + ACTIONS(809), 1, + anon_sym_RBRACK, STATE(294), 1, sym_comment, - STATE(324), 1, - sym_invoke_args, - [7615] = 5, + [7700] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(801), 1, - anon_sym_SEMI, - ACTIONS(803), 1, - anon_sym_with, + ACTIONS(403), 1, + anon_sym_LBRACE, + STATE(34), 1, + sym_block, STATE(295), 1, sym_comment, - [7631] = 5, + [7716] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, - anon_sym_LBRACE, - STATE(63), 1, - sym_block, + ACTIONS(632), 1, + anon_sym_LPAREN, STATE(296), 1, sym_comment, - [7647] = 5, + STATE(320), 1, + sym_invoke_args, + [7732] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, - anon_sym_LBRACE, - STATE(268), 1, - sym_block, + ACTIONS(811), 1, + anon_sym_SEMI, + ACTIONS(813), 1, + anon_sym_with, STATE(297), 1, sym_comment, - [7663] = 5, + [7748] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(805), 1, + ACTIONS(815), 1, anon_sym_LBRACE, - ACTIONS(807), 1, + ACTIONS(817), 1, anon_sym_with, STATE(298), 1, sym_comment, - [7679] = 5, + [7764] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(809), 1, - anon_sym_SEMI, - ACTIONS(811), 1, - anon_sym_with, + ACTIONS(783), 1, + anon_sym_COMMA, + ACTIONS(819), 1, + anon_sym_RPAREN, STATE(299), 1, sym_comment, - [7695] = 4, + [7780] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(300), 1, sym_comment, - ACTIONS(813), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [7709] = 4, + ACTIONS(669), 2, + anon_sym_GT, + sym_string, + [7794] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(632), 1, + anon_sym_LPAREN, + STATE(292), 1, + sym_invoke_args, STATE(301), 1, sym_comment, - ACTIONS(815), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [7723] = 4, + [7810] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(302), 1, sym_comment, - ACTIONS(817), 2, + ACTIONS(821), 2, anon_sym_RBRACE, anon_sym_control, - [7737] = 5, + [7824] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, + ACTIONS(789), 1, + anon_sym_COMMA, + ACTIONS(823), 1, + anon_sym_GT, STATE(303), 1, sym_comment, - STATE(318), 1, - sym_invoke_args, - [7753] = 4, + [7840] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(632), 1, + anon_sym_LPAREN, STATE(304), 1, sym_comment, - ACTIONS(819), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [7767] = 5, + STATE(318), 1, + sym_invoke_args, + [7856] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(777), 1, - anon_sym_COMMA, - ACTIONS(821), 1, - anon_sym_RBRACK, + ACTIONS(825), 1, + anon_sym_SEMI, + ACTIONS(827), 1, + anon_sym_with, STATE(305), 1, sym_comment, - [7783] = 5, + [7872] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(207), 1, - anon_sym_RBRACE, - ACTIONS(823), 1, - anon_sym_else, STATE(306), 1, sym_comment, - [7799] = 4, + ACTIONS(829), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [7886] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(825), 1, - sym_ident, - STATE(307), 2, + STATE(307), 1, sym_comment, - aux_sym_params_repeat1, - [7813] = 5, + ACTIONS(831), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [7900] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, - anon_sym_LBRACE, - STATE(66), 1, - sym_block, + ACTIONS(773), 1, + sym_ident, + STATE(174), 1, + sym_instantiation, STATE(308), 1, sym_comment, - [7829] = 4, - ACTIONS(699), 1, + [7916] = 5, + ACTIONS(3), 1, anon_sym_SLASH_SLASH, - ACTIONS(701), 1, + ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(411), 1, + anon_sym_LBRACE, + STATE(70), 1, + sym_block, STATE(309), 1, sym_comment, - ACTIONS(828), 2, - anon_sym_RBRACE, - sym_any_line, - [7843] = 5, + [7932] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(763), 1, - sym_ident, - STATE(172), 1, - sym_instantiation, STATE(310), 1, sym_comment, - [7859] = 4, + ACTIONS(833), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + [7946] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(311), 1, sym_comment, - ACTIONS(724), 2, - anon_sym_RPAREN, - sym_number, - [7873] = 5, + ACTIONS(395), 2, + anon_sym_AT, + sym_ident, + [7960] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(404), 1, - anon_sym_LBRACE, + ACTIONS(791), 1, + anon_sym_COMMA, + ACTIONS(835), 1, + anon_sym_RBRACK, STATE(312), 1, sym_comment, - STATE(314), 1, - sym_block, - [7889] = 4, + [7976] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(403), 1, + anon_sym_LBRACE, + STATE(38), 1, + sym_block, STATE(313), 1, sym_comment, - ACTIONS(390), 2, - anon_sym_AT, - sym_ident, - [7903] = 5, + [7992] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(217), 1, - anon_sym_RBRACE, - ACTIONS(830), 1, - anon_sym_else, STATE(314), 1, sym_comment, - [7919] = 5, - ACTIONS(3), 1, + ACTIONS(695), 2, + anon_sym_RPAREN, + sym_number, + [8006] = 4, + ACTIONS(680), 1, anon_sym_SLASH_SLASH, - ACTIONS(5), 1, + ACTIONS(682), 1, aux_sym_comment_token2, - ACTIONS(611), 1, - anon_sym_LPAREN, - STATE(293), 1, - sym_invoke_args, STATE(315), 1, sym_comment, - [7935] = 4, + ACTIONS(837), 2, + anon_sym_RBRACE, + sym_any_line, + [8020] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(632), 1, + anon_sym_LPAREN, + STATE(301), 1, + sym_invoke_args, STATE(316), 1, sym_comment, - ACTIONS(832), 2, - sym_ident, - sym_number, - [7949] = 4, + [8036] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(317), 1, sym_comment, - ACTIONS(834), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [7963] = 5, + ACTIONS(839), 2, + sym_ident, + sym_number, + [8050] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(611), 1, + ACTIONS(632), 1, anon_sym_LPAREN, - STATE(299), 1, + STATE(305), 1, sym_invoke_args, STATE(318), 1, sym_comment, - [7979] = 5, + [8066] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(797), 1, - anon_sym_COMMA, - ACTIONS(836), 1, - anon_sym_RBRACK, STATE(319), 1, sym_comment, - [7995] = 4, + ACTIONS(841), 2, + anon_sym_COMMA, + anon_sym_GT, + [8080] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, + ACTIONS(843), 1, + anon_sym_SEMI, + ACTIONS(845), 1, + anon_sym_with, STATE(320), 1, sym_comment, - ACTIONS(838), 2, - anon_sym_RBRACE, - anon_sym_control, - [8009] = 5, + [8096] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(840), 1, - anon_sym_ref, - ACTIONS(842), 1, - sym_ident, + ACTIONS(807), 1, + anon_sym_COMMA, + ACTIONS(847), 1, + anon_sym_RBRACK, STATE(321), 1, sym_comment, - [8025] = 5, + [8112] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(791), 1, + ACTIONS(797), 1, anon_sym_COMMA, - ACTIONS(844), 1, + ACTIONS(849), 1, anon_sym_RPAREN, STATE(322), 1, sym_comment, - [8041] = 4, + [8128] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, STATE(323), 1, sym_comment, - ACTIONS(213), 2, - anon_sym_RBRACE, - anon_sym_else, - [8055] = 5, + ACTIONS(851), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [8142] = 5, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(846), 1, - anon_sym_SEMI, - ACTIONS(848), 1, - anon_sym_with, + ACTIONS(853), 1, + anon_sym_ref, + ACTIONS(855), 1, + sym_ident, STATE(324), 1, sym_comment, - [8071] = 4, + [8158] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(850), 1, - sym_number, STATE(325), 1, sym_comment, - [8084] = 4, + ACTIONS(857), 2, + anon_sym_RBRACE, + anon_sym_control, + [8172] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(852), 1, - anon_sym_SEMI, + ACTIONS(859), 1, + sym_ident, STATE(326), 1, sym_comment, - [8097] = 4, + [8185] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(125), 1, - anon_sym_SEMI, + ACTIONS(861), 1, + anon_sym_group, STATE(327), 1, sym_comment, - [8110] = 4, + [8198] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(854), 1, + ACTIONS(863), 1, sym_number, STATE(328), 1, sym_comment, - [8123] = 4, + [8211] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(856), 1, - anon_sym_LBRACE, + ACTIONS(865), 1, + anon_sym_RBRACE, STATE(329), 1, sym_comment, - [8136] = 4, + [8224] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(858), 1, - anon_sym_LBRACE, + ACTIONS(867), 1, + anon_sym_RBRACE, STATE(330), 1, sym_comment, - [8149] = 4, + [8237] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(860), 1, - sym_ident, + ACTIONS(869), 1, + anon_sym_EQ, STATE(331), 1, sym_comment, - [8162] = 4, + [8250] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(862), 1, - anon_sym_EQ, + ACTIONS(871), 1, + sym_ident, STATE(332), 1, sym_comment, - [8175] = 4, + [8263] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(864), 1, - sym_number, + ACTIONS(873), 1, + anon_sym_EQ, STATE(333), 1, sym_comment, - [8188] = 4, + [8276] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(866), 1, - anon_sym_EQ, + ACTIONS(875), 1, + anon_sym_SEMI, STATE(334), 1, sym_comment, - [8201] = 4, + [8289] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(868), 1, - anon_sym_RBRACE, + ACTIONS(877), 1, + anon_sym_LPAREN, STATE(335), 1, sym_comment, - [8214] = 4, + [8302] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(870), 1, - sym_ident, + ACTIONS(724), 1, + anon_sym_SEMI, STATE(336), 1, sym_comment, - [8227] = 4, + [8315] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(872), 1, - anon_sym_group, + ACTIONS(879), 1, + sym_ident, STATE(337), 1, sym_comment, - [8240] = 4, + [8328] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(874), 1, - anon_sym_RBRACE, + ACTIONS(881), 1, + anon_sym_SEMI, STATE(338), 1, sym_comment, - [8253] = 4, + [8341] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(876), 1, + ACTIONS(883), 1, anon_sym_EQ, STATE(339), 1, sym_comment, - [8266] = 4, + [8354] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(878), 1, - anon_sym_SEMI, + ACTIONS(791), 1, + anon_sym_COMMA, STATE(340), 1, sym_comment, - [8279] = 4, + [8367] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(880), 1, - anon_sym_LPAREN, + ACTIONS(885), 1, + sym_ident, STATE(341), 1, sym_comment, - [8292] = 4, + [8380] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(882), 1, + ACTIONS(887), 1, sym_ident, STATE(342), 1, sym_comment, - [8305] = 4, + [8393] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(884), 1, - anon_sym_RPAREN, + ACTIONS(889), 1, + anon_sym_LPAREN, STATE(343), 1, sym_comment, - [8318] = 4, + [8406] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(691), 1, - anon_sym_SEMI, + ACTIONS(891), 1, + anon_sym_RBRACE, STATE(344), 1, sym_comment, - [8331] = 4, - ACTIONS(3), 1, + [8419] = 4, + ACTIONS(680), 1, anon_sym_SLASH_SLASH, - ACTIONS(5), 1, + ACTIONS(682), 1, aux_sym_comment_token2, - ACTIONS(886), 1, - sym_ident, + ACTIONS(893), 1, + aux_sym_comment_token1, STATE(345), 1, sym_comment, - [8344] = 4, + [8432] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(888), 1, + ACTIONS(895), 1, sym_ident, STATE(346), 1, sym_comment, - [8357] = 4, + [8445] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(890), 1, - anon_sym_LPAREN, + ACTIONS(529), 1, + anon_sym_RBRACE, STATE(347), 1, sym_comment, - [8370] = 4, + [8458] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(892), 1, - anon_sym_SEMI, + ACTIONS(897), 1, + sym_ident, STATE(348), 1, sym_comment, - [8383] = 4, + [8471] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(777), 1, + ACTIONS(789), 1, anon_sym_COMMA, STATE(349), 1, sym_comment, - [8396] = 4, + [8484] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(894), 1, - sym_ident, + ACTIONS(899), 1, + anon_sym_LBRACE, STATE(350), 1, sym_comment, - [8409] = 4, - ACTIONS(699), 1, + [8497] = 4, + ACTIONS(3), 1, anon_sym_SLASH_SLASH, - ACTIONS(701), 1, + ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(896), 1, - aux_sym_comment_token1, + ACTIONS(559), 1, + anon_sym_if, STATE(351), 1, sym_comment, - [8422] = 4, + [8510] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(544), 1, - anon_sym_if, + ACTIONS(783), 1, + anon_sym_COMMA, STATE(352), 1, sym_comment, - [8435] = 4, + [8523] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(517), 1, - anon_sym_RBRACE, + ACTIONS(901), 1, + anon_sym_LBRACE, STATE(353), 1, sym_comment, - [8448] = 4, + [8536] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(775), 1, - anon_sym_COMMA, + ACTIONS(903), 1, + sym_number, STATE(354), 1, sym_comment, - [8461] = 4, + [8549] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(771), 1, - anon_sym_COMMA, + ACTIONS(905), 1, + sym_number, STATE(355), 1, sym_comment, - [8474] = 4, + [8562] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(898), 1, - sym_ident, + ACTIONS(907), 1, + anon_sym_LBRACE, STATE(356), 1, sym_comment, - [8487] = 4, + [8575] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(900), 1, - anon_sym_RBRACE, + ACTIONS(750), 1, + anon_sym_SEMI, STATE(357), 1, sym_comment, - [8500] = 4, + [8588] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(902), 1, - anon_sym_LBRACE, + ACTIONS(150), 1, + anon_sym_SEMI, STATE(358), 1, sym_comment, - [8513] = 4, + [8601] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(904), 1, - anon_sym_LBRACE, + ACTIONS(909), 1, + anon_sym_RBRACE, STATE(359), 1, sym_comment, - [8526] = 4, + [8614] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(589), 1, - anon_sym_RBRACE, + ACTIONS(911), 1, + anon_sym_SEMI, STATE(360), 1, sym_comment, - [8539] = 4, + [8627] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(906), 1, - anon_sym_SEMI, + ACTIONS(913), 1, + anon_sym_LBRACE, STATE(361), 1, sym_comment, - [8552] = 4, + [8640] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(718), 1, - anon_sym_SEMI, + ACTIONS(591), 1, + anon_sym_RBRACE, STATE(362), 1, sym_comment, - [8565] = 4, + [8653] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(908), 1, - anon_sym_EQ, + ACTIONS(915), 1, + anon_sym_SEMI, STATE(363), 1, sym_comment, - [8578] = 4, + [8666] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(910), 1, - anon_sym_SEMI, + ACTIONS(917), 1, + anon_sym_LPAREN, STATE(364), 1, sym_comment, - [8591] = 4, + [8679] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(912), 1, + ACTIONS(919), 1, sym_ident, STATE(365), 1, sym_comment, - [8604] = 4, + [8692] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(914), 1, - sym_ident, + ACTIONS(921), 1, + anon_sym_EQ, STATE(366), 1, sym_comment, - [8617] = 4, + [8705] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(916), 1, - anon_sym_LPAREN, + ACTIONS(531), 1, + anon_sym_RBRACE, STATE(367), 1, sym_comment, - [8630] = 4, + [8718] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(918), 1, - sym_ident, + ACTIONS(923), 1, + anon_sym_LBRACE, STATE(368), 1, sym_comment, - [8643] = 4, + [8731] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(920), 1, + ACTIONS(925), 1, sym_ident, STATE(369), 1, sym_comment, - [8656] = 4, + [8744] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(791), 1, - anon_sym_COMMA, + ACTIONS(927), 1, + anon_sym_LBRACE, STATE(370), 1, sym_comment, - [8669] = 4, + [8757] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(922), 1, - sym_ident, + ACTIONS(797), 1, + anon_sym_COMMA, STATE(371), 1, sym_comment, - [8682] = 4, + [8770] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(924), 1, - anon_sym_LPAREN, + ACTIONS(929), 1, + sym_ident, STATE(372), 1, sym_comment, - [8695] = 4, + [8783] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(797), 1, - anon_sym_COMMA, + ACTIONS(931), 1, + anon_sym_LPAREN, STATE(373), 1, sym_comment, - [8708] = 4, + [8796] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(926), 1, - anon_sym_EQ, + ACTIONS(807), 1, + anon_sym_COMMA, STATE(374), 1, sym_comment, - [8721] = 4, + [8809] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(928), 1, - sym_ident, + ACTIONS(933), 1, + anon_sym_LBRACE, STATE(375), 1, sym_comment, - [8734] = 4, + [8822] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(809), 1, - anon_sym_SEMI, + ACTIONS(935), 1, + sym_ident, STATE(376), 1, sym_comment, - [8747] = 4, + [8835] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(663), 1, - anon_sym_if, + ACTIONS(825), 1, + anon_sym_SEMI, STATE(377), 1, sym_comment, - [8760] = 4, + [8848] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(930), 1, - anon_sym_RBRACE, + ACTIONS(678), 1, + anon_sym_if, STATE(378), 1, sym_comment, - [8773] = 4, + [8861] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(499), 1, - anon_sym_RBRACE, + ACTIONS(937), 1, + sym_ident, STATE(379), 1, sym_comment, - [8786] = 4, + [8874] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(932), 1, - anon_sym_LBRACE, + ACTIONS(939), 1, + sym_ident, STATE(380), 1, sym_comment, - [8799] = 4, + [8887] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(934), 1, - anon_sym_LBRACE, + ACTIONS(941), 1, + anon_sym_RBRACE, STATE(381), 1, sym_comment, - [8812] = 4, + [8900] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(936), 1, + ACTIONS(943), 1, anon_sym_LBRACE, STATE(382), 1, sym_comment, - [8825] = 4, + [8913] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(938), 1, - anon_sym_LBRACE, + ACTIONS(945), 1, + sym_number, STATE(383), 1, sym_comment, - [8838] = 4, + [8926] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(940), 1, - sym_number, + ACTIONS(947), 1, + anon_sym_EQ, STATE(384), 1, sym_comment, - [8851] = 4, + [8939] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(787), 1, - anon_sym_SEMI, + ACTIONS(949), 1, + anon_sym_COLON, STATE(385), 1, sym_comment, - [8864] = 4, + [8952] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(942), 1, - anon_sym_EQ, + ACTIONS(801), 1, + anon_sym_SEMI, STATE(386), 1, sym_comment, - [8877] = 4, + [8965] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(944), 1, - sym_ident, + ACTIONS(951), 1, + anon_sym_EQ, STATE(387), 1, sym_comment, - [8890] = 4, + [8978] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(946), 1, - anon_sym_LPAREN, + ACTIONS(953), 1, + sym_ident, STATE(388), 1, sym_comment, - [8903] = 4, + [8991] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(948), 1, - sym_number, + ACTIONS(955), 1, + anon_sym_LPAREN, STATE(389), 1, sym_comment, - [8916] = 4, + [9004] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(950), 1, - anon_sym_EQ, + ACTIONS(769), 1, + anon_sym_primitive, STATE(390), 1, sym_comment, - [8929] = 4, + [9017] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(952), 1, + ACTIONS(720), 1, anon_sym_SEMI, STATE(391), 1, sym_comment, - [8942] = 4, + [9030] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(954), 1, - sym_ident, + ACTIONS(957), 1, + anon_sym_SEMI, STATE(392), 1, sym_comment, - [8955] = 4, + [9043] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(956), 1, - anon_sym_COLON, + ACTIONS(959), 1, + sym_ident, STATE(393), 1, sym_comment, - [8968] = 4, + [9056] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(958), 1, - anon_sym_RBRACE, + ACTIONS(961), 1, + anon_sym_EQ, STATE(394), 1, sym_comment, - [8981] = 4, + [9069] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(960), 1, - anon_sym_RBRACE, + ACTIONS(963), 1, + anon_sym_SEMI, STATE(395), 1, sym_comment, - [8994] = 4, + [9082] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(759), 1, - anon_sym_primitive, + ACTIONS(965), 1, + sym_number, STATE(396), 1, sym_comment, - [9007] = 4, + [9095] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(735), 1, - anon_sym_SEMI, + ACTIONS(967), 1, + anon_sym_LBRACE, STATE(397), 1, sym_comment, - [9020] = 4, + [9108] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(388), 1, + ACTIONS(393), 1, anon_sym_SEMI, STATE(398), 1, sym_comment, - [9033] = 4, + [9121] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(962), 1, - sym_ident, + ACTIONS(969), 1, + anon_sym_RBRACE, STATE(399), 1, sym_comment, - [9046] = 4, + [9134] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(964), 1, - anon_sym_LBRACE, + ACTIONS(971), 1, + sym_ident, STATE(400), 1, sym_comment, - [9059] = 4, + [9147] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(966), 1, + ACTIONS(973), 1, anon_sym_LBRACE, STATE(401), 1, sym_comment, - [9072] = 4, + [9160] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(968), 1, - anon_sym_LBRACE, + ACTIONS(975), 1, + anon_sym_EQ, STATE(402), 1, sym_comment, - [9085] = 4, + [9173] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(970), 1, - anon_sym_SEMI, + ACTIONS(977), 1, + anon_sym_LBRACE, STATE(403), 1, sym_comment, - [9098] = 4, + [9186] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(972), 1, - anon_sym_EQ, + ACTIONS(979), 1, + anon_sym_SEMI, STATE(404), 1, sym_comment, - [9111] = 4, + [9199] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(683), 1, + ACTIONS(712), 1, anon_sym_RBRACE, STATE(405), 1, sym_comment, - [9124] = 4, + [9212] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(974), 1, + ACTIONS(981), 1, anon_sym_EQ, STATE(406), 1, sym_comment, - [9137] = 4, + [9225] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(976), 1, + ACTIONS(983), 1, anon_sym_COLON, STATE(407), 1, sym_comment, - [9150] = 4, + [9238] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(978), 1, + ACTIONS(985), 1, sym_ident, STATE(408), 1, sym_comment, - [9163] = 4, + [9251] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(980), 1, + ACTIONS(987), 1, ts_builtin_sym_end, STATE(409), 1, sym_comment, - [9176] = 4, + [9264] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(982), 1, + ACTIONS(989), 1, anon_sym_GT, STATE(410), 1, sym_comment, - [9189] = 4, + [9277] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(695), 1, + ACTIONS(718), 1, anon_sym_LBRACE, STATE(411), 1, sym_comment, - [9202] = 4, + [9290] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(984), 1, - anon_sym_DASH_GT, + ACTIONS(991), 1, + anon_sym_RBRACK, STATE(412), 1, sym_comment, - [9215] = 4, + [9303] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(986), 1, - sym_ident, + ACTIONS(993), 1, + anon_sym_DASH_GT, STATE(413), 1, sym_comment, - [9228] = 4, + [9316] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(988), 1, - anon_sym_RPAREN, + ACTIONS(995), 1, + sym_ident, STATE(414), 1, sym_comment, - [9241] = 4, + [9329] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(990), 1, - anon_sym_RBRACK, + ACTIONS(997), 1, + anon_sym_RPAREN, STATE(415), 1, sym_comment, - [9254] = 4, + [9342] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(992), 1, - anon_sym_LBRACE, + ACTIONS(999), 1, + anon_sym_SQUOTE, STATE(416), 1, sym_comment, - [9267] = 4, + [9355] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(379), 1, - anon_sym_SEMI, + ACTIONS(1001), 1, + anon_sym_LBRACE, STATE(417), 1, sym_comment, - [9280] = 4, + [9368] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(994), 1, - anon_sym_SQUOTE, + ACTIONS(384), 1, + anon_sym_SEMI, STATE(418), 1, sym_comment, - [9293] = 4, + [9381] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(996), 1, - sym_number, + ACTIONS(1003), 1, + anon_sym_QMARK, STATE(419), 1, sym_comment, - [9306] = 4, + [9394] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(381), 1, + ACTIONS(391), 1, anon_sym_SEMI, STATE(420), 1, sym_comment, - [9319] = 4, + [9407] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(998), 1, + ACTIONS(1005), 1, anon_sym_RBRACE, STATE(421), 1, sym_comment, - [9332] = 4, + [9420] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1000), 1, - anon_sym_QMARK, + ACTIONS(374), 1, + anon_sym_SEMI, STATE(422), 1, sym_comment, - [9345] = 4, + [9433] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1002), 1, + ACTIONS(1007), 1, sym_ident, STATE(423), 1, sym_comment, - [9358] = 4, + [9446] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1004), 1, + ACTIONS(1009), 1, anon_sym_RPAREN, STATE(424), 1, sym_comment, - [9371] = 4, + [9459] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1006), 1, + ACTIONS(1011), 1, anon_sym_RBRACE, STATE(425), 1, sym_comment, - [9384] = 4, + [9472] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1008), 1, + ACTIONS(1013), 1, sym_ident, STATE(426), 1, sym_comment, - [9397] = 4, + [9485] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1010), 1, + ACTIONS(1015), 1, anon_sym_RPAREN, STATE(427), 1, sym_comment, - [9410] = 4, + [9498] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1012), 1, + ACTIONS(1017), 1, sym_number, STATE(428), 1, sym_comment, - [9423] = 4, + [9511] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(105), 1, + ACTIONS(121), 1, ts_builtin_sym_end, STATE(429), 1, sym_comment, - [9436] = 4, + [9524] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1014), 1, + ACTIONS(1019), 1, sym_ident, STATE(430), 1, sym_comment, - [9449] = 4, + [9537] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1016), 1, + ACTIONS(1021), 1, sym_ident, STATE(431), 1, sym_comment, - [9462] = 4, + [9550] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1018), 1, + ACTIONS(1023), 1, ts_builtin_sym_end, STATE(432), 1, sym_comment, - [9475] = 4, + [9563] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1020), 1, + ACTIONS(1025), 1, sym_number, STATE(433), 1, sym_comment, - [9488] = 4, + [9576] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(369), 1, - anon_sym_SEMI, + ACTIONS(1027), 1, + sym_ident, STATE(434), 1, sym_comment, - [9501] = 4, + [9589] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1022), 1, - sym_ident, + ACTIONS(1029), 1, + anon_sym_LBRACE, STATE(435), 1, sym_comment, - [9514] = 4, + [9602] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1024), 1, + ACTIONS(1031), 1, anon_sym_LBRACE, STATE(436), 1, sym_comment, - [9527] = 4, + [9615] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1026), 1, - anon_sym_LBRACE, + ACTIONS(1033), 1, + sym_number, STATE(437), 1, sym_comment, - [9540] = 4, + [9628] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1028), 1, - sym_number, + ACTIONS(1035), 1, + sym_ident, STATE(438), 1, sym_comment, - [9553] = 4, + [9641] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(542), 1, + ACTIONS(561), 1, anon_sym_if, STATE(439), 1, sym_comment, - [9566] = 4, + [9654] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1030), 1, + ACTIONS(1037), 1, anon_sym_SEMI, STATE(440), 1, sym_comment, - [9579] = 4, - ACTIONS(699), 1, + [9667] = 4, + ACTIONS(680), 1, anon_sym_SLASH_SLASH, - ACTIONS(701), 1, + ACTIONS(682), 1, aux_sym_comment_token2, - ACTIONS(1032), 1, + ACTIONS(1039), 1, anon_sym_LF, STATE(441), 1, sym_comment, - [9592] = 4, + [9680] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(661), 1, + ACTIONS(642), 1, anon_sym_if, STATE(442), 1, sym_comment, - [9605] = 4, + [9693] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1034), 1, - sym_ident, + ACTIONS(1041), 1, + anon_sym_RBRACE, STATE(443), 1, sym_comment, - [9618] = 4, + [9706] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1036), 1, + ACTIONS(1043), 1, sym_number, STATE(444), 1, sym_comment, - [9631] = 4, + [9719] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(99), 1, + ACTIONS(103), 1, ts_builtin_sym_end, STATE(445), 1, sym_comment, - [9644] = 4, + [9732] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1038), 1, + ACTIONS(1045), 1, sym_number, STATE(446), 1, sym_comment, - [9657] = 4, + [9745] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1040), 1, + ACTIONS(1047), 1, anon_sym_EQ, STATE(447), 1, sym_comment, - [9670] = 4, + [9758] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1042), 1, + ACTIONS(1049), 1, aux_sym_metadata_token1, STATE(448), 1, sym_comment, - [9683] = 4, + [9771] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1044), 1, + ACTIONS(1051), 1, ts_builtin_sym_end, STATE(449), 1, sym_comment, - [9696] = 4, + [9784] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1046), 1, + ACTIONS(1053), 1, anon_sym_EQ, STATE(450), 1, sym_comment, - [9709] = 4, + [9797] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1048), 1, + ACTIONS(1055), 1, anon_sym_LBRACE, STATE(451), 1, sym_comment, - [9722] = 4, + [9810] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1050), 1, + ACTIONS(1057), 1, sym_number, STATE(452), 1, sym_comment, - [9735] = 4, + [9823] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1052), 1, - anon_sym_RBRACE, + ACTIONS(1059), 1, + anon_sym_RPAREN, STATE(453), 1, sym_comment, - [9748] = 4, + [9836] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1054), 1, + ACTIONS(1061), 1, sym_string, STATE(454), 1, sym_comment, - [9761] = 4, + [9849] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1056), 1, + ACTIONS(1063), 1, sym_ident, STATE(455), 1, sym_comment, - [9774] = 4, + [9862] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1058), 1, + ACTIONS(1065), 1, sym_number, STATE(456), 1, sym_comment, - [9787] = 4, + [9875] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1060), 1, + ACTIONS(1067), 1, sym_ident, STATE(457), 1, sym_comment, - [9800] = 4, + [9888] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1062), 1, + ACTIONS(1069), 1, aux_sym_metadata_token1, STATE(458), 1, sym_comment, - [9813] = 4, + [9901] = 4, ACTIONS(3), 1, anon_sym_SLASH_SLASH, ACTIONS(5), 1, aux_sym_comment_token2, - ACTIONS(1064), 1, + ACTIONS(1071), 1, sym_string, STATE(459), 1, sym_comment, - [9826] = 1, - ACTIONS(1066), 1, + [9914] = 4, + ACTIONS(3), 1, + anon_sym_SLASH_SLASH, + ACTIONS(5), 1, + aux_sym_comment_token2, + ACTIONS(1073), 1, + sym_number, + STATE(460), 1, + sym_comment, + [9927] = 1, + ACTIONS(1075), 1, ts_builtin_sym_end, - [9830] = 1, - ACTIONS(1068), 1, + [9931] = 1, + ACTIONS(1077), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 67, - [SMALL_STATE(4)] = 134, - [SMALL_STATE(5)] = 201, - [SMALL_STATE(6)] = 268, - [SMALL_STATE(7)] = 335, - [SMALL_STATE(8)] = 400, - [SMALL_STATE(9)] = 467, - [SMALL_STATE(10)] = 534, - [SMALL_STATE(11)] = 601, - [SMALL_STATE(12)] = 668, - [SMALL_STATE(13)] = 735, - [SMALL_STATE(14)] = 802, - [SMALL_STATE(15)] = 869, - [SMALL_STATE(16)] = 933, - [SMALL_STATE(17)] = 994, - [SMALL_STATE(18)] = 1055, - [SMALL_STATE(19)] = 1116, - [SMALL_STATE(20)] = 1176, - [SMALL_STATE(21)] = 1205, - [SMALL_STATE(22)] = 1256, - [SMALL_STATE(23)] = 1307, - [SMALL_STATE(24)] = 1339, - [SMALL_STATE(25)] = 1384, - [SMALL_STATE(26)] = 1433, - [SMALL_STATE(27)] = 1482, - [SMALL_STATE(28)] = 1523, - [SMALL_STATE(29)] = 1553, - [SMALL_STATE(30)] = 1593, - [SMALL_STATE(31)] = 1619, - [SMALL_STATE(32)] = 1659, - [SMALL_STATE(33)] = 1687, - [SMALL_STATE(34)] = 1727, - [SMALL_STATE(35)] = 1767, - [SMALL_STATE(36)] = 1795, - [SMALL_STATE(37)] = 1835, - [SMALL_STATE(38)] = 1861, - [SMALL_STATE(39)] = 1889, - [SMALL_STATE(40)] = 1915, - [SMALL_STATE(41)] = 1957, - [SMALL_STATE(42)] = 1984, - [SMALL_STATE(43)] = 2009, - [SMALL_STATE(44)] = 2034, - [SMALL_STATE(45)] = 2059, - [SMALL_STATE(46)] = 2084, - [SMALL_STATE(47)] = 2109, - [SMALL_STATE(48)] = 2134, - [SMALL_STATE(49)] = 2159, - [SMALL_STATE(50)] = 2184, - [SMALL_STATE(51)] = 2211, - [SMALL_STATE(52)] = 2240, - [SMALL_STATE(53)] = 2265, - [SMALL_STATE(54)] = 2296, - [SMALL_STATE(55)] = 2329, - [SMALL_STATE(56)] = 2364, - [SMALL_STATE(57)] = 2389, - [SMALL_STATE(58)] = 2414, - [SMALL_STATE(59)] = 2439, - [SMALL_STATE(60)] = 2464, - [SMALL_STATE(61)] = 2489, - [SMALL_STATE(62)] = 2514, - [SMALL_STATE(63)] = 2539, - [SMALL_STATE(64)] = 2564, - [SMALL_STATE(65)] = 2589, - [SMALL_STATE(66)] = 2614, - [SMALL_STATE(67)] = 2639, - [SMALL_STATE(68)] = 2664, - [SMALL_STATE(69)] = 2689, - [SMALL_STATE(70)] = 2714, - [SMALL_STATE(71)] = 2739, - [SMALL_STATE(72)] = 2764, - [SMALL_STATE(73)] = 2789, - [SMALL_STATE(74)] = 2814, - [SMALL_STATE(75)] = 2839, - [SMALL_STATE(76)] = 2864, - [SMALL_STATE(77)] = 2889, - [SMALL_STATE(78)] = 2914, - [SMALL_STATE(79)] = 2939, - [SMALL_STATE(80)] = 2963, - [SMALL_STATE(81)] = 3003, - [SMALL_STATE(82)] = 3043, - [SMALL_STATE(83)] = 3083, - [SMALL_STATE(84)] = 3109, - [SMALL_STATE(85)] = 3149, - [SMALL_STATE(86)] = 3173, - [SMALL_STATE(87)] = 3206, - [SMALL_STATE(88)] = 3241, - [SMALL_STATE(89)] = 3276, - [SMALL_STATE(90)] = 3307, - [SMALL_STATE(91)] = 3338, - [SMALL_STATE(92)] = 3369, - [SMALL_STATE(93)] = 3400, - [SMALL_STATE(94)] = 3435, - [SMALL_STATE(95)] = 3466, - [SMALL_STATE(96)] = 3501, - [SMALL_STATE(97)] = 3532, - [SMALL_STATE(98)] = 3567, - [SMALL_STATE(99)] = 3602, - [SMALL_STATE(100)] = 3637, - [SMALL_STATE(101)] = 3672, - [SMALL_STATE(102)] = 3707, - [SMALL_STATE(103)] = 3742, - [SMALL_STATE(104)] = 3777, - [SMALL_STATE(105)] = 3808, - [SMALL_STATE(106)] = 3839, - [SMALL_STATE(107)] = 3870, - [SMALL_STATE(108)] = 3905, - [SMALL_STATE(109)] = 3936, - [SMALL_STATE(110)] = 3970, - [SMALL_STATE(111)] = 3990, - [SMALL_STATE(112)] = 4024, - [SMALL_STATE(113)] = 4044, - [SMALL_STATE(114)] = 4064, - [SMALL_STATE(115)] = 4084, - [SMALL_STATE(116)] = 4104, - [SMALL_STATE(117)] = 4136, - [SMALL_STATE(118)] = 4156, - [SMALL_STATE(119)] = 4190, - [SMALL_STATE(120)] = 4210, - [SMALL_STATE(121)] = 4229, - [SMALL_STATE(122)] = 4260, - [SMALL_STATE(123)] = 4279, - [SMALL_STATE(124)] = 4298, - [SMALL_STATE(125)] = 4329, - [SMALL_STATE(126)] = 4348, - [SMALL_STATE(127)] = 4373, - [SMALL_STATE(128)] = 4404, - [SMALL_STATE(129)] = 4429, - [SMALL_STATE(130)] = 4460, - [SMALL_STATE(131)] = 4479, - [SMALL_STATE(132)] = 4510, - [SMALL_STATE(133)] = 4529, - [SMALL_STATE(134)] = 4560, - [SMALL_STATE(135)] = 4579, - [SMALL_STATE(136)] = 4610, - [SMALL_STATE(137)] = 4635, - [SMALL_STATE(138)] = 4654, - [SMALL_STATE(139)] = 4683, - [SMALL_STATE(140)] = 4714, - [SMALL_STATE(141)] = 4733, - [SMALL_STATE(142)] = 4762, - [SMALL_STATE(143)] = 4781, - [SMALL_STATE(144)] = 4812, - [SMALL_STATE(145)] = 4831, - [SMALL_STATE(146)] = 4862, - [SMALL_STATE(147)] = 4893, - [SMALL_STATE(148)] = 4924, - [SMALL_STATE(149)] = 4949, - [SMALL_STATE(150)] = 4977, - [SMALL_STATE(151)] = 4999, - [SMALL_STATE(152)] = 5027, - [SMALL_STATE(153)] = 5051, - [SMALL_STATE(154)] = 5076, - [SMALL_STATE(155)] = 5095, - [SMALL_STATE(156)] = 5120, - [SMALL_STATE(157)] = 5139, - [SMALL_STATE(158)] = 5158, - [SMALL_STATE(159)] = 5183, - [SMALL_STATE(160)] = 5208, - [SMALL_STATE(161)] = 5227, - [SMALL_STATE(162)] = 5246, - [SMALL_STATE(163)] = 5267, - [SMALL_STATE(164)] = 5286, - [SMALL_STATE(165)] = 5305, - [SMALL_STATE(166)] = 5330, - [SMALL_STATE(167)] = 5355, - [SMALL_STATE(168)] = 5376, - [SMALL_STATE(169)] = 5395, - [SMALL_STATE(170)] = 5416, - [SMALL_STATE(171)] = 5441, - [SMALL_STATE(172)] = 5460, - [SMALL_STATE(173)] = 5481, - [SMALL_STATE(174)] = 5500, - [SMALL_STATE(175)] = 5519, - [SMALL_STATE(176)] = 5539, - [SMALL_STATE(177)] = 5557, - [SMALL_STATE(178)] = 5579, - [SMALL_STATE(179)] = 5601, - [SMALL_STATE(180)] = 5623, - [SMALL_STATE(181)] = 5645, - [SMALL_STATE(182)] = 5665, - [SMALL_STATE(183)] = 5683, - [SMALL_STATE(184)] = 5705, - [SMALL_STATE(185)] = 5727, - [SMALL_STATE(186)] = 5749, - [SMALL_STATE(187)] = 5769, - [SMALL_STATE(188)] = 5791, - [SMALL_STATE(189)] = 5811, - [SMALL_STATE(190)] = 5833, - [SMALL_STATE(191)] = 5855, - [SMALL_STATE(192)] = 5871, - [SMALL_STATE(193)] = 5891, - [SMALL_STATE(194)] = 5909, - [SMALL_STATE(195)] = 5931, - [SMALL_STATE(196)] = 5949, - [SMALL_STATE(197)] = 5971, - [SMALL_STATE(198)] = 5991, - [SMALL_STATE(199)] = 6007, - [SMALL_STATE(200)] = 6025, - [SMALL_STATE(201)] = 6042, - [SMALL_STATE(202)] = 6059, - [SMALL_STATE(203)] = 6078, - [SMALL_STATE(204)] = 6097, - [SMALL_STATE(205)] = 6114, - [SMALL_STATE(206)] = 6133, - [SMALL_STATE(207)] = 6152, - [SMALL_STATE(208)] = 6171, - [SMALL_STATE(209)] = 6190, - [SMALL_STATE(210)] = 6205, - [SMALL_STATE(211)] = 6224, - [SMALL_STATE(212)] = 6243, - [SMALL_STATE(213)] = 6262, - [SMALL_STATE(214)] = 6277, - [SMALL_STATE(215)] = 6296, - [SMALL_STATE(216)] = 6315, - [SMALL_STATE(217)] = 6330, - [SMALL_STATE(218)] = 6349, - [SMALL_STATE(219)] = 6368, - [SMALL_STATE(220)] = 6383, - [SMALL_STATE(221)] = 6400, - [SMALL_STATE(222)] = 6417, - [SMALL_STATE(223)] = 6436, - [SMALL_STATE(224)] = 6453, - [SMALL_STATE(225)] = 6472, - [SMALL_STATE(226)] = 6487, - [SMALL_STATE(227)] = 6502, - [SMALL_STATE(228)] = 6521, - [SMALL_STATE(229)] = 6540, - [SMALL_STATE(230)] = 6559, - [SMALL_STATE(231)] = 6576, - [SMALL_STATE(232)] = 6591, - [SMALL_STATE(233)] = 6610, - [SMALL_STATE(234)] = 6625, - [SMALL_STATE(235)] = 6640, - [SMALL_STATE(236)] = 6655, - [SMALL_STATE(237)] = 6674, - [SMALL_STATE(238)] = 6693, - [SMALL_STATE(239)] = 6712, - [SMALL_STATE(240)] = 6731, - [SMALL_STATE(241)] = 6748, - [SMALL_STATE(242)] = 6763, - [SMALL_STATE(243)] = 6782, - [SMALL_STATE(244)] = 6797, - [SMALL_STATE(245)] = 6812, - [SMALL_STATE(246)] = 6827, - [SMALL_STATE(247)] = 6842, - [SMALL_STATE(248)] = 6857, - [SMALL_STATE(249)] = 6876, - [SMALL_STATE(250)] = 6895, - [SMALL_STATE(251)] = 6914, - [SMALL_STATE(252)] = 6933, - [SMALL_STATE(253)] = 6952, - [SMALL_STATE(254)] = 6967, - [SMALL_STATE(255)] = 6986, - [SMALL_STATE(256)] = 7005, - [SMALL_STATE(257)] = 7019, - [SMALL_STATE(258)] = 7033, - [SMALL_STATE(259)] = 7049, - [SMALL_STATE(260)] = 7065, - [SMALL_STATE(261)] = 7081, - [SMALL_STATE(262)] = 7097, - [SMALL_STATE(263)] = 7111, - [SMALL_STATE(264)] = 7127, - [SMALL_STATE(265)] = 7143, - [SMALL_STATE(266)] = 7159, - [SMALL_STATE(267)] = 7175, - [SMALL_STATE(268)] = 7191, - [SMALL_STATE(269)] = 7207, - [SMALL_STATE(270)] = 7223, - [SMALL_STATE(271)] = 7239, - [SMALL_STATE(272)] = 7255, - [SMALL_STATE(273)] = 7271, - [SMALL_STATE(274)] = 7287, - [SMALL_STATE(275)] = 7303, - [SMALL_STATE(276)] = 7319, - [SMALL_STATE(277)] = 7335, - [SMALL_STATE(278)] = 7349, - [SMALL_STATE(279)] = 7365, - [SMALL_STATE(280)] = 7381, - [SMALL_STATE(281)] = 7397, - [SMALL_STATE(282)] = 7413, - [SMALL_STATE(283)] = 7429, - [SMALL_STATE(284)] = 7443, - [SMALL_STATE(285)] = 7459, - [SMALL_STATE(286)] = 7473, - [SMALL_STATE(287)] = 7489, - [SMALL_STATE(288)] = 7505, - [SMALL_STATE(289)] = 7521, - [SMALL_STATE(290)] = 7537, - [SMALL_STATE(291)] = 7551, - [SMALL_STATE(292)] = 7567, - [SMALL_STATE(293)] = 7583, - [SMALL_STATE(294)] = 7599, - [SMALL_STATE(295)] = 7615, - [SMALL_STATE(296)] = 7631, - [SMALL_STATE(297)] = 7647, - [SMALL_STATE(298)] = 7663, - [SMALL_STATE(299)] = 7679, - [SMALL_STATE(300)] = 7695, - [SMALL_STATE(301)] = 7709, - [SMALL_STATE(302)] = 7723, - [SMALL_STATE(303)] = 7737, - [SMALL_STATE(304)] = 7753, - [SMALL_STATE(305)] = 7767, - [SMALL_STATE(306)] = 7783, - [SMALL_STATE(307)] = 7799, - [SMALL_STATE(308)] = 7813, - [SMALL_STATE(309)] = 7829, - [SMALL_STATE(310)] = 7843, - [SMALL_STATE(311)] = 7859, - [SMALL_STATE(312)] = 7873, - [SMALL_STATE(313)] = 7889, - [SMALL_STATE(314)] = 7903, - [SMALL_STATE(315)] = 7919, - [SMALL_STATE(316)] = 7935, - [SMALL_STATE(317)] = 7949, - [SMALL_STATE(318)] = 7963, - [SMALL_STATE(319)] = 7979, - [SMALL_STATE(320)] = 7995, - [SMALL_STATE(321)] = 8009, - [SMALL_STATE(322)] = 8025, - [SMALL_STATE(323)] = 8041, - [SMALL_STATE(324)] = 8055, - [SMALL_STATE(325)] = 8071, - [SMALL_STATE(326)] = 8084, - [SMALL_STATE(327)] = 8097, - [SMALL_STATE(328)] = 8110, - [SMALL_STATE(329)] = 8123, - [SMALL_STATE(330)] = 8136, - [SMALL_STATE(331)] = 8149, - [SMALL_STATE(332)] = 8162, - [SMALL_STATE(333)] = 8175, - [SMALL_STATE(334)] = 8188, - [SMALL_STATE(335)] = 8201, - [SMALL_STATE(336)] = 8214, - [SMALL_STATE(337)] = 8227, - [SMALL_STATE(338)] = 8240, - [SMALL_STATE(339)] = 8253, - [SMALL_STATE(340)] = 8266, - [SMALL_STATE(341)] = 8279, - [SMALL_STATE(342)] = 8292, - [SMALL_STATE(343)] = 8305, - [SMALL_STATE(344)] = 8318, - [SMALL_STATE(345)] = 8331, - [SMALL_STATE(346)] = 8344, - [SMALL_STATE(347)] = 8357, - [SMALL_STATE(348)] = 8370, - [SMALL_STATE(349)] = 8383, - [SMALL_STATE(350)] = 8396, - [SMALL_STATE(351)] = 8409, - [SMALL_STATE(352)] = 8422, - [SMALL_STATE(353)] = 8435, - [SMALL_STATE(354)] = 8448, - [SMALL_STATE(355)] = 8461, - [SMALL_STATE(356)] = 8474, - [SMALL_STATE(357)] = 8487, - [SMALL_STATE(358)] = 8500, - [SMALL_STATE(359)] = 8513, - [SMALL_STATE(360)] = 8526, - [SMALL_STATE(361)] = 8539, - [SMALL_STATE(362)] = 8552, - [SMALL_STATE(363)] = 8565, - [SMALL_STATE(364)] = 8578, - [SMALL_STATE(365)] = 8591, - [SMALL_STATE(366)] = 8604, - [SMALL_STATE(367)] = 8617, - [SMALL_STATE(368)] = 8630, - [SMALL_STATE(369)] = 8643, - [SMALL_STATE(370)] = 8656, - [SMALL_STATE(371)] = 8669, - [SMALL_STATE(372)] = 8682, - [SMALL_STATE(373)] = 8695, - [SMALL_STATE(374)] = 8708, - [SMALL_STATE(375)] = 8721, - [SMALL_STATE(376)] = 8734, - [SMALL_STATE(377)] = 8747, - [SMALL_STATE(378)] = 8760, - [SMALL_STATE(379)] = 8773, - [SMALL_STATE(380)] = 8786, - [SMALL_STATE(381)] = 8799, - [SMALL_STATE(382)] = 8812, - [SMALL_STATE(383)] = 8825, - [SMALL_STATE(384)] = 8838, - [SMALL_STATE(385)] = 8851, - [SMALL_STATE(386)] = 8864, - [SMALL_STATE(387)] = 8877, - [SMALL_STATE(388)] = 8890, - [SMALL_STATE(389)] = 8903, - [SMALL_STATE(390)] = 8916, - [SMALL_STATE(391)] = 8929, - [SMALL_STATE(392)] = 8942, - [SMALL_STATE(393)] = 8955, - [SMALL_STATE(394)] = 8968, - [SMALL_STATE(395)] = 8981, - [SMALL_STATE(396)] = 8994, - [SMALL_STATE(397)] = 9007, - [SMALL_STATE(398)] = 9020, - [SMALL_STATE(399)] = 9033, - [SMALL_STATE(400)] = 9046, - [SMALL_STATE(401)] = 9059, - [SMALL_STATE(402)] = 9072, - [SMALL_STATE(403)] = 9085, - [SMALL_STATE(404)] = 9098, - [SMALL_STATE(405)] = 9111, - [SMALL_STATE(406)] = 9124, - [SMALL_STATE(407)] = 9137, - [SMALL_STATE(408)] = 9150, - [SMALL_STATE(409)] = 9163, - [SMALL_STATE(410)] = 9176, - [SMALL_STATE(411)] = 9189, - [SMALL_STATE(412)] = 9202, - [SMALL_STATE(413)] = 9215, - [SMALL_STATE(414)] = 9228, - [SMALL_STATE(415)] = 9241, - [SMALL_STATE(416)] = 9254, - [SMALL_STATE(417)] = 9267, - [SMALL_STATE(418)] = 9280, - [SMALL_STATE(419)] = 9293, - [SMALL_STATE(420)] = 9306, - [SMALL_STATE(421)] = 9319, - [SMALL_STATE(422)] = 9332, - [SMALL_STATE(423)] = 9345, - [SMALL_STATE(424)] = 9358, - [SMALL_STATE(425)] = 9371, - [SMALL_STATE(426)] = 9384, - [SMALL_STATE(427)] = 9397, - [SMALL_STATE(428)] = 9410, - [SMALL_STATE(429)] = 9423, - [SMALL_STATE(430)] = 9436, - [SMALL_STATE(431)] = 9449, - [SMALL_STATE(432)] = 9462, - [SMALL_STATE(433)] = 9475, - [SMALL_STATE(434)] = 9488, - [SMALL_STATE(435)] = 9501, - [SMALL_STATE(436)] = 9514, - [SMALL_STATE(437)] = 9527, - [SMALL_STATE(438)] = 9540, - [SMALL_STATE(439)] = 9553, - [SMALL_STATE(440)] = 9566, - [SMALL_STATE(441)] = 9579, - [SMALL_STATE(442)] = 9592, - [SMALL_STATE(443)] = 9605, - [SMALL_STATE(444)] = 9618, - [SMALL_STATE(445)] = 9631, - [SMALL_STATE(446)] = 9644, - [SMALL_STATE(447)] = 9657, - [SMALL_STATE(448)] = 9670, - [SMALL_STATE(449)] = 9683, - [SMALL_STATE(450)] = 9696, - [SMALL_STATE(451)] = 9709, - [SMALL_STATE(452)] = 9722, - [SMALL_STATE(453)] = 9735, - [SMALL_STATE(454)] = 9748, - [SMALL_STATE(455)] = 9761, - [SMALL_STATE(456)] = 9774, - [SMALL_STATE(457)] = 9787, - [SMALL_STATE(458)] = 9800, - [SMALL_STATE(459)] = 9813, - [SMALL_STATE(460)] = 9826, - [SMALL_STATE(461)] = 9830, + [SMALL_STATE(3)] = 70, + [SMALL_STATE(4)] = 135, + [SMALL_STATE(5)] = 202, + [SMALL_STATE(6)] = 269, + [SMALL_STATE(7)] = 336, + [SMALL_STATE(8)] = 403, + [SMALL_STATE(9)] = 470, + [SMALL_STATE(10)] = 537, + [SMALL_STATE(11)] = 604, + [SMALL_STATE(12)] = 671, + [SMALL_STATE(13)] = 738, + [SMALL_STATE(14)] = 805, + [SMALL_STATE(15)] = 872, + [SMALL_STATE(16)] = 939, + [SMALL_STATE(17)] = 1006, + [SMALL_STATE(18)] = 1067, + [SMALL_STATE(19)] = 1128, + [SMALL_STATE(20)] = 1189, + [SMALL_STATE(21)] = 1249, + [SMALL_STATE(22)] = 1300, + [SMALL_STATE(23)] = 1351, + [SMALL_STATE(24)] = 1380, + [SMALL_STATE(25)] = 1431, + [SMALL_STATE(26)] = 1479, + [SMALL_STATE(27)] = 1511, + [SMALL_STATE(28)] = 1557, + [SMALL_STATE(29)] = 1606, + [SMALL_STATE(30)] = 1647, + [SMALL_STATE(31)] = 1696, + [SMALL_STATE(32)] = 1736, + [SMALL_STATE(33)] = 1764, + [SMALL_STATE(34)] = 1804, + [SMALL_STATE(35)] = 1832, + [SMALL_STATE(36)] = 1872, + [SMALL_STATE(37)] = 1898, + [SMALL_STATE(38)] = 1924, + [SMALL_STATE(39)] = 1952, + [SMALL_STATE(40)] = 1978, + [SMALL_STATE(41)] = 2018, + [SMALL_STATE(42)] = 2048, + [SMALL_STATE(43)] = 2073, + [SMALL_STATE(44)] = 2098, + [SMALL_STATE(45)] = 2123, + [SMALL_STATE(46)] = 2148, + [SMALL_STATE(47)] = 2173, + [SMALL_STATE(48)] = 2198, + [SMALL_STATE(49)] = 2223, + [SMALL_STATE(50)] = 2248, + [SMALL_STATE(51)] = 2273, + [SMALL_STATE(52)] = 2298, + [SMALL_STATE(53)] = 2323, + [SMALL_STATE(54)] = 2348, + [SMALL_STATE(55)] = 2373, + [SMALL_STATE(56)] = 2398, + [SMALL_STATE(57)] = 2423, + [SMALL_STATE(58)] = 2448, + [SMALL_STATE(59)] = 2473, + [SMALL_STATE(60)] = 2500, + [SMALL_STATE(61)] = 2527, + [SMALL_STATE(62)] = 2556, + [SMALL_STATE(63)] = 2581, + [SMALL_STATE(64)] = 2612, + [SMALL_STATE(65)] = 2645, + [SMALL_STATE(66)] = 2680, + [SMALL_STATE(67)] = 2705, + [SMALL_STATE(68)] = 2730, + [SMALL_STATE(69)] = 2755, + [SMALL_STATE(70)] = 2780, + [SMALL_STATE(71)] = 2805, + [SMALL_STATE(72)] = 2830, + [SMALL_STATE(73)] = 2855, + [SMALL_STATE(74)] = 2880, + [SMALL_STATE(75)] = 2905, + [SMALL_STATE(76)] = 2930, + [SMALL_STATE(77)] = 2955, + [SMALL_STATE(78)] = 2980, + [SMALL_STATE(79)] = 3005, + [SMALL_STATE(80)] = 3030, + [SMALL_STATE(81)] = 3070, + [SMALL_STATE(82)] = 3110, + [SMALL_STATE(83)] = 3136, + [SMALL_STATE(84)] = 3176, + [SMALL_STATE(85)] = 3216, + [SMALL_STATE(86)] = 3240, + [SMALL_STATE(87)] = 3264, + [SMALL_STATE(88)] = 3299, + [SMALL_STATE(89)] = 3330, + [SMALL_STATE(90)] = 3361, + [SMALL_STATE(91)] = 3392, + [SMALL_STATE(92)] = 3427, + [SMALL_STATE(93)] = 3462, + [SMALL_STATE(94)] = 3497, + [SMALL_STATE(95)] = 3528, + [SMALL_STATE(96)] = 3559, + [SMALL_STATE(97)] = 3594, + [SMALL_STATE(98)] = 3629, + [SMALL_STATE(99)] = 3662, + [SMALL_STATE(100)] = 3697, + [SMALL_STATE(101)] = 3728, + [SMALL_STATE(102)] = 3759, + [SMALL_STATE(103)] = 3794, + [SMALL_STATE(104)] = 3825, + [SMALL_STATE(105)] = 3856, + [SMALL_STATE(106)] = 3887, + [SMALL_STATE(107)] = 3922, + [SMALL_STATE(108)] = 3957, + [SMALL_STATE(109)] = 3992, + [SMALL_STATE(110)] = 4027, + [SMALL_STATE(111)] = 4047, + [SMALL_STATE(112)] = 4067, + [SMALL_STATE(113)] = 4087, + [SMALL_STATE(114)] = 4107, + [SMALL_STATE(115)] = 4127, + [SMALL_STATE(116)] = 4161, + [SMALL_STATE(117)] = 4193, + [SMALL_STATE(118)] = 4213, + [SMALL_STATE(119)] = 4247, + [SMALL_STATE(120)] = 4267, + [SMALL_STATE(121)] = 4301, + [SMALL_STATE(122)] = 4321, + [SMALL_STATE(123)] = 4341, + [SMALL_STATE(124)] = 4360, + [SMALL_STATE(125)] = 4391, + [SMALL_STATE(126)] = 4410, + [SMALL_STATE(127)] = 4441, + [SMALL_STATE(128)] = 4460, + [SMALL_STATE(129)] = 4479, + [SMALL_STATE(130)] = 4504, + [SMALL_STATE(131)] = 4535, + [SMALL_STATE(132)] = 4566, + [SMALL_STATE(133)] = 4585, + [SMALL_STATE(134)] = 4614, + [SMALL_STATE(135)] = 4645, + [SMALL_STATE(136)] = 4664, + [SMALL_STATE(137)] = 4687, + [SMALL_STATE(138)] = 4712, + [SMALL_STATE(139)] = 4743, + [SMALL_STATE(140)] = 4774, + [SMALL_STATE(141)] = 4793, + [SMALL_STATE(142)] = 4824, + [SMALL_STATE(143)] = 4855, + [SMALL_STATE(144)] = 4886, + [SMALL_STATE(145)] = 4917, + [SMALL_STATE(146)] = 4942, + [SMALL_STATE(147)] = 4971, + [SMALL_STATE(148)] = 4990, + [SMALL_STATE(149)] = 5009, + [SMALL_STATE(150)] = 5034, + [SMALL_STATE(151)] = 5065, + [SMALL_STATE(152)] = 5085, + [SMALL_STATE(153)] = 5105, + [SMALL_STATE(154)] = 5133, + [SMALL_STATE(155)] = 5161, + [SMALL_STATE(156)] = 5181, + [SMALL_STATE(157)] = 5201, + [SMALL_STATE(158)] = 5221, + [SMALL_STATE(159)] = 5241, + [SMALL_STATE(160)] = 5261, + [SMALL_STATE(161)] = 5285, + [SMALL_STATE(162)] = 5310, + [SMALL_STATE(163)] = 5329, + [SMALL_STATE(164)] = 5348, + [SMALL_STATE(165)] = 5373, + [SMALL_STATE(166)] = 5392, + [SMALL_STATE(167)] = 5417, + [SMALL_STATE(168)] = 5442, + [SMALL_STATE(169)] = 5463, + [SMALL_STATE(170)] = 5484, + [SMALL_STATE(171)] = 5509, + [SMALL_STATE(172)] = 5534, + [SMALL_STATE(173)] = 5559, + [SMALL_STATE(174)] = 5578, + [SMALL_STATE(175)] = 5599, + [SMALL_STATE(176)] = 5620, + [SMALL_STATE(177)] = 5636, + [SMALL_STATE(178)] = 5654, + [SMALL_STATE(179)] = 5670, + [SMALL_STATE(180)] = 5692, + [SMALL_STATE(181)] = 5714, + [SMALL_STATE(182)] = 5732, + [SMALL_STATE(183)] = 5752, + [SMALL_STATE(184)] = 5774, + [SMALL_STATE(185)] = 5796, + [SMALL_STATE(186)] = 5816, + [SMALL_STATE(187)] = 5838, + [SMALL_STATE(188)] = 5860, + [SMALL_STATE(189)] = 5882, + [SMALL_STATE(190)] = 5904, + [SMALL_STATE(191)] = 5924, + [SMALL_STATE(192)] = 5942, + [SMALL_STATE(193)] = 5962, + [SMALL_STATE(194)] = 5984, + [SMALL_STATE(195)] = 6006, + [SMALL_STATE(196)] = 6028, + [SMALL_STATE(197)] = 6046, + [SMALL_STATE(198)] = 6066, + [SMALL_STATE(199)] = 6084, + [SMALL_STATE(200)] = 6104, + [SMALL_STATE(201)] = 6126, + [SMALL_STATE(202)] = 6145, + [SMALL_STATE(203)] = 6162, + [SMALL_STATE(204)] = 6181, + [SMALL_STATE(205)] = 6196, + [SMALL_STATE(206)] = 6213, + [SMALL_STATE(207)] = 6230, + [SMALL_STATE(208)] = 6249, + [SMALL_STATE(209)] = 6268, + [SMALL_STATE(210)] = 6283, + [SMALL_STATE(211)] = 6302, + [SMALL_STATE(212)] = 6321, + [SMALL_STATE(213)] = 6336, + [SMALL_STATE(214)] = 6351, + [SMALL_STATE(215)] = 6366, + [SMALL_STATE(216)] = 6385, + [SMALL_STATE(217)] = 6400, + [SMALL_STATE(218)] = 6419, + [SMALL_STATE(219)] = 6434, + [SMALL_STATE(220)] = 6453, + [SMALL_STATE(221)] = 6468, + [SMALL_STATE(222)] = 6487, + [SMALL_STATE(223)] = 6506, + [SMALL_STATE(224)] = 6525, + [SMALL_STATE(225)] = 6544, + [SMALL_STATE(226)] = 6563, + [SMALL_STATE(227)] = 6578, + [SMALL_STATE(228)] = 6593, + [SMALL_STATE(229)] = 6612, + [SMALL_STATE(230)] = 6631, + [SMALL_STATE(231)] = 6648, + [SMALL_STATE(232)] = 6667, + [SMALL_STATE(233)] = 6686, + [SMALL_STATE(234)] = 6703, + [SMALL_STATE(235)] = 6718, + [SMALL_STATE(236)] = 6737, + [SMALL_STATE(237)] = 6756, + [SMALL_STATE(238)] = 6771, + [SMALL_STATE(239)] = 6788, + [SMALL_STATE(240)] = 6803, + [SMALL_STATE(241)] = 6822, + [SMALL_STATE(242)] = 6841, + [SMALL_STATE(243)] = 6856, + [SMALL_STATE(244)] = 6873, + [SMALL_STATE(245)] = 6892, + [SMALL_STATE(246)] = 6911, + [SMALL_STATE(247)] = 6930, + [SMALL_STATE(248)] = 6949, + [SMALL_STATE(249)] = 6968, + [SMALL_STATE(250)] = 6987, + [SMALL_STATE(251)] = 7006, + [SMALL_STATE(252)] = 7021, + [SMALL_STATE(253)] = 7036, + [SMALL_STATE(254)] = 7055, + [SMALL_STATE(255)] = 7070, + [SMALL_STATE(256)] = 7089, + [SMALL_STATE(257)] = 7106, + [SMALL_STATE(258)] = 7120, + [SMALL_STATE(259)] = 7134, + [SMALL_STATE(260)] = 7150, + [SMALL_STATE(261)] = 7166, + [SMALL_STATE(262)] = 7182, + [SMALL_STATE(263)] = 7198, + [SMALL_STATE(264)] = 7212, + [SMALL_STATE(265)] = 7228, + [SMALL_STATE(266)] = 7244, + [SMALL_STATE(267)] = 7260, + [SMALL_STATE(268)] = 7276, + [SMALL_STATE(269)] = 7292, + [SMALL_STATE(270)] = 7308, + [SMALL_STATE(271)] = 7324, + [SMALL_STATE(272)] = 7340, + [SMALL_STATE(273)] = 7356, + [SMALL_STATE(274)] = 7372, + [SMALL_STATE(275)] = 7388, + [SMALL_STATE(276)] = 7404, + [SMALL_STATE(277)] = 7418, + [SMALL_STATE(278)] = 7434, + [SMALL_STATE(279)] = 7450, + [SMALL_STATE(280)] = 7466, + [SMALL_STATE(281)] = 7482, + [SMALL_STATE(282)] = 7496, + [SMALL_STATE(283)] = 7512, + [SMALL_STATE(284)] = 7528, + [SMALL_STATE(285)] = 7542, + [SMALL_STATE(286)] = 7558, + [SMALL_STATE(287)] = 7574, + [SMALL_STATE(288)] = 7590, + [SMALL_STATE(289)] = 7606, + [SMALL_STATE(290)] = 7622, + [SMALL_STATE(291)] = 7638, + [SMALL_STATE(292)] = 7654, + [SMALL_STATE(293)] = 7670, + [SMALL_STATE(294)] = 7684, + [SMALL_STATE(295)] = 7700, + [SMALL_STATE(296)] = 7716, + [SMALL_STATE(297)] = 7732, + [SMALL_STATE(298)] = 7748, + [SMALL_STATE(299)] = 7764, + [SMALL_STATE(300)] = 7780, + [SMALL_STATE(301)] = 7794, + [SMALL_STATE(302)] = 7810, + [SMALL_STATE(303)] = 7824, + [SMALL_STATE(304)] = 7840, + [SMALL_STATE(305)] = 7856, + [SMALL_STATE(306)] = 7872, + [SMALL_STATE(307)] = 7886, + [SMALL_STATE(308)] = 7900, + [SMALL_STATE(309)] = 7916, + [SMALL_STATE(310)] = 7932, + [SMALL_STATE(311)] = 7946, + [SMALL_STATE(312)] = 7960, + [SMALL_STATE(313)] = 7976, + [SMALL_STATE(314)] = 7992, + [SMALL_STATE(315)] = 8006, + [SMALL_STATE(316)] = 8020, + [SMALL_STATE(317)] = 8036, + [SMALL_STATE(318)] = 8050, + [SMALL_STATE(319)] = 8066, + [SMALL_STATE(320)] = 8080, + [SMALL_STATE(321)] = 8096, + [SMALL_STATE(322)] = 8112, + [SMALL_STATE(323)] = 8128, + [SMALL_STATE(324)] = 8142, + [SMALL_STATE(325)] = 8158, + [SMALL_STATE(326)] = 8172, + [SMALL_STATE(327)] = 8185, + [SMALL_STATE(328)] = 8198, + [SMALL_STATE(329)] = 8211, + [SMALL_STATE(330)] = 8224, + [SMALL_STATE(331)] = 8237, + [SMALL_STATE(332)] = 8250, + [SMALL_STATE(333)] = 8263, + [SMALL_STATE(334)] = 8276, + [SMALL_STATE(335)] = 8289, + [SMALL_STATE(336)] = 8302, + [SMALL_STATE(337)] = 8315, + [SMALL_STATE(338)] = 8328, + [SMALL_STATE(339)] = 8341, + [SMALL_STATE(340)] = 8354, + [SMALL_STATE(341)] = 8367, + [SMALL_STATE(342)] = 8380, + [SMALL_STATE(343)] = 8393, + [SMALL_STATE(344)] = 8406, + [SMALL_STATE(345)] = 8419, + [SMALL_STATE(346)] = 8432, + [SMALL_STATE(347)] = 8445, + [SMALL_STATE(348)] = 8458, + [SMALL_STATE(349)] = 8471, + [SMALL_STATE(350)] = 8484, + [SMALL_STATE(351)] = 8497, + [SMALL_STATE(352)] = 8510, + [SMALL_STATE(353)] = 8523, + [SMALL_STATE(354)] = 8536, + [SMALL_STATE(355)] = 8549, + [SMALL_STATE(356)] = 8562, + [SMALL_STATE(357)] = 8575, + [SMALL_STATE(358)] = 8588, + [SMALL_STATE(359)] = 8601, + [SMALL_STATE(360)] = 8614, + [SMALL_STATE(361)] = 8627, + [SMALL_STATE(362)] = 8640, + [SMALL_STATE(363)] = 8653, + [SMALL_STATE(364)] = 8666, + [SMALL_STATE(365)] = 8679, + [SMALL_STATE(366)] = 8692, + [SMALL_STATE(367)] = 8705, + [SMALL_STATE(368)] = 8718, + [SMALL_STATE(369)] = 8731, + [SMALL_STATE(370)] = 8744, + [SMALL_STATE(371)] = 8757, + [SMALL_STATE(372)] = 8770, + [SMALL_STATE(373)] = 8783, + [SMALL_STATE(374)] = 8796, + [SMALL_STATE(375)] = 8809, + [SMALL_STATE(376)] = 8822, + [SMALL_STATE(377)] = 8835, + [SMALL_STATE(378)] = 8848, + [SMALL_STATE(379)] = 8861, + [SMALL_STATE(380)] = 8874, + [SMALL_STATE(381)] = 8887, + [SMALL_STATE(382)] = 8900, + [SMALL_STATE(383)] = 8913, + [SMALL_STATE(384)] = 8926, + [SMALL_STATE(385)] = 8939, + [SMALL_STATE(386)] = 8952, + [SMALL_STATE(387)] = 8965, + [SMALL_STATE(388)] = 8978, + [SMALL_STATE(389)] = 8991, + [SMALL_STATE(390)] = 9004, + [SMALL_STATE(391)] = 9017, + [SMALL_STATE(392)] = 9030, + [SMALL_STATE(393)] = 9043, + [SMALL_STATE(394)] = 9056, + [SMALL_STATE(395)] = 9069, + [SMALL_STATE(396)] = 9082, + [SMALL_STATE(397)] = 9095, + [SMALL_STATE(398)] = 9108, + [SMALL_STATE(399)] = 9121, + [SMALL_STATE(400)] = 9134, + [SMALL_STATE(401)] = 9147, + [SMALL_STATE(402)] = 9160, + [SMALL_STATE(403)] = 9173, + [SMALL_STATE(404)] = 9186, + [SMALL_STATE(405)] = 9199, + [SMALL_STATE(406)] = 9212, + [SMALL_STATE(407)] = 9225, + [SMALL_STATE(408)] = 9238, + [SMALL_STATE(409)] = 9251, + [SMALL_STATE(410)] = 9264, + [SMALL_STATE(411)] = 9277, + [SMALL_STATE(412)] = 9290, + [SMALL_STATE(413)] = 9303, + [SMALL_STATE(414)] = 9316, + [SMALL_STATE(415)] = 9329, + [SMALL_STATE(416)] = 9342, + [SMALL_STATE(417)] = 9355, + [SMALL_STATE(418)] = 9368, + [SMALL_STATE(419)] = 9381, + [SMALL_STATE(420)] = 9394, + [SMALL_STATE(421)] = 9407, + [SMALL_STATE(422)] = 9420, + [SMALL_STATE(423)] = 9433, + [SMALL_STATE(424)] = 9446, + [SMALL_STATE(425)] = 9459, + [SMALL_STATE(426)] = 9472, + [SMALL_STATE(427)] = 9485, + [SMALL_STATE(428)] = 9498, + [SMALL_STATE(429)] = 9511, + [SMALL_STATE(430)] = 9524, + [SMALL_STATE(431)] = 9537, + [SMALL_STATE(432)] = 9550, + [SMALL_STATE(433)] = 9563, + [SMALL_STATE(434)] = 9576, + [SMALL_STATE(435)] = 9589, + [SMALL_STATE(436)] = 9602, + [SMALL_STATE(437)] = 9615, + [SMALL_STATE(438)] = 9628, + [SMALL_STATE(439)] = 9641, + [SMALL_STATE(440)] = 9654, + [SMALL_STATE(441)] = 9667, + [SMALL_STATE(442)] = 9680, + [SMALL_STATE(443)] = 9693, + [SMALL_STATE(444)] = 9706, + [SMALL_STATE(445)] = 9719, + [SMALL_STATE(446)] = 9732, + [SMALL_STATE(447)] = 9745, + [SMALL_STATE(448)] = 9758, + [SMALL_STATE(449)] = 9771, + [SMALL_STATE(450)] = 9784, + [SMALL_STATE(451)] = 9797, + [SMALL_STATE(452)] = 9810, + [SMALL_STATE(453)] = 9823, + [SMALL_STATE(454)] = 9836, + [SMALL_STATE(455)] = 9849, + [SMALL_STATE(456)] = 9862, + [SMALL_STATE(457)] = 9875, + [SMALL_STATE(458)] = 9888, + [SMALL_STATE(459)] = 9901, + [SMALL_STATE(460)] = 9914, + [SMALL_STATE(461)] = 9927, + [SMALL_STATE(462)] = 9931, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(331), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(330), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(329), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(248), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(419), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(346), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(350), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(353), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(354), [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(327), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(46), - [52] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_seq_repeat1, 2), - [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(331), - [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(330), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(329), - [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(254), - [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(248), - [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(128), - [72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(419), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(423), - [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 2), SHIFT_REPEAT(327), - [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(202), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(328), - [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port, 3), - [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_port, 3), - [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2), - [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port, 1), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_port, 1), - [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), - [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337), - [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), - [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), - [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), - [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(402), - [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(205), - [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), - [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384), - [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), - [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), - [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), - [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), - [153] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(457), - [156] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(188), - [159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(455), - [162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(454), - [165] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(150), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_io_port_repeat1, 2), - [172] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), SHIFT_REPEAT(423), - [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 4), - [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 4), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 3), - [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 3), - [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_wires_inner_repeat1, 2), - [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(337), - [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(336), - [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(408), - [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(23), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 4), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 4), - [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 5), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 5), - [221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), - [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hole, 4), - [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hole, 4), - [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wires_inner, 1), - [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 2), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), - [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 2), - [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 5), - [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 5), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_stmt, 4), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_stmt, 4), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_stmt, 4), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_stmt, 4), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt, 1), - [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt, 1), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enable, 1), - [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enable, 1), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 3), - [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr, 3), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmp_expr, 3), - [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmp_expr, 3), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 9), - [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 9), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), - [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_stmt, 3), - [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_stmt, 3), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enable, 2), - [283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enable, 2), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 5), - [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 5), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 6), - [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 6), - [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 6), - [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 6), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 5), - [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 5), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_stmt, 3), - [303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_stmt, 3), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 7), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 7), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enable, 3), - [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enable, 3), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_stmt, 5), - [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_stmt, 5), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_base_expr, 1), - [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_base_expr, 1), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 1), - [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr, 1), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 4), - [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 4), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 6), - [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 6), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 3), - [335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 3), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 4), - [339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 4), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 8), - [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 8), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 7), - [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 7), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_seq_repeat1, 1), - [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_seq_repeat1, 1), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 3), - [355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 3), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 6), - [359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 6), - [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 10), - [363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 10), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 1), - [367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_io_port_repeat1, 1), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [371] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 1), - [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [385] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(459), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 5), - [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 5), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 2), - [396] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 2), SHIFT_REPEAT(408), - [399] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 2), SHIFT_REPEAT(23), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 7), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), - [426] = {.entry = {.count = 1, .reusable = false}}, SHIFT(356), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), - [430] = {.entry = {.count = 1, .reusable = false}}, SHIFT(339), - [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 6), - [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 5), - [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3), - [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 4), - [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), - [442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), SHIFT_REPEAT(188), - [445] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), SHIFT_REPEAT(455), - [448] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), SHIFT_REPEAT(150), - [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 8), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern, 5), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), - [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern, 4), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 8), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 2), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_annotation, 3), - [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_annotation, 1), - [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 3), - [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), - [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), - [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), - [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 9), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_annotation, 2), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 6), - [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 5), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_io_port_list_repeat1, 2), - [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_list_repeat1, 2), SHIFT_REPEAT(408), - [514] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_list_repeat1, 2), SHIFT_REPEAT(407), - [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 1), - [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cells_inner_repeat1, 2), - [523] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cells_inner_repeat1, 2), SHIFT_REPEAT(356), - [526] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cells_inner_repeat1, 2), SHIFT_REPEAT(413), - [529] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cells_inner_repeat1, 2), SHIFT_REPEAT(339), - [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 10), - [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 7), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cells_inner, 1), - [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wire_assignment, 5), - [548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_wire_assignment, 5), - [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_wires_inner_repeat1, 1), - [552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 1), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 3), - [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 3), - [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 5), - [560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 5), - [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 6), - [564] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 6), - [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 5), - [570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 5), - [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 4), - [574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 4), - [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 2), - [578] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 2), - [580] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), SHIFT_REPEAT(426), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 4), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 4), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wire_assignment, 4), - [593] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_wire_assignment, 4), - [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 3), - [599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 3), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 7), - [603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 7), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instantiation, 2), - [607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_instantiation, 2), - [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), - [623] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), SHIFT_REPEAT(408), - [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cells_inner_repeat1, 1), - [628] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cells_inner_repeat1, 1), - [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), - [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), - [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), - [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), - [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), - [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), - [642] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), SHIFT_REPEAT(404), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comb_or_static, 1), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), - [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), - [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 1), - [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 6), - [669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 6), - [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), - [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 1), - [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cells, 4), - [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_args, 2), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_args, 3), - [699] = {.entry = {.count = 1, .reusable = false}}, SHIFT(351), - [701] = {.entry = {.count = 1, .reusable = false}}, SHIFT(461), - [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_primitive_blob_repeat1, 2), - [705] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_primitive_blob_repeat1, 2), SHIFT_REPEAT(309), - [708] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_invoke_args_repeat1, 2), SHIFT_REPEAT(390), - [711] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_invoke_ref_args_repeat1, 2), SHIFT_REPEAT(386), - [714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 4), - [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port_list, 4), - [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(348), - [722] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309), - [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), - [726] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(201), - [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_args, 4), - [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 3), - [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port_list, 3), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [737] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), - [741] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 1), - [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 2), - [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port_list, 2), - [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cells, 3), - [753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port, 3), - [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3), - [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), - [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comb_or_static, 2), - [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), - [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), - [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), - [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), - [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), - [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port_with, 1), - [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), - [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_signature, 3), - [815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_arg, 3), - [817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wires, 4), - [819] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_arg, 3), - [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), - [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_params_repeat1, 2), SHIFT_REPEAT(349), - [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_primitive_blob_repeat1, 1), - [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), - [834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port, 4), - [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), - [838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wires, 3), - [840] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), - [842] = {.entry = {.count = 1, .reusable = false}}, SHIFT(363), - [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), - [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), - [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lhs, 1), - [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), - [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch, 3), - [880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 4), - [882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_invoke_args_repeat1, 2), - [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_invoke_ref_args_repeat1, 2), - [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_args, 3), - [892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_blob, 3), - [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), - [896] = {.entry = {.count = 1, .reusable = false}}, SHIFT(441), - [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_inner, 1), - [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_blob, 2), - [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), - [914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 3), - [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), - [920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_params_repeat1, 2), - [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_args, 4), - [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), - [930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), - [932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port_with, 3), - [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), - [946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_args, 2), - [948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), - [956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), - [958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control, 4), - [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), - [974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3), - [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), - [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [1000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [1002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [1004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [1006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [1010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [1012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), - [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_metadata, 2), - [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [1022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), - [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [1028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), - [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), - [1038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), - [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [1042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), - [1044] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [1046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [1048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [1050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [1052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [1054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), - [1056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [1060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [1062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_metadata_ci, 1), - [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), - [1066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3), - [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 1), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(358), + [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(57), + [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_control_inner_repeat1, 2), + [50] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(346), + [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(350), + [56] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(353), + [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(219), + [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(223), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(137), + [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(354), + [71] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(423), + [74] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 2), SHIFT_REPEAT(358), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_inner, 1), + [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(460), + [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(327), + [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(326), + [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), + [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port, 3), + [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_port, 3), + [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wires_inner, 1), + [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port, 1), + [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_port, 1), + [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_wires_inner_repeat1, 2), + [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(327), + [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(326), + [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(136), + [144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(408), + [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 2), SHIFT_REPEAT(26), + [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), + [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), + [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), + [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(210), + [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), + [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), + [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(404), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), + [170] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(457), + [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(185), + [176] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(455), + [179] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(454), + [182] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(136), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249), + [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), + [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 4), + [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 4), + [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 3), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 3), + [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 4), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 4), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 5), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 5), + [225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hole, 4), + [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hole, 4), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), + [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_io_port_repeat1, 2), + [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), SHIFT_REPEAT(423), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 4), + [240] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 4), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 3), + [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr, 3), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enable, 3), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enable, 3), + [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_stmt, 3), + [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_stmt, 3), + [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_stmt, 3), + [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_stmt, 3), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 3), + [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 3), + [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 3), + [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 3), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 1), + [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr, 1), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_base_expr, 1), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_base_expr, 1), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enable, 2), + [276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enable, 2), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 4), + [280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 4), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_stmt, 4), + [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_stmt, 4), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_stmt, 4), + [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_stmt, 4), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_control_inner_repeat1, 1), + [292] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_control_inner_repeat1, 1), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt, 1), + [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt, 1), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enable, 1), + [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enable, 1), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmp_expr, 3), + [304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmp_expr, 3), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 2), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 2), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 5), + [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 5), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 5), + [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 5), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 5), + [332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 5), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_stmt, 5), + [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_stmt, 5), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 6), + [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 6), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 10), + [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 10), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 9), + [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 9), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 8), + [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 8), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 6), + [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 6), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seq, 6), + [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seq, 6), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_stmt, 7), + [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_stmt, 7), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_par, 6), + [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_par, 6), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke, 7), + [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invoke, 7), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [376] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 1), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(459), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 5), + [397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 5), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 1), + [401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_io_port_repeat1, 1), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 2), + [421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 2), SHIFT_REPEAT(408), + [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 2), SHIFT_REPEAT(26), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 8), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 7), + [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 5), + [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1), + [437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_annotation, 2), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), + [443] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), SHIFT_REPEAT(185), + [446] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), SHIFT_REPEAT(455), + [449] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 2), SHIFT_REPEAT(136), + [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_annotation, 3), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [456] = {.entry = {.count = 1, .reusable = false}}, SHIFT(332), + [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), + [460] = {.entry = {.count = 1, .reusable = false}}, SHIFT(331), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3), + [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 6), + [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive, 4), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 10), + [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cells_inner, 1), + [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 9), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern, 5), + [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 7), + [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_annotation, 1), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), + [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), + [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 6), + [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cells_inner_repeat1, 2), + [504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cells_inner_repeat1, 2), SHIFT_REPEAT(332), + [507] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cells_inner_repeat1, 2), SHIFT_REPEAT(414), + [510] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cells_inner_repeat1, 2), SHIFT_REPEAT(331), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern, 4), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 2), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 1), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 3), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_io_port_list_repeat1, 2), + [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_list_repeat1, 2), SHIFT_REPEAT(408), + [542] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_list_repeat1, 2), SHIFT_REPEAT(407), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 8), + [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_component, 5), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), + [551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wire_assignment, 5), + [553] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_wire_assignment, 5), + [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 6), + [557] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 6), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_wires_inner_repeat1, 1), + [565] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_wires_inner_repeat1, 1), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wire_assignment, 4), + [569] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_wire_assignment, 4), + [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 4), + [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 4), + [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 5), + [577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 5), + [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 7), + [581] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 7), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 3), + [585] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 3), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 2), + [589] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 2), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [593] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), SHIFT_REPEAT(426), + [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 5), + [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 5), + [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instantiation, 2), + [604] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_instantiation, 2), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 3), + [610] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 3), + [612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 4), + [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 4), + [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cells_inner_repeat1, 1), + [622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cells_inner_repeat1, 1), + [624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_extern_repeat1, 1), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), + [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), + [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comb_or_static, 1), + [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [662] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_io_port_repeat1, 2), SHIFT_REPEAT(408), + [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), + [671] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), SHIFT_REPEAT(402), + [674] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cell_assignment, 6), + [676] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cell_assignment, 6), + [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345), + [682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(462), + [684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(360), + [686] = {.entry = {.count = 1, .reusable = false}}, SHIFT(315), + [688] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_primitive_blob_repeat1, 2), + [690] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_primitive_blob_repeat1, 2), SHIFT_REPEAT(315), + [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_args, 2), + [695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), + [697] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(206), + [700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 1), + [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port_list, 2), + [710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_args, 4), + [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 3), + [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cells, 3), + [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [726] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port_list, 3), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_args, 3), + [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_group_repeat1, 1), + [740] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_invoke_args_repeat1, 2), SHIFT_REPEAT(394), + [743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), + [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cells, 4), + [747] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_invoke_ref_args_repeat1, 2), SHIFT_REPEAT(387), + [750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 4), + [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 2), + [756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port_list, 4), + [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port, 3), + [764] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_params_repeat1, 2), SHIFT_REPEAT(340), + [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comb_or_static, 2), + [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), + [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), + [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port_with, 1), + [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wires, 4), + [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [829] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_arg, 3), + [831] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_arg, 3), + [833] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_signature, 3), + [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [837] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_primitive_blob_repeat1, 1), + [839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3), + [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_io_port, 4), + [853] = {.entry = {.count = 1, .reusable = false}}, SHIFT(369), + [855] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366), + [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wires, 3), + [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lhs, 1), + [875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch, 3), + [877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 4), + [879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_invoke_args_repeat1, 2), + [881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_blob, 3), + [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_invoke_ref_args_repeat1, 2), + [889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_args, 3), + [891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control, 3), + [893] = {.entry = {.count = 1, .reusable = false}}, SHIFT(441), + [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), + [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_blob, 2), + [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 3), + [919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_params_repeat1, 2), + [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_args, 4), + [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port_with, 3), + [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invoke_ref_args, 2), + [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), + [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control, 4), + [971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3), + [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [1001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [1003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [1007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [1009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [1015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [1019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [1023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_metadata, 2), + [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [1027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [1029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [1039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [1041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [1043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [1045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), + [1047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [1049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [1051] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [1063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [1065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [1067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [1069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_metadata_ci, 1), + [1071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), + [1073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [1075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3), + [1077] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 1), }; #ifdef __cplusplus diff --git a/calyx-opt/src/default_passes.rs b/calyx-opt/src/default_passes.rs index 80ae33b743..314e06fdfc 100644 --- a/calyx-opt/src/default_passes.rs +++ b/calyx-opt/src/default_passes.rs @@ -1,4 +1,5 @@ //! Defines the default passes available to [PassManager]. +use crate::pass_manager::PassResult; use crate::passes::{ AddGuard, Canonicalize, CellShare, ClkInsertion, CollapseControl, CombProp, CompileInvoke, CompileRepeat, CompileStatic, CompileSync, @@ -13,16 +14,15 @@ use crate::passes::{ }; use crate::traversal::Named; use crate::{pass_manager::PassManager, register_alias}; -use calyx_utils::CalyxResult; impl PassManager { - pub fn default_passes() -> CalyxResult { + pub fn default_passes() -> PassResult { // Construct the pass manager and register all passes. let mut pm = PassManager::default(); // Validation passes - pm.register_pass::()?; - pm.register_pass::()?; + pm.register_diagnostic::()?; + pm.register_diagnostic::()?; pm.register_pass::()?; // Optimization passes @@ -62,7 +62,7 @@ impl PassManager { pm.register_pass::()?; // Enabled in the synthesis compilation flow - pm.register_pass::()?; + pm.register_diagnostic::()?; pm.register_pass::()?; // Disabled by default diff --git a/calyx-opt/src/pass_manager.rs b/calyx-opt/src/pass_manager.rs index 709d38ee5b..f515970dc2 100644 --- a/calyx-opt/src/pass_manager.rs +++ b/calyx-opt/src/pass_manager.rs @@ -2,13 +2,15 @@ //! passes. use crate::traversal; use calyx_ir as ir; -use calyx_utils::{CalyxResult, Error}; +use calyx_utils::{Error, MultiError}; use std::collections::{HashMap, HashSet}; use std::fmt::Write as _; use std::time::Instant; +pub type PassResult = std::result::Result; + /// Top-level type for all passes that transform an [ir::Context] -pub type PassClosure = Box CalyxResult<()>>; +pub type PassClosure = Box PassResult<()>>; /// Structure that tracks all registered passes for the compiler. #[derive(Default)] @@ -30,7 +32,48 @@ impl PassManager { /// let pm = PassManager::default(); /// pm.register_pass::()?; /// ``` - pub fn register_pass(&mut self) -> CalyxResult<()> + pub fn register_pass(&mut self) -> PassResult<()> + where + Pass: + traversal::Visitor + traversal::ConstructVisitor + traversal::Named, + { + self.register_generic_pass::(Box::new(|ir| { + Pass::do_pass_default(ir)?; + Ok(()) + })) + } + + /// Registers a diagnostic pass as a normal pass. If there is an error, + /// this will report the first error gathered by the pass. + pub fn register_diagnostic(&mut self) -> PassResult<()> + where + Pass: traversal::Visitor + + traversal::ConstructVisitor + + traversal::Named + + traversal::DiagnosticPass, + { + self.register_generic_pass::(Box::new(|ir| { + let mut visitor = Pass::from(ir)?; + visitor.do_pass(ir)?; + + let errors: Vec<_> = + visitor.diagnostics().errors_iter().cloned().collect(); + if !errors.is_empty() { + Err(MultiError::from(errors)) + } else { + // only show warnings, if there are no errors + visitor.diagnostics().warning_iter().for_each( + |warning| log::warn!(target: Pass::name(), "{warning:?}"), + ); + Ok(()) + } + })) + } + + fn register_generic_pass( + &mut self, + pass_closure: PassClosure, + ) -> PassResult<()> where Pass: traversal::Visitor + traversal::ConstructVisitor + traversal::Named, @@ -40,12 +83,9 @@ impl PassManager { return Err(Error::misc(format!( "Pass with name '{}' is already registered.", name - ))); + )) + .into()); } - let pass_closure: PassClosure = Box::new(|ir| { - Pass::do_pass_default(ir)?; - Ok(()) - }); self.passes.insert(name.clone(), pass_closure); let mut help = format!("- {}: {}", name, Pass::description()); for opt in Pass::opts() { @@ -69,12 +109,13 @@ impl PassManager { &mut self, name: String, passes: Vec, - ) -> CalyxResult<()> { + ) -> PassResult<()> { if self.aliases.contains_key(&name) { return Err(Error::misc(format!( "Alias with name '{}' already registered.", name - ))); + )) + .into()); } // Expand any aliases used in defining this alias. let all_passes = passes @@ -151,7 +192,7 @@ impl PassManager { incls: &[String], excls: &[String], insns: &[String], - ) -> CalyxResult<(Vec, HashSet)> { + ) -> PassResult<(Vec, HashSet)> { let mut insertions = insns .iter() .filter_map(|str| match str.split_once(':') { @@ -228,7 +269,7 @@ impl PassManager { excl: &[String], insn: &[String], dump_ir: bool, - ) -> CalyxResult<()> { + ) -> PassResult<()> { let (passes, excl_set) = self.create_plan(incl, excl, insn)?; for name in passes { diff --git a/calyx-opt/src/passes/papercut.rs b/calyx-opt/src/passes/papercut.rs index 72b26dd947..7d50059ca5 100644 --- a/calyx-opt/src/passes/papercut.rs +++ b/calyx-opt/src/passes/papercut.rs @@ -1,7 +1,10 @@ use crate::analysis::{self, AssignmentAnalysis}; -use crate::traversal::{Action, ConstructVisitor, Named, VisResult, Visitor}; +use crate::traversal::{ + Action, ConstructVisitor, DiagnosticContext, DiagnosticPass, Named, + VisResult, Visitor, +}; use calyx_ir::{self as ir, LibrarySignatures}; -use calyx_utils::{CalyxResult, Error}; +use calyx_utils::{CalyxResult, Error, WithPos}; use itertools::Itertools; use std::collections::{HashMap, HashSet}; @@ -11,6 +14,7 @@ type ReadTogether = (ir::Id, HashSet); /// Pass to check for common errors such as missing assignments to `done` holes /// of groups. +#[derive(Debug)] pub struct Papercut { /// Map from (primitive name) -> Vec<(set of ports)> /// When any of the ports in a set is driven, all ports in that set must @@ -26,6 +30,9 @@ pub struct Papercut { /// The cells that are driven through continuous assignments cont_cells: HashSet, + + /// diagnostic context to accumulate multiple errors + diag: DiagnosticContext, } impl Papercut { @@ -62,6 +69,7 @@ impl ConstructVisitor for Papercut { write_together, read_together, cont_cells: HashSet::new(), + diag: DiagnosticContext::default(), }) } @@ -96,6 +104,12 @@ fn port_information( None } +impl DiagnosticPass for Papercut { + fn diagnostics(&self) -> &DiagnosticContext { + &self.diag + } +} + impl Visitor for Papercut { fn start( &mut self, @@ -121,7 +135,7 @@ impl Visitor for Papercut { assign.name == p.borrow().name && !assign.is_hole() }); if done_use.is_none() { - return Err(Error::papercut(format!("Component `{}` has an empty control program and does not assign to the done port `{}`. Without an assignment to the done port, the component cannot return control flow.", comp.name, p.borrow().name))); + self.diag.err(Error::papercut(format!("Component `{}` has an empty control program and does not assign to the done port `{}`. Without an assignment to the done port, the component cannot return control flow.", comp.name, p.borrow().name)).with_pos(&comp.attributes)) } } } @@ -133,21 +147,18 @@ impl Visitor for Papercut { // driven. for group_ref in comp.get_groups().iter() { let group = group_ref.borrow(); - self.check_specs(&group.assignments) - .map_err(|err| err.with_pos(&group.attributes))?; + self.check_specs(&group.assignments, &group.attributes); } for group_ref in comp.get_static_groups().iter() { let group = group_ref.borrow(); - self.check_specs(&group.assignments) - .map_err(|err| err.with_pos(&group.attributes))?; + self.check_specs(&group.assignments, &group.attributes); } for cgr in comp.comb_groups.iter() { let cg = cgr.borrow(); - self.check_specs(&cg.assignments) - .map_err(|err| err.with_pos(&cg.attributes))?; + self.check_specs(&cg.assignments, &cg.attributes); } - // Compute all cells that are driven in by the continuous assignments0 + // Compute all cells that are driven in by the continuous assignments self.cont_cells = comp .continuous_assignments .iter() @@ -181,9 +192,8 @@ impl Visitor for Papercut { if *is_comb && !self.cont_cells.contains(&cell.name()) { let msg = format!("Port `{}.{}` is an output port on combinational primitive `{}` and will always output 0. Add a `with` statement to the `while` statement to ensure it has a valid value during execution.", cell.name(), port.name, prim_name); // Use dummy Id to get correct source location for error - return Err( - Error::papercut(msg).with_pos(&s.attributes) - ); + self.diag + .err(Error::papercut(msg).with_pos(&s.attributes)); } } } @@ -213,9 +223,8 @@ impl Visitor for Papercut { if *is_comb && !self.cont_cells.contains(&cell.name()) { let msg = format!("Port `{}.{}` is an output port on combinational primitive `{}` and will always output 0. Add a `with` statement to the `if` statement to ensure it has a valid value during execution.", cell.name(), port.name, prim_name); // Use dummy Id to get correct source location for error - return Err( - Error::papercut(msg).with_pos(&s.attributes) - ); + self.diag + .err(Error::papercut(msg).with_pos(&s.attributes)); } } } @@ -225,7 +234,10 @@ impl Visitor for Papercut { } impl Papercut { - fn check_specs(&mut self, assigns: &[ir::Assignment]) -> VisResult { + fn check_specs(&mut self, assigns: &[ir::Assignment], pos: &P) + where + P: WithPos, + { let all_writes = assigns .iter() .analysis() @@ -262,7 +274,7 @@ impl Papercut { read, missing, comp_type); - return Err(Error::papercut(msg)); + self.diag.err(Error::papercut(msg).with_pos(pos)); } } } @@ -297,11 +309,9 @@ impl Papercut { first, missing, comp_type); - return Err(Error::papercut(msg)); + self.diag.err(Error::papercut(msg).with_pos(pos)); } } } - // This return value is not used - Ok(Action::Continue) } } diff --git a/calyx-opt/src/passes/synthesis_papercut.rs b/calyx-opt/src/passes/synthesis_papercut.rs index d56e1a5e52..186ad25ccb 100644 --- a/calyx-opt/src/passes/synthesis_papercut.rs +++ b/calyx-opt/src/passes/synthesis_papercut.rs @@ -1,7 +1,10 @@ use crate::analysis::GraphAnalysis; -use crate::traversal::{Action, Named, VisResult, Visitor}; +use crate::traversal::{ + Action, ConstructVisitor, DiagnosticContext, DiagnosticPass, Named, + VisResult, Visitor, +}; use calyx_ir::{self as ir, LibrarySignatures}; -use calyx_utils::Error; +use calyx_utils::{CalyxResult, Error}; use std::collections::HashSet; const READ_PORT: &str = "read_data"; @@ -10,19 +13,41 @@ const WRITE_PORT: &str = "write_data"; /// Pass to check common synthesis issues. /// 1. If a memory is only read-from or written-to, synthesis tools will optimize it away. Add /// @external attribute to the cell definition to make it an interface memory. +#[derive(Debug)] pub struct SynthesisPapercut { /// Names of memory primitives memories: HashSet, + /// Diagnostic context for reporting multiple errors + diag: DiagnosticContext, } -impl Default for SynthesisPapercut { - fn default() -> Self { - let memories = - ["comb_mem_d1", "comb_mem_d2", "comb_mem_d3", "comb_mem_d4"] - .iter() - .map(|&mem| mem.into()) - .collect(); - SynthesisPapercut { memories } +// impl Default for SynthesisPapercut { +// fn default() -> Self { +// } +// } + +impl SynthesisPapercut { + fn default_memories() -> impl Iterator { + ["comb_mem_d1", "comb_mem_d2", "comb_mem_d3", "comb_mem_d4"] + .iter() + .map(|&mem| mem.into()) + } +} + +impl ConstructVisitor for SynthesisPapercut { + fn from(_ctx: &ir::Context) -> CalyxResult + where + Self: Sized, + { + let memories = Self::default_memories().collect(); + Ok(SynthesisPapercut { + memories, + diag: DiagnosticContext::default(), + }) + } + + fn clear_data(&mut self) { + self.memories = Self::default_memories().collect(); } } @@ -36,6 +61,12 @@ impl Named for SynthesisPapercut { } } +impl DiagnosticPass for SynthesisPapercut { + fn diagnostics(&self) -> &DiagnosticContext { + &self.diag + } +} + impl Visitor for SynthesisPapercut { fn start( &mut self, @@ -78,21 +109,23 @@ impl Visitor for SynthesisPapercut { let cell = comp.find_cell(mem).unwrap(); let read_port = cell.borrow().get(READ_PORT); if analysis.reads_from(&read_port.borrow()).next().is_none() { - return Err(Error::papercut( + self.diag.err(Error::papercut( format!( "Only writes performed on memory `{mem}'. Synthesis tools will remove this memory. Add @external to cell to turn this into an interface memory.", ), - )); + ).with_pos(&cell.borrow().attributes)); } let write_port = cell.borrow().get(WRITE_PORT); if analysis.writes_to(&write_port.borrow()).next().is_none() { - return Err(Error::papercut( + self.diag.err(Error::papercut( format!( "Only reads performed on memory `{mem}'. Synthesis tools will remove this memory. Add @external to cell to turn this into an interface memory.", ), - )); + ).with_pos(&cell.borrow().attributes)); } } + + // we don't need to traverse the rest of the component Ok(Action::Stop) } } diff --git a/calyx-opt/src/passes/well_formed.rs b/calyx-opt/src/passes/well_formed.rs index 6b05827f54..f3f14bcf77 100644 --- a/calyx-opt/src/passes/well_formed.rs +++ b/calyx-opt/src/passes/well_formed.rs @@ -1,4 +1,5 @@ use crate::traversal::{Action, ConstructVisitor, Named, VisResult, Visitor}; +use crate::traversal::{DiagnosticContext, DiagnosticPass, DiagnosticResult}; use calyx_ir::{ self as ir, Cell, CellType, Component, GetAttributes, LibrarySignatures, RESERVED_NAMES, @@ -84,6 +85,19 @@ pub struct WellFormed { ref_cells: HashMap>, /// Stack of currently active combinational groups active_comb: ActiveAssignments, + /// groups that have done holes + has_done_hole: HashSet, + /// Diagnostic context to accumulate multiple errors. + diag: DiagnosticContext, +} + +impl std::fmt::Debug for WellFormed { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("WellFormed") + .field("has_done_hole", &self.has_done_hole) + .field("diag", &self.diag) + .finish_non_exhaustive() + } } enum Invoke<'a> { @@ -182,6 +196,8 @@ impl ConstructVisitor for WellFormed { used_comb_groups: HashSet::new(), ref_cells, active_comb: ActiveAssignments::default(), + has_done_hole: HashSet::new(), + diag: DiagnosticContext::default(), }; Ok(w_f) @@ -203,6 +219,12 @@ impl Named for WellFormed { } } +impl DiagnosticPass for WellFormed { + fn diagnostics(&self) -> &DiagnosticContext { + &self.diag + } +} + /// Returns an error if the assignments are obviously conflicting. This happens when two /// assignments assign to the same port unconditionally. /// Because there are two types of assignments, we take in `assigns1` and `assigns2`. @@ -212,39 +234,28 @@ where I1: Iterator>, I2: Iterator>, { - let dsts1 = assigns1.filter(|a| a.guard.is_true()).map(|a| { - ( - a.dst.borrow().canonical(), - a.attributes - .copy_span() - .into_option() - .map(|s| s.show()) - .unwrap_or_else(|| ir::Printer::assignment_to_str(a)), - ) - }); - let dsts2 = assigns2.filter(|a| a.guard.is_true()).map(|a| { - ( - a.dst.borrow().canonical(), - a.attributes - .copy_span() - .into_option() - .map(|s| s.show()) - .unwrap_or_else(|| ir::Printer::assignment_to_str(a)), - ) - }); + let dsts1 = assigns1 + .filter(|a| a.guard.is_true()) + .map(|a| (a.dst.borrow().canonical(), a.attributes.copy_span())); + let dsts2 = assigns2 + .filter(|a| a.guard.is_true()) + .map(|a| (a.dst.borrow().canonical(), a.attributes.copy_span())); let dsts = dsts1.chain(dsts2); let dst_grps = dsts .sorted_by(|(dst1, _), (dst2, _)| ir::Canonical::cmp(dst1, dst2)) .group_by(|(dst, _)| dst.clone()); for (_, group) in &dst_grps { - let assigns = group.map(|(_, a)| a).collect_vec(); + let assigns = group.collect_vec(); if assigns.len() > 1 { - let msg = assigns.into_iter().join(""); - return Err(Error::malformed_structure(format!( - "Obviously conflicting assignments found:\n{}", - msg - ))); + let mut asgn_iter = assigns.into_iter().rev(); + return Err(Error::malformed_structure( + "Obviously conflicting assignments found", + ) + .with_pos(&asgn_iter.next().unwrap().1) + .with_annotations(asgn_iter.map(|(cannon, pos)| { + (pos, format!("`{cannon}` is also written to here")) + }))); } } Ok(()) @@ -282,16 +293,20 @@ impl Visitor for WellFormed { let cell = cell_ref.borrow(); // Check if any of the cells use a reserved name. if self.reserved_names.contains(&cell.name()) { - return Err(Error::reserved_name(cell.name()) - .with_pos(cell.get_attributes())); + self.diag.err( + Error::reserved_name(cell.name()) + .with_pos(cell.get_attributes()), + ); } // Check if a `ref` cell is invalid if cell.is_reference() { if cell.is_primitive(Some("std_const")) { - return Err(Error::malformed_structure( - "constant not allowed for ref cells".to_string(), - ) - .with_pos(cell.get_attributes())); + self.diag.err( + Error::malformed_structure( + "constant not allowed for ref cells".to_string(), + ) + .with_pos(cell.get_attributes()), + ); } if matches!(cell.prototype, CellType::ThisComponent) { unreachable!( @@ -305,23 +320,23 @@ impl Visitor for WellFormed { // there are no group or comb group definitions, and the control program is empty if comp.is_comb { if !matches!(&*comp.control.borrow(), ir::Control::Empty(..)) { - return Err(Error::malformed_structure(format!("Component `{}` is marked combinational but has a non-empty control program", comp.name))); + self.diag.err(Error::malformed_structure(format!("Component `{}` is marked combinational but has a non-empty control program", comp.name))); } if !comp.get_groups().is_empty() { let group = comp.get_groups().iter().next().unwrap().borrow(); - return Err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains a group `{}`", comp.name, group.name())).with_pos(&group.attributes)); + self.diag.err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains a group `{}`", comp.name, group.name())).with_pos(&group.attributes)); } if !comp.get_static_groups().is_empty() { let group = comp.get_static_groups().iter().next().unwrap().borrow(); - return Err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains a group `{}`", comp.name, group.name())).with_pos(&group.attributes)); + self.diag.err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains a group `{}`", comp.name, group.name())).with_pos(&group.attributes)); } if !comp.comb_groups.is_empty() { let group = comp.comb_groups.iter().next().unwrap().borrow(); - return Err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains a group `{}`", comp.name, group.name())).with_pos(&group.attributes)); + self.diag.err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains a group `{}`", comp.name, group.name())).with_pos(&group.attributes)); } for cell_ref in comp.cells.iter() { @@ -340,7 +355,7 @@ impl Visitor for WellFormed { _ => false, }; if !is_comb { - return Err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains non-combinational cell `{}`", comp.name, cell.name())).with_pos(&cell.attributes)); + self.diag.err(Error::malformed_structure(format!("Component `{}` is marked combinational but contains non-combinational cell `{}`", comp.name, cell.name())).with_pos(&cell.attributes)); } } } @@ -366,7 +381,7 @@ impl Visitor for WellFormed { }) { match &*comp.control.borrow() { ir::Control::Static(_) | ir::Control::Empty(_) => (), - _ => return Err(Error::malformed_structure( + _ => return self.diag.early_return_err(Error::malformed_structure( format!("component {} has dynamic control but has @interval annotations", comp.name), ) .with_pos(&comp.attributes)), @@ -381,10 +396,10 @@ impl Visitor for WellFormed { { Some(val) => val, None => { - return Err(Error::malformed_structure( + return self.diag.early_return_err(Error::malformed_structure( "@interval(n) attribute on all @go ports since there is static control", ) - .with_pos(&comp.attributes)) + .with_pos(&comp.attributes)); } }; // Checking go ports. @@ -396,18 +411,20 @@ impl Visitor for WellFormed { { Some(val) => val, None => { - return Err(Error::malformed_structure(format!( + self.diag.err(Error::malformed_structure(format!( "@go port expected @interval({reference_val}) attribute on all ports \ since the component has static control", )) - .with_pos(&comp.attributes)) + .with_pos(&comp.attributes)); + continue; } }; if go_port_val != reference_val { - return Err(Error::malformed_structure(format!( + self.diag.err(Error::malformed_structure(format!( "@go port expected @interval {reference_val}, got @interval {go_port_val}", )) .with_pos(&go_port.borrow().attributes)); + continue; } // Checking control latency match comp.control.borrow().get_latency() { @@ -416,7 +433,7 @@ impl Visitor for WellFormed { } Some(control_latency) => { if control_latency != reference_val { - return Err(Error::malformed_structure(format!( + self.diag.err(Error::malformed_structure(format!( "component {} expected @interval {reference_val}, got @interval {control_latency}", comp.name, )) .with_pos(&comp.attributes)); @@ -437,39 +454,50 @@ impl Visitor for WellFormed { for assign in &group.assignments { let dst = assign.dst.borrow(); if port_is_static_prim(&dst) { - return Err(Error::malformed_structure(format!( - "Static cell `{}` written to in non-static group", - dst.get_parent_name() - )) - .with_pos(&assign.attributes)); + self.diag.err( + Error::malformed_structure(format!( + "Static cell `{}` written to in non-static group", + dst.get_parent_name() + )) + .with_pos(&assign.attributes), + ); } if dst.is_hole() && dst.name == "done" { // Group has multiple done conditions if has_done { - return Err(Error::malformed_structure(format!( - "Group `{}` has multiple done conditions", - gname - )) - .with_pos(&assign.attributes)); + self.diag.err( + Error::malformed_structure(format!( + "Group `{}` has multiple done conditions", + gname + )) + .with_pos(&assign.attributes), + ); } else { has_done = true; } // Group uses another group's done condition if gname != dst.get_parent_name() { - return Err(Error::malformed_structure( - format!("Group `{}` refers to the done condition of another group (`{}`).", - gname, - dst.get_parent_name())).with_pos(&dst.attributes)); + self.diag.err(Error::malformed_structure( + format!( + "Group `{}` refers to the done condition of another group (`{}`)", + gname, + dst.get_parent_name(), + )).with_pos(&assign.attributes)); } } } - // Group does not have a done condition - if !has_done { - return Err(Error::malformed_structure(format!( - "No writes to the `done' hole for group `{gname}'", - )) - .with_pos(&group.attributes)); + // If group has done condition, record this fact, + // otherwise record an error + if has_done { + self.has_done_hole.insert(gname); + } else { + self.diag.err( + Error::malformed_structure(format!( + "No writes to the `done' hole for group `{gname}'", + )) + .with_pos(&group.attributes), + ); } } @@ -510,17 +538,20 @@ impl Visitor for WellFormed { obvious_conflicts( comp.continuous_assignments.iter(), std::iter::empty::<&ir::Assignment>(), - )?; + ) + .accumulate_err(&mut self.diag)?; // Check for obvious conflicting assignments between the continuous assignments and the groups for cgr in comp.comb_groups.iter() { for assign in &cgr.borrow().assignments { let dst = assign.dst.borrow(); if port_is_static_prim(&dst) { - return Err(Error::malformed_structure(format!( - "Static cell `{}` written to in non-static group", - dst.get_parent_name() - )) - .with_pos(&assign.attributes)); + self.diag.err( + Error::malformed_structure(format!( + "Static cell `{}` written to in non-static group", + dst.get_parent_name() + )) + .with_pos(&assign.attributes), + ); } } obvious_conflicts( @@ -529,7 +560,8 @@ impl Visitor for WellFormed { .iter() .chain(comp.continuous_assignments.iter()), std::iter::empty::<&ir::Assignment>(), - )?; + ) + .accumulate_err(&mut self.diag)?; } Ok(Action::Continue) @@ -554,13 +586,12 @@ impl Visitor for WellFormed { group.assignments.iter(), ) .map_err(|err| { - let msg = s - .attributes - .copy_span() - .into_option() - .map(|s| s.format("Assigments activated by group enable")); - err.with_post_msg(msg) - })?; + err.with_annotation( + &s.attributes, + "Assignments activated by group static enable, causing the conflict", + ) + }) + .accumulate_err(&mut self.diag)?; Ok(Action::Continue) } @@ -572,15 +603,22 @@ impl Visitor for WellFormed { _ctx: &LibrarySignatures, _comps: &[ir::Component], ) -> VisResult { - self.used_groups.insert(s.group.borrow().name()); - let group = s.group.borrow(); + let gname = group.name(); + self.used_groups.insert(gname); + + // if this group doesn't have a done hole, we can't run this analysis + // so we abort early + if !self.has_done_hole.contains(&gname) { + return Ok(Action::Continue); + } + let asgn = group.done_cond(); let const_done_assign = asgn.guard.is_true() && asgn.src.borrow().is_constant(1, 1); if const_done_assign { - return Err(Error::malformed_structure("Group with constant done condition is invalid. Use `comb group` instead to define a combinational group.").with_pos(&group.attributes)); + self.diag.err(Error::malformed_structure("Group with constant done condition is invalid. Use `comb group` instead to define a combinational group.").with_pos(&group.attributes)); } // A group with "static"=0 annotation @@ -590,7 +628,7 @@ impl Visitor for WellFormed { .map(|v| v == 0) .unwrap_or(false) { - return Err(Error::malformed_structure("Group with annotation \"promotable\"=0 is invalid. Use `comb group` instead to define a combinational group or if the group's done condition is not constant, provide the correct \"static\" annotation.").with_pos(&group.attributes)); + self.diag.err(Error::malformed_structure("Group with annotation \"promotable\"=0 is invalid. Use `comb group` instead to define a combinational group or if the group's done condition is not constant, provide the correct \"static\" annotation.").with_pos(&group.attributes)); } // Check if the group has obviously conflicting assignments with the continuous assignments and the active combinational groups @@ -603,13 +641,12 @@ impl Visitor for WellFormed { std::iter::empty::<&ir::Assignment>(), ) .map_err(|err| { - let msg = s - .attributes - .copy_span() - .into_option() - .map(|s| s.format("Assigments activated by group enable")); - err.with_post_msg(msg) - })?; + err.with_annotation( + &s.attributes, + "Assignments activated by group enable, causing the conflict", + ) + }) + .accumulate_err(&mut self.diag)?; Ok(Action::Continue) } @@ -665,20 +702,23 @@ impl Visitor for WellFormed { std::iter::empty::<&ir::Assignment>(), ) .map_err(|err| { - let msg = s.attributes.copy_span().format(format!( - "Assignments from `{}' are actived here", - cg.name() - )); - err.with_post_msg(Some(msg)) - })?; + err.with_annotation( + &s.attributes, + format!( + "Assignments from `{}' are activated here, causing the conflict", + cg.name() + ), + ) + }) + .accumulate_err(&mut self.diag)?; // Push the combinational group to the stack of active groups self.active_comb.push(assigns); } else if !s.port.borrow().has_attribute(ir::BoolAttr::Stable) { - let msg = s.attributes.copy_span().format(format!( - "If statement has no comb group and its condition port {} is unstable", - s.port.borrow().canonical() - )); - log::warn!("{msg}"); + let err = Error::misc(format!( + "If statement has no comb group and its condition port {} is unstable", + s.port.borrow().canonical() + )).with_pos(&s.attributes); + self.diag.warning(err); } Ok(Action::Continue) } @@ -691,11 +731,12 @@ impl Visitor for WellFormed { _comps: &[ir::Component], ) -> VisResult { if !s.port.borrow().has_attribute(ir::BoolAttr::Stable) { - let msg = s.attributes.copy_span().format(format!( + let err = Error::misc(format!( "static if statement's condition port {} is unstable", s.port.borrow().canonical() - )); - log::warn!("{msg}"); + )) + .with_pos(&s.attributes); + self.diag.warning(err); } Ok(Action::Continue) } @@ -733,19 +774,20 @@ impl Visitor for WellFormed { ) .map_err(|err| { let msg = s.attributes.copy_span().format(format!( - "Assignments from `{}' are actived here", + "Assignments from `{}' are activated here", cg.name() )); err.with_post_msg(Some(msg)) - })?; + }) + .accumulate_err(&mut self.diag)?; // Push the combinational group to the stack of active groups self.active_comb.push(assigns); } else if !s.port.borrow().has_attribute(ir::BoolAttr::Stable) { - let msg = s.attributes.copy_span().format(format!( - "While loop has no comb group and its condition port {} is unstable", - s.port.borrow().canonical() - )); - log::warn!("{msg}"); + let err = Error::misc(format!( + "While loop has no comb group and its condition port `{}` is unstable", + s.port.borrow().canonical() + )).with_pos(&s.attributes); + self.diag.warning(err); } Ok(Action::Continue) } @@ -809,15 +851,15 @@ impl Visitor for WellFormed { match comp.find_group(*group) { Some(gr) => { let gr = gr.borrow(); - return Err( - Error::unused(*group, "group").with_pos(&gr.attributes) + self.diag.err( + Error::unused(*group, "group").with_pos(&gr.attributes), ); } None => { let gr = comp.find_static_group(*group).unwrap(); let gr = gr.borrow(); - return Err( - Error::unused(*group, "group").with_pos(&gr.attributes) + self.diag.err( + Error::unused(*group, "group").with_pos(&gr.attributes), ); } } @@ -830,8 +872,10 @@ impl Visitor for WellFormed { { let cgr = comp.find_comb_group(*comb_group).unwrap(); let cgr = cgr.borrow(); - return Err(Error::unused(*comb_group, "combinational group") - .with_pos(&cgr.attributes)); + self.diag.err( + Error::unused(*comb_group, "combinational group") + .with_pos(&cgr.attributes), + ); } Ok(Action::Continue) } diff --git a/calyx-opt/src/traversal/diagnostics.rs b/calyx-opt/src/traversal/diagnostics.rs new file mode 100644 index 0000000000..da1ed505eb --- /dev/null +++ b/calyx-opt/src/traversal/diagnostics.rs @@ -0,0 +1,76 @@ +use calyx_utils::{CalyxResult, Error}; + +use super::{Action, VisResult}; + +/// A pass that implements reporting Diagnostics +pub trait DiagnosticPass { + /// Return an iterator of the diagnostics gathered by this pass. + fn diagnostics(&self) -> &DiagnosticContext; +} + +/// A type for accumulating multiple errors +#[derive(Default, Debug)] +pub struct DiagnosticContext { + errors: Vec, + warnings: Vec, +} + +impl DiagnosticContext { + /// Report an `error` + pub fn err(&mut self, error: Error) { + self.errors.push(error); + } + + /// Report a `warning` + pub fn warning(&mut self, warning: Error) { + self.warnings.push(warning) + } + + /// Accumulates `error` into the context, and returns `Ok(Action::Continue)`. + /// This is useful for when we need to raise an Error because we couldn't + /// construct some value that we needed to continue the computation. + pub fn early_return_err(&mut self, error: Error) -> VisResult { + self.err(error); + Ok(Action::Continue) + } + + pub fn warning_iter(&self) -> impl Iterator { + self.warnings.iter() + } + + pub fn errors_iter(&self) -> impl Iterator { + self.errors.iter() + } +} + +/// Accumuate the error in a [`Result`] type into the [`DiagnosticContext`]. +pub trait DiagnosticResult { + fn accumulate_err(self, diag: &mut DiagnosticContext) -> Self; +} + +impl DiagnosticResult for CalyxResult +where + T: Default, +{ + fn accumulate_err(self, diag: &mut DiagnosticContext) -> Self { + match self { + Ok(act) => Ok(act), + Err(err) => { + diag.err(err); + Ok(T::default()) + } + } + } +} + +impl DiagnosticResult for VisResult { + fn accumulate_err(self, diag: &mut DiagnosticContext) -> Self { + match self { + Ok(act) => Ok(act), + Err(err) => { + diag.err(err); + Ok(Action::Continue) + } + } + } +} diff --git a/calyx-opt/src/traversal/mod.rs b/calyx-opt/src/traversal/mod.rs index a7151897f2..1a1bb0c5bc 100644 --- a/calyx-opt/src/traversal/mod.rs +++ b/calyx-opt/src/traversal/mod.rs @@ -1,10 +1,12 @@ //! Helpers for traversing Control programs mod action; mod construct; +mod diagnostics; mod post_order; mod visitor; pub use action::{Action, VisResult}; pub use construct::{ConstructVisitor, Named, ParseVal, PassOpt}; +pub use diagnostics::{DiagnosticContext, DiagnosticPass, DiagnosticResult}; pub use post_order::{CompTraversal, Order}; pub use visitor::{Visitable, Visitor}; diff --git a/calyx-utils/src/errors.rs b/calyx-utils/src/errors.rs index dd2a2b49f5..b087d017aa 100644 --- a/calyx-utils/src/errors.rs +++ b/calyx-utils/src/errors.rs @@ -1,22 +1,40 @@ //! Errors generated by the compiler. +use itertools::Itertools; + use crate::{GPosIdx, Id, WithPos}; /// Convience wrapper to represent success or meaningul compiler error. pub type CalyxResult = std::result::Result; /// Errors generated by the compiler +#[derive(Clone)] pub struct Error { kind: Box, pos: GPosIdx, + annotations: Vec<(GPosIdx, String)>, post_msg: Option, } +/// A collection of errors generated by the compiler +pub struct MultiError { + errors: Vec, +} + +impl From> for MultiError { + fn from(errors: Vec) -> Self { + MultiError { errors } + } +} + impl std::fmt::Debug for Error { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { if self.pos == GPosIdx::UNKNOWN { write!(f, "{}", self.kind)? } else { - write!(f, "{}", self.pos.format(self.kind.to_string()))? + write!(f, "{}", self.pos.format(self.kind.to_string()))?; + for (other_pos, msg) in &self.annotations { + write!(f, "\n...\n{}", other_pos.format_raw(msg))?; + } } if let Some(post) = &self.post_msg { write!(f, "\n{}", post)?; @@ -25,12 +43,38 @@ impl std::fmt::Debug for Error { } } +impl std::fmt::Debug for MultiError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let errors = self.errors.iter().map(|e| format!("{e:?}")).join("\n\n"); + write!(f, "{errors}") + } +} + impl Error { pub fn with_pos(mut self, pos: &T) -> Self { self.pos = pos.copy_span(); self } + pub fn with_annotation( + mut self, + pos: &T, + msg: S, + ) -> Self { + self.annotations.push((pos.copy_span(), msg.to_string())); + self + } + + pub fn with_annotations( + mut self, + pos_iter: impl Iterator, + ) -> Self { + self.annotations.extend( + pos_iter.map(|(pos, msg)| (pos.copy_span(), msg.to_string())), + ); + self + } + pub fn with_post_msg(mut self, msg: Option) -> Self { self.post_msg = msg; self @@ -40,6 +84,7 @@ impl Error { Self { kind: Box::new(ErrorKind::ReservedName(name)), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -47,6 +92,7 @@ impl Error { Self { kind: Box::new(ErrorKind::MalformedControl(msg.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -54,6 +100,7 @@ impl Error { Self { kind: Box::new(ErrorKind::MalformedStructure(msg.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -64,6 +111,7 @@ impl Error { msg.to_string(), )), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -71,6 +119,7 @@ impl Error { Self { kind: Box::new(ErrorKind::Undefined(name, typ.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -78,6 +127,7 @@ impl Error { Self { kind: Box::new(ErrorKind::AlreadyBound(name, typ.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -85,6 +135,7 @@ impl Error { Self { kind: Box::new(ErrorKind::Unused(group, typ.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -92,6 +143,7 @@ impl Error { Self { kind: Box::new(ErrorKind::Papercut(msg.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -99,13 +151,23 @@ impl Error { Self { kind: Box::new(ErrorKind::Misc(msg.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } + pub fn parse_error(msg: S) -> Self { + Self { + kind: Box::new(ErrorKind::Parse), + pos: GPosIdx::UNKNOWN, + annotations: vec![], + post_msg: Some(msg.to_string()), + } + } pub fn invalid_file(msg: S) -> Self { Self { kind: Box::new(ErrorKind::InvalidFile(msg.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -113,6 +175,7 @@ impl Error { Self { kind: Box::new(ErrorKind::WriteError(msg.to_string())), pos: GPosIdx::UNKNOWN, + annotations: vec![], post_msg: None, } } @@ -122,9 +185,19 @@ impl Error { pub fn message(&self) -> String { self.kind.to_string() } + pub fn annotations(&self) -> Vec<(String, usize, usize)> { + self.annotations + .iter() + .map(|(pos, msg)| { + let (_, s, e) = pos.get_location(); + (msg.to_string(), s, e) + }) + .collect() + } } /// Standard error type for Calyx errors. +#[derive(Clone)] enum ErrorKind { /// Using a reserved keyword as a program identifier. ReservedName(Id), @@ -149,6 +222,8 @@ enum ErrorKind { Papercut(String), // =========== Frontend Errors =============== + /// Parse error + Parse, /// Miscellaneous error message Misc(String), /// The input file is invalid (does not exist). @@ -183,6 +258,9 @@ impl std::fmt::Display for ErrorKind { MalformedStructure(msg) => { write!(f, "Malformed Structure: {msg}") } + Parse => { + write!(f, "Parse error") + } InvalidFile(msg) | WriteError(msg) | Misc(msg) => { write!(f, "{msg}") } @@ -209,3 +287,35 @@ impl From for Error { Error::write_error(format!("serde_json Error: {}", e)) } } + +impl From for MultiError { + fn from(value: std::str::Utf8Error) -> Self { + MultiError { + errors: vec![value.into()], + } + } +} + +impl From for MultiError { + fn from(value: std::io::Error) -> Self { + MultiError { + errors: vec![value.into()], + } + } +} + +impl From for MultiError { + fn from(value: serde_json::Error) -> Self { + MultiError { + errors: vec![value.into()], + } + } +} + +impl From for MultiError { + fn from(value: Error) -> Self { + MultiError { + errors: vec![value], + } + } +} diff --git a/calyx-utils/src/lib.rs b/calyx-utils/src/lib.rs index a08e486900..f7ea268f5f 100644 --- a/calyx-utils/src/lib.rs +++ b/calyx-utils/src/lib.rs @@ -3,17 +3,19 @@ mod errors; mod id; mod namegenerator; mod out_file; +mod pos_string; mod position; mod weight_graph; mod math; pub(crate) mod measure_time; -pub use errors::{CalyxResult, Error}; +pub use errors::{CalyxResult, Error, MultiError}; pub use id::{GSym, GetName, Id}; pub use math::bits_needed_for; pub use namegenerator::NameGenerator; pub use out_file::OutputFile; +pub use pos_string::PosString; pub use position::{ FileIdx, GPosIdx, GlobalPositionTable, PosIdx, PositionTable, WithPos, }; diff --git a/calyx-utils/src/pos_string.rs b/calyx-utils/src/pos_string.rs new file mode 100644 index 0000000000..26528c0d54 --- /dev/null +++ b/calyx-utils/src/pos_string.rs @@ -0,0 +1,60 @@ +use crate::{GPosIdx, WithPos}; + +/// A positioned string. +#[derive(Clone, Debug, Default)] +pub struct PosString { + data: String, + span: GPosIdx, +} + +impl From for PosString { + fn from(data: String) -> PosString { + PosString { + data, + span: GPosIdx::UNKNOWN, + } + } +} + +impl From for String { + fn from(value: PosString) -> String { + value.data + } +} + +impl ToString for PosString { + fn to_string(&self) -> String { + self.data.to_string() + } +} + +impl AsRef for PosString { + fn as_ref(&self) -> &str { + &self.data + } +} + +impl AsRef for PosString { + fn as_ref(&self) -> &std::path::Path { + self.data.as_ref() + } +} + +impl WithPos for PosString { + fn copy_span(&self) -> GPosIdx { + self.span + } +} + +impl PosString { + /// Construct a nw PosString from a String and a span. + pub fn new(data: String, span: GPosIdx) -> Self { + Self { data, span } + } + + /// Add a span to an existing PosString. + pub fn with_span(mut self, span: GPosIdx) -> Self { + self.span = span; + self + } +} diff --git a/calyx-utils/src/position.rs b/calyx-utils/src/position.rs index 4648bb64ba..33b16ab1c5 100644 --- a/calyx-utils/src/position.rs +++ b/calyx-utils/src/position.rs @@ -184,14 +184,13 @@ impl GPosIdx { (buf, out_idx, out_line) } - /// Format this position with a the error message `err_msg` - pub fn format>(&self, err_msg: S) -> String { + /// Format this position with the error message `err_msg` + pub fn format_raw>(&self, err_msg: S) -> String { let table = GlobalPositionTable::as_ref(); let pos_d = table.get_pos(self.0); - let name = &table.get_file_data(pos_d.file).name; let (lines, pos, linum) = self.get_lines(); - let mut buf = name.to_string(); + let mut buf = String::new(); let l = lines[0]; let linum_text = format!("{} ", linum); @@ -201,7 +200,6 @@ impl GPosIdx { l.len() - (pos_d.start - pos), )); let space: String = " ".repeat(pos_d.start - pos); - writeln!(buf).unwrap(); writeln!(buf, "{}|{}", linum_text, l).unwrap(); write!( buf, @@ -215,6 +213,18 @@ impl GPosIdx { buf } + /// Format this position with filename header and the error message `err_msg` + pub fn format>(&self, err_msg: S) -> String { + let table = GlobalPositionTable::as_ref(); + let pos_d = table.get_pos(self.0); + let name = &table.get_file_data(pos_d.file).name; + + let mut buf = name.to_string(); + writeln!(buf).unwrap(); + write!(buf, "{}", self.format_raw(err_msg)).unwrap(); + buf + } + pub fn get_location(&self) -> (&str, usize, usize) { let table = GlobalPositionTable::as_ref(); let pos_d = table.get_pos(self.0); @@ -222,7 +232,7 @@ impl GPosIdx { (name, pos_d.start, pos_d.end) } - /// Visualizes the span without any message or mkaring + /// Visualizes the span without any message or marking pub fn show(&self) -> String { let (lines, _, linum) = self.get_lines(); let l = lines[0]; @@ -236,3 +246,9 @@ pub trait WithPos { /// Copy the span associated with this node. fn copy_span(&self) -> GPosIdx; } + +impl WithPos for GPosIdx { + fn copy_span(&self) -> GPosIdx { + *self + } +} diff --git a/interp/src/errors.rs b/interp/src/errors.rs index 13bf6a641e..bade735a02 100644 --- a/interp/src/errors.rs +++ b/interp/src/errors.rs @@ -3,7 +3,7 @@ use crate::{ flatten::flat_ir::prelude::AssignedValue, utils::assignment_to_string, }; use calyx_ir::{self as ir, Assignment, Id}; -use calyx_utils::Error as CalyxError; +use calyx_utils::{Error as CalyxError, MultiError as CalyxMultiError}; use rustyline::error::ReadlineError; use thiserror::Error; @@ -98,6 +98,10 @@ pub enum InterpreterError { #[error("{0:?}")] CompilerError(Box), + /// Wrapper error for compiler multi errors + #[error("{0:?}")] + CompilerMultiError(Box), + /// There is no main component in the given program #[error("no main component")] MissingMainComponent, @@ -238,6 +242,12 @@ impl From for InterpreterError { } } +impl From for InterpreterError { + fn from(e: CalyxMultiError) -> Self { + Self::CompilerMultiError(Box::new(e)) + } +} + impl From> for InterpreterError { diff --git a/src/main.rs b/src/main.rs index 4317f9222e..786c2172dc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,12 +9,11 @@ mod cmdline; use calyx_backend::BackendOpt; use calyx_frontend as frontend; use calyx_ir as ir; -use calyx_opt::pass_manager::PassManager; -use calyx_utils::CalyxResult; +use calyx_opt::pass_manager::{PassManager, PassResult}; use cmdline::{CompileMode, Opts}; use itertools::Itertools; -fn main() -> CalyxResult<()> { +fn main() -> PassResult<()> { // parse the command line arguments into Opts struct let mut opts = Opts::get_opts()?; @@ -100,6 +99,6 @@ fn main() -> CalyxResult<()> { Ok(()) } else { - opts.run_backend(ctx) + Ok(opts.run_backend(ctx)?) } } diff --git a/tests/errors/comb-component-groups.expect b/tests/errors/comb-component-groups.expect index 9355e5f7b4..04ce3df32a 100644 --- a/tests/errors/comb-component-groups.expect +++ b/tests/errors/comb-component-groups.expect @@ -4,3 +4,7 @@ Error: tests/errors/comb-component-groups.futil 8 | comb group g { | ^^^^^^^^^^^^^^ Malformed Structure: Component `custom_lt` is marked combinational but contains a group `g` + +tests/errors/comb-component-groups.futil +8 | comb group g { + | ^^^^^^^^^^^^^^ Unused combinational group `g' diff --git a/tests/errors/comb-port-in-condition.expect b/tests/errors/comb-port-in-condition.expect index 255fbe7ab7..cd40aeb43c 100644 --- a/tests/errors/comb-port-in-condition.expect +++ b/tests/errors/comb-port-in-condition.expect @@ -1,7 +1,7 @@ ---CODE--- 1 ---STDERR--- -[WARN calyx_opt::passes::well_formed] tests/errors/comb-port-in-condition.futil +[WARN well-formed] tests/errors/comb-port-in-condition.futil 9 | if le.out { seq {} } | ^^^^^^^^^^^^^^^^^^^^ If statement has no comb group and its condition port le.out is unstable Error: tests/errors/comb-port-in-condition.futil diff --git a/tests/errors/comb-static-comp.expect b/tests/errors/comb-static-comp.expect index 65cabc7a64..0693d42b00 100644 --- a/tests/errors/comb-static-comp.expect +++ b/tests/errors/comb-static-comp.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/comb-static-comp.futil`: --> 3:1 - | -3 | comb static<1> component custom_lt(left: 4, right: 4) -> (out: 1) { - | ^------------^ - | - = Cannot have both comb and static annotations +Error: tests/errors/comb-static-comp.futil +3 |comb static<1> component custom_lt(left: 4, right: 4) -> (out: 1) { + |^^^^^^^^^^^^^^ Parse error +Cannot have both comb and static annotations diff --git a/tests/errors/group-comb-conflict.expect b/tests/errors/group-comb-conflict.expect index 3b91f98c49..aa623e231d 100644 --- a/tests/errors/group-comb-conflict.expect +++ b/tests/errors/group-comb-conflict.expect @@ -1,10 +1,12 @@ ---CODE--- 1 ---STDERR--- -Error: Malformed Structure: Obviously conflicting assignments found: -14 | w1.in = r.out; +Error: tests/errors/group-comb-conflict.futil 11 | w1.in = 32'd10; - -tests/errors/group-comb-conflict.futil + | ^^^^^^^^^^^^^^^ Malformed Structure: Obviously conflicting assignments found +... +14 | w1.in = r.out; + | ^^^^^^^^^^^^^^ `w1.in` is also written to here +... 22 | do_r; - | ^^^^^ Assigments activated by group enable + | ^^^^^ Assignments activated by group enable, causing the conflict diff --git a/tests/errors/group-cont-assign-conflict.expect b/tests/errors/group-cont-assign-conflict.expect index d05a796dd2..ac87e65d03 100644 --- a/tests/errors/group-cont-assign-conflict.expect +++ b/tests/errors/group-cont-assign-conflict.expect @@ -1,10 +1,12 @@ ---CODE--- 1 ---STDERR--- -Error: Malformed Structure: Obviously conflicting assignments found: -13 | r.in = 32'd10; +Error: tests/errors/group-cont-assign-conflict.futil 16 | r.in = w1.out; - -tests/errors/group-cont-assign-conflict.futil + | ^^^^^^^^^^^^^^ Malformed Structure: Obviously conflicting assignments found +... +13 | r.in = 32'd10; + | ^^^^^^^^^^^^^^ `r.in` is also written to here +... 19 | do_r; - | ^^^^^ Assigments activated by group enable + | ^^^^^ Assignments activated by group enable, causing the conflict diff --git a/tests/errors/if-cond-conflict.expect b/tests/errors/if-cond-conflict.expect index 3db4accd6c..828edc4721 100644 --- a/tests/errors/if-cond-conflict.expect +++ b/tests/errors/if-cond-conflict.expect @@ -1,10 +1,22 @@ ---CODE--- 1 ---STDERR--- -Error: Malformed Structure: Obviously conflicting assignments found: -14 | w1.in = 32'd2; +Error: tests/errors/if-cond-conflict.futil 11 | w1.in = 32'd1; + | ^^^^^^^^^^^^^^ Malformed Structure: Obviously conflicting assignments found +... +14 | w1.in = 32'd2; + | ^^^^^^^^^^^^^^ `w1.in` is also written to here +... +24 | if w1.out with w1_2 { + | ^^^^^^^^^^^^^^^^^^^^^ Assignments from `w1_2' are activated here, causing the conflict tests/errors/if-cond-conflict.futil -24 | if w1.out with w1_2 { - | ^^^^^^^^^^^^^^^^^^^^^ Assignments from `w1_2' are actived here +14 | w1.in = 32'd2; + | ^^^^^^^^^^^^^^ Malformed Structure: Obviously conflicting assignments found +... +11 | w1.in = 32'd1; + | ^^^^^^^^^^^^^^ `w1.in` is also written to here +... +25 | do_r; + | ^^^^^ Assignments activated by group enable, causing the conflict diff --git a/tests/errors/mem-only-reads.expect b/tests/errors/mem-only-reads.expect index 71fbda7cc9..9df9d9601b 100644 --- a/tests/errors/mem-only-reads.expect +++ b/tests/errors/mem-only-reads.expect @@ -1,4 +1,6 @@ ---CODE--- 1 ---STDERR--- -Error: [Papercut] Only reads performed on memory `mem'. Synthesis tools will remove this memory. Add @external to cell to turn this into an interface memory. +Error: tests/errors/mem-only-reads.futil +5 | mem = comb_mem_d1(32, 4, 4); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Papercut] Only reads performed on memory `mem'. Synthesis tools will remove this memory. Add @external to cell to turn this into an interface memory. diff --git a/tests/errors/multiple-attr-vals.expect b/tests/errors/multiple-attr-vals.expect index d1aa9154d2..5f0853cc76 100644 --- a/tests/errors/multiple-attr-vals.expect +++ b/tests/errors/multiple-attr-vals.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/multiple-attr-vals.futil`: --> 5:5 - | -5 | @external(1) @external(2) r = std_reg(32); - | ^-----------------------^ - | - = Malformed Structure: Multiple entries for attribute: external +Error: tests/errors/multiple-attr-vals.futil +5 | @external(1) @external(2) r = std_reg(32); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ Parse error +Malformed Structure: Multiple entries for attribute: external diff --git a/tests/errors/obvious-conflict.expect b/tests/errors/obvious-conflict.expect index 77fcf9cd9a..bb80a77973 100644 --- a/tests/errors/obvious-conflict.expect +++ b/tests/errors/obvious-conflict.expect @@ -1,7 +1,9 @@ ---CODE--- 1 ---STDERR--- -Error: Malformed Structure: Obviously conflicting assignments found: -11 | r.in = w1.out; +Error: tests/errors/obvious-conflict.futil 12 | r.in = w2.out; - + | ^^^^^^^^^^^^^^ Malformed Structure: Obviously conflicting assignments found +... +11 | r.in = w1.out; + | ^^^^^^^^^^^^^^ `r.in` is also written to here diff --git a/tests/errors/orphan-done.expect b/tests/errors/orphan-done.expect index edeaaf735a..6d23ee2e30 100644 --- a/tests/errors/orphan-done.expect +++ b/tests/errors/orphan-done.expect @@ -1,4 +1,10 @@ ---CODE--- 1 ---STDERR--- -Error: Malformed Structure: Group `two` refers to the done condition of another group (`one`). +Error: tests/errors/orphan-done.futil +16 | one[done] = r.done; + | ^^^^^^^^^^^^^^^^^^^ Malformed Structure: Group `two` refers to the done condition of another group (`one`) + +tests/errors/orphan-done.futil +17 | two[done] = r.done; + | ^^^^^^^^^^^^^^^^^^^ Malformed Structure: Group `two` has multiple done conditions diff --git a/tests/errors/papercut/multi-done.expect b/tests/errors/papercut/multi-done.expect index 2205081840..99f90f2325 100644 --- a/tests/errors/papercut/multi-done.expect +++ b/tests/errors/papercut/multi-done.expect @@ -1,4 +1,6 @@ ---CODE--- 1 ---STDERR--- -Error: [Papercut] Component `mem_0_comp` has an empty control program and does not assign to the done port `write_done`. Without an assignment to the done port, the component cannot return control flow. +Error: tests/errors/papercut/multi-done.futil +2 |component mem_0_comp<"toplevel"=1>(addr0: 3, @go read_en: 1, write_data: 32, @go(2) write_en: 1, @clk clk: 1, @reset reset: 1) -> (read_data: 32, @done read_done: 1, @done(2) write_done: 1) { + |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Papercut] Component `mem_0_comp` has an empty control program and does not assign to the done port `write_done`. Without an assignment to the done port, the component cannot return control flow. diff --git a/tests/errors/papercut/no-control-no-done.expect b/tests/errors/papercut/no-control-no-done.expect index a3b6255457..753f8d5a18 100644 --- a/tests/errors/papercut/no-control-no-done.expect +++ b/tests/errors/papercut/no-control-no-done.expect @@ -1,4 +1,6 @@ ---CODE--- 1 ---STDERR--- -Error: [Papercut] Component `main` has an empty control program and does not assign to the done port `done`. Without an assignment to the done port, the component cannot return control flow. +Error: tests/errors/papercut/no-control-no-done.futil +4 |component main(@go go: 1) -> (@done done: 1) { + |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Papercut] Component `main` has an empty control program and does not assign to the done port `done`. Without an assignment to the done port, the component cannot return control flow. diff --git a/tests/errors/parser/cell-missing-semi.expect b/tests/errors/parser/cell-missing-semi.expect index e7a6b2eb3f..c49c6e4f5d 100644 --- a/tests/errors/parser/cell-missing-semi.expect +++ b/tests/errors/parser/cell-missing-semi.expect @@ -1,10 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/cell-missing-semi.futil`: --> 4:5 - | -4 | h = std_reg(32) -5 | l = std_reg(32);␊ - | ^ - | - = Declaration is missing `;` +Error: tests/errors/parser/cell-missing-semi.futil +4 | h = std_reg(32) + | ^^^^^^^^^^^^^^^ Parse error +Declaration is missing `;` diff --git a/tests/errors/parser/invalid-width.expect b/tests/errors/parser/invalid-width.expect index da317d8965..d21801f019 100644 --- a/tests/errors/parser/invalid-width.expect +++ b/tests/errors/parser/invalid-width.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/invalid-width.futil`: --> 4:12 - | -4 | r.in = 0'd1; - | ^--^ - | - = Cannot represent given literal '1' in 0 bits +Error: tests/errors/parser/invalid-width.futil +4 | r.in = 0'd1; + | ^^^^ Parse error +Cannot represent given literal '1' in 0 bits diff --git a/tests/errors/parser/invalid-width2.expect b/tests/errors/parser/invalid-width2.expect index 9de23ef8b9..e6a346cae9 100644 --- a/tests/errors/parser/invalid-width2.expect +++ b/tests/errors/parser/invalid-width2.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/invalid-width2.futil`: --> 4:12 - | -4 | r.in = 5'xaa; - | ^---^ - | - = Cannot represent given literal 'aa' in 5 bits +Error: tests/errors/parser/invalid-width2.futil +4 | r.in = 5'xaa; + | ^^^^^ Parse error +Cannot represent given literal 'aa' in 5 bits diff --git a/tests/errors/parser/invalid-width3.expect b/tests/errors/parser/invalid-width3.expect index f3c72b88e6..5022484986 100644 --- a/tests/errors/parser/invalid-width3.expect +++ b/tests/errors/parser/invalid-width3.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/invalid-width3.futil`: --> 4:12 - | -4 | r.in = 1'o10; - | ^---^ - | - = Cannot represent given literal '10' in 1 bit +Error: tests/errors/parser/invalid-width3.futil +4 | r.in = 1'o10; + | ^^^^^ Parse error +Cannot represent given literal '10' in 1 bit diff --git a/tests/errors/parser/invalid-width4.expect b/tests/errors/parser/invalid-width4.expect index 5d8eed6e2e..d6d5019636 100644 --- a/tests/errors/parser/invalid-width4.expect +++ b/tests/errors/parser/invalid-width4.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/invalid-width4.futil`: --> 4:12 - | -4 | r.in = 2'd4; - | ^--^ - | - = Cannot represent given literal '4' in 2 bits +Error: tests/errors/parser/invalid-width4.futil +4 | r.in = 2'd4; + | ^^^^ Parse error +Cannot represent given literal '4' in 2 bits diff --git a/tests/errors/parser/num-without-bitwidth.expect b/tests/errors/parser/num-without-bitwidth.expect index 8d09ee7d64..985175bc93 100644 --- a/tests/errors/parser/num-without-bitwidth.expect +++ b/tests/errors/parser/num-without-bitwidth.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/num-without-bitwidth.futil`: --> 4:12 - | -4 | r.in = 1; - | ^ - | - = Expected number with bitwidth (like 32'd10). +Error: tests/errors/parser/num-without-bitwidth.futil +4 | r.in = 1; + | ^ Parse error +Expected number with bitwidth (like 32'd10). diff --git a/tests/errors/parser/sig-missing-comma.expect b/tests/errors/parser/sig-missing-comma.expect index 19531b5518..6646827df0 100644 --- a/tests/errors/parser/sig-missing-comma.expect +++ b/tests/errors/parser/sig-missing-comma.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/sig-missing-comma.futil`: --> 3:5 - | -3 | b: 2 - | ^ - | - = expected comma +Error: tests/errors/parser/sig-missing-comma.futil +3 | b: 2 + | Parse error +expected comma diff --git a/tests/errors/parser/wrong-binary-num.expect b/tests/errors/parser/wrong-binary-num.expect index 0aa04f6064..7ac8e9f787 100644 --- a/tests/errors/parser/wrong-binary-num.expect +++ b/tests/errors/parser/wrong-binary-num.expect @@ -1,9 +1,7 @@ ---CODE--- 1 ---STDERR--- -Error: Failed to parse `tests/errors/parser/wrong-binary-num.futil`: --> 4:16 - | -4 | r.in = 10'b22; - | ^^ - | - = Expected binary number +Error: tests/errors/parser/wrong-binary-num.futil +4 | r.in = 10'b22; + | ^^ Parse error +Expected binary number diff --git a/tests/errors/redefine-external.expect b/tests/errors/redefine-external.expect index d322c2bc35..16a7a84e02 100644 --- a/tests/errors/redefine-external.expect +++ b/tests/errors/redefine-external.expect @@ -1,4 +1,6 @@ ---CODE--- 1 ---STDERR--- -Error: Name `exp' already bound by component or primitive +Error: tests/errors/redefine-external.futil +8 |component exp() -> () { + |^^^^^^^^^^^^^^^^^^^^^^^ Name `exp' already bound by component or primitive diff --git a/tests/errors/while-unstable.expect b/tests/errors/while-unstable.expect index 28b37eda08..e51e91eb9e 100644 --- a/tests/errors/while-unstable.expect +++ b/tests/errors/while-unstable.expect @@ -20,6 +20,6 @@ component main(@go go: 1, @clk clk: 1, @reset reset: 1) -> (@done done: 1) { } } ---STDERR--- -[WARN calyx_opt::passes::well_formed] tests/errors/while-unstable.futil +[WARN well-formed] tests/errors/while-unstable.futil 20 | while lt.out { - | ^^^^^^^^^^^^^^ While loop has no comb group and its condition port lt.out is unstable + | ^^^^^^^^^^^^^^ While loop has no comb group and its condition port `lt.out` is unstable diff --git a/web/rust/src/lib.rs b/web/rust/src/lib.rs index bf43e76bf9..df464b0736 100644 --- a/web/rust/src/lib.rs +++ b/web/rust/src/lib.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use calyx_frontend as frontend; use calyx_ir as ir; -use calyx_opt::pass_manager::PassManager; +use calyx_opt::pass_manager::{PassManager, PassResult}; use calyx_utils::{CalyxResult, Error}; use wasm_bindgen::prelude::*; @@ -29,7 +29,7 @@ fn compile( passes: &[String], library: &str, namespace: &str, -) -> CalyxResult { +) -> PassResult { let pm = PassManager::default_passes()?; let ns = frontend::parser::CalyxParser::parse( From ed4ce6e5980dfb61a289354231dd514105248c7e Mon Sep 17 00:00:00 2001 From: Samuel Thomas Date: Fri, 5 Jul 2024 10:14:47 -0500 Subject: [PATCH 32/76] [hotfix] Fix web compilation error --- calyx-utils/src/pos_string.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/calyx-utils/src/pos_string.rs b/calyx-utils/src/pos_string.rs index 26528c0d54..90c0b96913 100644 --- a/calyx-utils/src/pos_string.rs +++ b/calyx-utils/src/pos_string.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + use crate::{GPosIdx, WithPos}; /// A positioned string. @@ -22,6 +24,12 @@ impl From for String { } } +impl From for PathBuf { + fn from(value: PosString) -> Self { + value.data.into() + } +} + impl ToString for PosString { fn to_string(&self) -> String { self.data.to_string() From ba46a1d080e6d14562b32e3a851cf0d7eee96317 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 8 Jul 2024 11:15:07 -0400 Subject: [PATCH 33/76] Can now print watchpoints & breakpoints --- interp/src/debugger/cidr.rs | 14 +- .../src/debugger/debugging_context/context.rs | 240 ++++++++++++------ 2 files changed, 169 insertions(+), 85 deletions(-) diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/cidr.rs index a86fc52b3d..92aa0314a2 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/cidr.rs @@ -134,7 +134,7 @@ impl + Clone> Debugger { self.debugging_context .advance_time(self.interpreter.get_currently_running_groups()); - for watch in self.debugging_context.process_watchpoints() { + for (idx, watch) in self.debugging_context.hit_watchpoints() { // for target in watch.target() { // if let Ok(msg) = Self::do_print( // self.main_component.name, @@ -214,9 +214,9 @@ impl + Clone> Debugger { Command::Exit => return Err(InterpreterError::Exit.into()), - Command::InfoBreak => { - self.debugging_context.print_breakpoints() - } + Command::InfoBreak => self + .debugging_context + .print_breakpoints(self.program_context.as_ref()), Command::DeleteWatch(targets) => { for target in targets { @@ -240,9 +240,9 @@ impl + Clone> Debugger { group, watch_pos, ), - Command::InfoWatch => { - self.debugging_context.print_watchpoints() - } + Command::InfoWatch => self + .debugging_context + .print_watchpoints(self.program_context.as_ref()), Command::PrintPC(override_flag) => { // if self.source_map.is_some() && !override_flag { // let map = self.source_map.as_ref().unwrap(); diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index ed01f7f9d3..3a453ac8ea 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -2,7 +2,9 @@ use crate::{ debugger::commands::{BreakpointID, BreakpointIdx, WatchID, WatchpointIdx}, flatten::{ flat_ir::prelude::GroupIdx, - structures::{index_trait::impl_index, indexed_map::IndexedMap}, + structures::{ + context::Context, index_trait::impl_index, indexed_map::IndexedMap, + }, }, }; @@ -16,11 +18,12 @@ use super::super::{ use ahash::{HashMap, HashMapExt, HashSet, HashSetExt}; use calyx_ir::Id; +use itertools::Itertools; use owo_colors::OwoColorize; use smallvec::{smallvec, SmallVec}; -use std::fmt::Display; use std::rc::Rc; +use std::{fmt::Display, iter}; #[derive(Debug, Clone)] enum PointStatus { @@ -30,6 +33,15 @@ enum PointStatus { Disabled, } +impl Display for PointStatus { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + PointStatus::Enabled => write!(f, "{}", "enabled".green()), + PointStatus::Disabled => write!(f, "{}", "disabled".red()), + } + } +} + impl PointStatus { pub fn enabled(&self) -> bool { matches!(self, PointStatus::Enabled) @@ -37,7 +49,7 @@ impl PointStatus { } #[derive(Clone, Debug)] -struct BreakPoint { +pub struct BreakPoint { group: GroupIdx, state: PointStatus, } @@ -58,10 +70,15 @@ impl BreakPoint { pub fn is_enabled(&self) -> bool { matches!(self.state, PointStatus::Enabled) } + + pub fn format(&self, ctx: &Context) -> String { + let group_name = ctx.lookup_name(self.group); + format!("{}: {}", group_name, self.state) + } } #[derive(Debug, Clone)] -struct WatchPoint { +pub struct WatchPoint { group: GroupIdx, state: PointStatus, print_details: PrintTuple, @@ -79,6 +96,18 @@ impl WatchPoint { pub fn is_disabled(&self) -> bool { matches!(self.state, PointStatus::Disabled) } + + pub fn is_enabled(&self) -> bool { + matches!(self.state, PointStatus::Enabled) + } + + pub fn group(&self) -> GroupIdx { + self.group + } + + pub fn print_details(&self) -> &PrintTuple { + &self.print_details + } } // impl Display for WatchPoint { @@ -190,6 +219,10 @@ impl BreakpointMap { self.breakpoints.remove(&idx); } } + + fn iter(&self) -> impl Iterator { + self.breakpoints.iter() + } } #[derive(Debug)] @@ -338,16 +371,16 @@ impl WatchpointMap { .or_else(|| self.watchpoints_after.remove(&idx)); if let Some(point) = point { - self.group_idx_map - .get_mut(&point.group) - .map(|idxs| match idxs { + if let Some(idxs) = self.group_idx_map.get_mut(&point.group) { + match idxs { WatchPointIndices::Before(b) => b.retain(|i| *i != idx), WatchPointIndices::After(a) => a.retain(|i| *i != idx), WatchPointIndices::Both { before, after } => { before.retain(|i| *i != idx); after.retain(|i| *i != idx); } - }); + } + } } } @@ -375,6 +408,24 @@ impl WatchpointMap { } } } + + fn iter_before( + &self, + ) -> impl Iterator { + self.watchpoints_before.iter() + } + + fn iter_after( + &self, + ) -> impl Iterator { + self.watchpoints_after.iter() + } + + fn iter_groups( + &self, + ) -> impl Iterator { + self.group_idx_map.iter() + } } #[derive(Debug)] @@ -575,75 +626,108 @@ impl DebuggingContext { self.group_info.shift_current(group_map); } - pub fn process_watchpoints(&self) -> Vec<&'_ PrintTuple> { - // let mut output_vec: Vec<_> = vec![]; - - // let before_iter = self.group_exec_info.groups_new_on().filter(|x| { - // if let Some((state, _)) = self.watchpoints_before.get(x) { - // return state.enabled(); - // } - // false - // }); - - // let after_iter = self.group_exec_info.groups_new_off().filter(|x| { - // if let Some((state, _)) = self.watchpoints_after.get(x) { - // return state.enabled(); - // } - // false - // }); - - // for target in before_iter { - // if let Some(x) = self.watchpoints_before.get(target) { - // for val in x.1.iter() { - // output_vec.push(&val.print_details) - // } - // } - // } - - // for target in after_iter { - // if let Some(x) = self.watchpoints_after.get(target) { - // for val in x.1.iter() { - // output_vec.push(&val.print_details) - // } - // } - // } - - // output_vec - - todo!() - } - - pub fn print_breakpoints(&self) { - // println!("{}Current breakpoints:", SPACING); - // for breakpoint in self.breakpoints.values() { - // println!("{}{:?}", SPACING, breakpoint.red().bold()) - // } - - todo!() - } - - pub fn print_watchpoints(&self) { - todo!() - // println!("{}Current watchpoints:", SPACING); - // let inner_spacing = format!("{} ", SPACING); - // let outer_spacing = format!("{} ", SPACING); - - // for (group, (_brk, watchpoints)) in self.watchpoints_before.iter() { - // println!("{}Before {}:", outer_spacing, group.magenta().bold()); - // for watchpoint in watchpoints.iter() { - // println!("{}{}", inner_spacing, watchpoint.magenta()); - // } - // } - - // println!(); - - // for (group, (_brk, watchpoints)) in self.watchpoints_after.iter() { - // if !watchpoints.is_empty() { - // println!("{}After {}:", outer_spacing, group.green().bold()); - // for watchpoint in watchpoints.iter() { - // println!("{}{}", inner_spacing, watchpoint.green()); - // } - // } - // } + pub fn hit_watchpoints( + &self, + ) -> impl Iterator + '_ { + let before_iter = self + .group_info + .groups_new_on() + .filter(|x| self.watchpoints.get_by_group(**x).is_some()) + .flat_map(|&x| { + let watchpoint_indicies = + self.watchpoints.get_by_group(x).unwrap(); + match watchpoint_indicies { + WatchPointIndices::Before(x) => return x.iter(), + WatchPointIndices::Both { before, .. } => { + return before.iter() + } + // this is stupid but works + _ => [].iter(), + } + }); + + let after_iter = self + .group_info + .groups_new_off() + .filter(|x| self.watchpoints.get_by_group(**x).is_some()) + .flat_map(|&x| { + let watchpoint_indicies = + self.watchpoints.get_by_group(x).unwrap(); + match watchpoint_indicies { + WatchPointIndices::After(x) => return x.iter(), + WatchPointIndices::Both { after, .. } => { + return after.iter() + } + // this is stupid but works + _ => [].iter(), + } + }); + + before_iter.chain(after_iter).filter_map(|watchpoint_idx| { + let watchpoint = + self.watchpoints.get_by_idx(*watchpoint_idx).unwrap(); + + if watchpoint.is_disabled() { + None + } else { + Some((*watchpoint_idx, watchpoint)) + } + }) + } + + pub fn print_breakpoints(&self, ctx: &Context) { + println!("{}Current breakpoints:", SPACING); + for (breakpoint_idx, breakpoint) in self.breakpoints.iter() { + println!("{SPACING}({breakpoint_idx}) {}", breakpoint.format(ctx)) + } + } + + pub fn print_watchpoints(&self, ctx: &Context) { + println!("{}Current watchpoints:", SPACING); + let inner_spacing = SPACING.to_string() + " "; + let outer_spacing = SPACING.to_string() + " "; + + for (group, indicies) in self.watchpoints.iter_groups() { + let group_name = ctx.lookup_name(*group); + + if indicies.get_before().is_some() { + println!( + "{outer_spacing}Before {}:", + group_name.magenta().bold() + ); + } + for watchpoint_idx in indicies + .get_before() + .map(|x| x.iter()) + .unwrap_or_else(|| [].iter()) + { + let watchpoint = + self.watchpoints.get_by_idx(*watchpoint_idx).unwrap(); + println!( + "{inner_spacing} ({watchpoint_idx}): {} {}", + &watchpoint.print_details, watchpoint.state + ); + } + + if indicies.get_after().is_some() { + println!( + "{outer_spacing}After {}:", + group_name.magenta().bold() + ); + } + + for watchpoint_idx in indicies + .get_after() + .map(|x| x.iter()) + .unwrap_or_else(|| [].iter()) + { + let watchpoint = + self.watchpoints.get_by_idx(*watchpoint_idx).unwrap(); + println!( + "{inner_spacing} ({watchpoint_idx}): {} {}", + &watchpoint.print_details, watchpoint.state + ); + } + } } } From 06fe5a4bf4af467503098476f557a202aa44a8ed Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 8 Jul 2024 11:45:28 -0400 Subject: [PATCH 34/76] Use strings instead of Id for the parsed input --- interp/src/debugger/cidr.rs | 8 +-- .../src/debugger/commands/command_parser.rs | 6 +-- interp/src/debugger/commands/core.rs | 51 +++++++++---------- 3 files changed, 32 insertions(+), 33 deletions(-) diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/cidr.rs index 92aa0314a2..ce08c8bc64 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/cidr.rs @@ -348,7 +348,7 @@ impl + Clone> Debugger { fn create_watchpoint( &mut self, - print_target: Vec>, + print_target: Vec>, print_code: Option, print_mode: PrintMode, group: super::commands::ParsedGroupName, @@ -423,9 +423,11 @@ impl + Clone> Debugger { } } + fn parse_name(self, name: &str) {} + fn do_print( &self, - print_lists: Vec>, + print_lists: Vec>, code: Option, print_mode: PrintMode, ) { @@ -464,7 +466,7 @@ impl + Clone> Debugger { fn construct_print_string( &self, - print_list: &Vec, + print_list: &Vec, code: Option, print_mode: PrintMode, ) -> Result { diff --git a/interp/src/debugger/commands/command_parser.rs b/interp/src/debugger/commands/command_parser.rs index 2a2d0fe798..2b129d6493 100644 --- a/interp/src/debugger/commands/command_parser.rs +++ b/interp/src/debugger/commands/command_parser.rs @@ -115,8 +115,8 @@ impl CommandParser { // ---------------------- - fn identifier(input: Node) -> ParseResult { - Ok(Id::new(input.as_str())) + fn identifier(input: Node) -> ParseResult { + Ok(input.as_str().to_owned()) } fn group(input: Node) -> ParseResult { @@ -146,7 +146,7 @@ impl CommandParser { )) } - fn name(input: Node) -> ParseResult> { + fn name(input: Node) -> ParseResult> { Ok(match_nodes!(input.into_children(); [identifier(ident)..] => ident.collect() )) diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index ddcb758c89..b24b468856 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -43,22 +43,19 @@ impl Display for WatchpointIdx { #[derive(Debug)] pub struct ParsedGroupName { - component: Option, - group: calyx_ir::Id, + component: Option, + group: String, } impl ParsedGroupName { - pub fn from_group_name(group: calyx_ir::Id) -> Self { + pub fn from_group_name(group: String) -> Self { Self { component: None, group, } } - pub fn from_comp_and_group( - component: calyx_ir::Id, - group: calyx_ir::Id, - ) -> Self { + pub fn from_comp_and_group(component: String, group: String) -> Self { Self { component: Some(component), group, @@ -69,18 +66,18 @@ impl ParsedGroupName { self.component.is_some() } - pub fn concretize(&self, component: calyx_ir::Id) -> GroupName { + pub fn concretize(&self, component: String) -> GroupName { GroupName { - component: self.component.unwrap_or(component), - group: self.group, + component: self.component.as_ref().cloned().unwrap_or(component), + group: self.group.clone(), } } pub fn get_concrete(&self) -> Option { if self.is_concrete() { Some(GroupName { - component: self.component.unwrap(), - group: self.group, + component: self.component.as_ref().cloned().unwrap(), + group: self.group.clone(), }) } else { None @@ -107,8 +104,8 @@ impl ParsedGroupName { #[derive(Debug, Clone)] pub struct GroupName { - pub component: Id, - pub group: Id, + pub component: String, + pub group: String, } pub enum ParsedBreakPointID { @@ -228,10 +225,10 @@ pub enum PrintMode { Port, } #[derive(Debug, Clone)] -pub struct PrintTuple(Vec>, Option, PrintMode); +pub struct PrintTuple(Vec>, Option, PrintMode); impl PrintTuple { - pub fn target(&self) -> &Vec> { + pub fn target(&self) -> &Vec> { &self.0 } @@ -244,8 +241,8 @@ impl PrintTuple { } } -impl From<(Vec>, Option, PrintMode)> for PrintTuple { - fn from(val: (Vec>, Option, PrintMode)) -> Self { +impl From<(Vec>, Option, PrintMode)> for PrintTuple { + fn from(val: (Vec>, Option, PrintMode)) -> Self { PrintTuple(val.0, val.1, val.2) } } @@ -277,15 +274,15 @@ impl Display for PrintTuple { } pub enum Command { - Step(u32), // Step execution - Continue, // Execute until breakpoint - Empty, // Empty command, does nothing - Display, // Display full environment contents - Print(Vec>, Option, PrintMode), // Print something + Step(u32), // Step execution + Continue, // Execute until breakpoint + Empty, // Empty command, does nothing + Display, // Display full environment contents + Print(Vec>, Option, PrintMode), // Print something Break(Vec), // Create a breakpoint - Help, // Help message - Exit, // Exit the debugger - InfoBreak, // List breakpoints + Help, // Help message + Exit, // Exit the debugger + InfoBreak, // List breakpoints InfoWatch, Disable(Vec), Enable(Vec), @@ -295,7 +292,7 @@ pub enum Command { Watch( ParsedGroupName, WatchPosition, - Vec>, + Vec>, Option, PrintMode, ), From 259c2c85991dc3eb1af118ec89a4aa453e71e7c5 Mon Sep 17 00:00:00 2001 From: ok <59588824+jku20@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:29:32 -0400 Subject: [PATCH 35/76] [fud2] update path finding to support multi state input and output (#2134) This PR begins progress towards addressing #1958. It updates the algorithm used by `fud2` for finding paths from input files to output files to take in operations which have many inputs and outputs. The behavior concurs with the current `fud2` in some but not all cases and does not maintain `fud2`'s always finding the shortest path of operations. Specifying operations themselves and emitting the Ninja file still assume single state inputs and outputs. This will be changed in further PRs. --- fud2/fud-core/src/cli.rs | 107 ++++-- fud2/fud-core/src/exec/data.rs | 6 +- fud2/fud-core/src/exec/driver.rs | 341 ++++++++++-------- fud2/fud-core/src/exec/mod.rs | 4 +- fud2/fud-core/src/exec/planner.rs | 171 +++++++++ fud2/fud-core/src/exec/request.rs | 15 +- fud2/fud-core/src/run.rs | 128 ++++--- fud2/fud-core/src/script/exec_scripts.rs | 10 +- fud2/fud-core/src/script/plugin.rs | 9 +- fud2/fud-core/tests/tests.rs | 1 + fud2/src/lib.rs | 97 ++--- .../snapshots/tests__test@calyx_debug.snap | 4 +- ...sts__test@calyx_firrtl_verilog-refmem.snap | 12 +- .../tests__test@calyx_icarus_dat.snap | 12 +- .../tests__test@calyx_icarus_vcd.snap | 12 +- .../tests__test@calyx_interp_dat.snap | 6 +- .../tests__test@calyx_verilator_dat.snap | 14 +- .../tests__test@calyx_verilator_vcd.snap | 14 +- .../snapshots/tests__test@calyx_verilog.snap | 4 +- .../tests__test@calyx_xrt-trace_vcd.snap | 14 +- .../snapshots/tests__test@calyx_xrt_dat.snap | 14 +- .../snapshots/tests__test@dahlia_calyx.snap | 4 +- .../snapshots/tests__test@mrxl_calyx.snap | 4 +- fud2/tests/tests.rs | 38 +- 24 files changed, 673 insertions(+), 368 deletions(-) create mode 100644 fud2/fud-core/src/exec/planner.rs create mode 100644 fud2/fud-core/tests/tests.rs diff --git a/fud2/fud-core/src/cli.rs b/fud2/fud-core/src/cli.rs index 2a3de2fd64..ef64f808da 100644 --- a/fud2/fud-core/src/cli.rs +++ b/fud2/fud-core/src/cli.rs @@ -1,5 +1,7 @@ use crate::config; -use crate::exec::{Driver, Request, StateRef}; +use crate::exec::{ + Driver, EnumeratePlanner, Request, SingleOpOutputPlanner, StateRef, +}; use crate::run::Run; use anyhow::{anyhow, bail}; use argh::FromArgs; @@ -91,19 +93,23 @@ struct FakeArgs { /// the input file #[argh(positional)] - input: Option, + input: Vec, /// the output file #[argh(option, short = 'o')] - output: Option, + output: Vec, - /// the state to start from + /// the states to start from. + /// The ith state is applied to the ith input file. + /// If more states are specified than files, files for these states are read from stdin. #[argh(option)] - from: Option, + from: Vec, /// the state to produce + /// The ith state is applied to the ith output file. + /// If more states are specified than files, files for these states are written to stdout #[argh(option)] - to: Option, + to: Vec, /// execution mode (run, plan, emit, gen, dot) #[argh(option, short = 'm', default = "Mode::Run")] @@ -132,34 +138,63 @@ struct FakeArgs { /// log level for debugging fud internal #[argh(option, long = "log", default = "log::LevelFilter::Warn")] pub log_level: log::LevelFilter, + + /// use new enumeration algorithm for finding operation sequences + #[argh(switch)] + planner: bool, } -fn from_state(driver: &Driver, args: &FakeArgs) -> anyhow::Result { - match &args.from { - Some(name) => driver - .get_state(name) - .ok_or(anyhow!("unknown --from state")), - None => match args.input { - Some(ref input) => driver - .guess_state(input) - .ok_or(anyhow!("could not infer input state")), - None => bail!("specify an input file or use --from"), - }, +fn get_states_with_errors( + driver: &Driver, + explicit_states: &[String], + files: &[Utf8PathBuf], + unknown_state: &str, + uninferable_file: &str, + no_states: &str, +) -> anyhow::Result> { + let explicit_states = explicit_states.iter().map(|state_str| { + driver + .get_state(state_str) + .ok_or(anyhow!("{unknown_state}")) + }); + let inferred_states = + files.iter().skip(explicit_states.len()).map(|input_str| { + driver + .guess_state(input_str) + .ok_or(anyhow!("{uninferable_file}")) + }); + let states = explicit_states + .chain(inferred_states) + .collect::, _>>()?; + if states.is_empty() { + bail!("{no_states}"); } + Ok(states) } -fn to_state(driver: &Driver, args: &FakeArgs) -> anyhow::Result { - match &args.to { - Some(name) => { - driver.get_state(name).ok_or(anyhow!("unknown --to state")) - } - None => match &args.output { - Some(out) => driver - .guess_state(out) - .ok_or(anyhow!("could not infer output state")), - None => Err(anyhow!("specify an output file or use --to")), - }, - } +fn from_states( + driver: &Driver, + args: &FakeArgs, +) -> anyhow::Result> { + get_states_with_errors( + driver, + &args.from, + &args.input, + "unknown --from state", + "could not infer input state", + "specify and input file or use --from", + ) +} + +fn to_state(driver: &Driver, args: &FakeArgs) -> anyhow::Result> { + get_states_with_errors( + driver, + &args.to, + &args.output, + "unknown --to state", + "could no infer output state", + "specify an output file or use --to", + ) } fn get_request(driver: &Driver, args: &FakeArgs) -> anyhow::Result { @@ -185,14 +220,18 @@ fn get_request(driver: &Driver, args: &FakeArgs) -> anyhow::Result { .ok_or(anyhow!("unknown --through op {}", s)) }) .collect(); - Ok(Request { - start_file: args.input.clone(), - start_state: from_state(driver, args)?, - end_file: args.output.clone(), - end_state: to_state(driver, args)?, + start_files: args.input.clone(), + start_states: from_states(driver, args)?, + end_files: args.output.clone(), + end_states: to_state(driver, args)?, through: through?, workdir, + planner: if args.planner { + Box::new(EnumeratePlanner {}) + } else { + Box::new(SingleOpOutputPlanner {}) + }, }) } diff --git a/fud2/fud-core/src/exec/data.rs b/fud2/fud-core/src/exec/data.rs index 8dbda63860..22e7193ef7 100644 --- a/fud2/fud-core/src/exec/data.rs +++ b/fud2/fud-core/src/exec/data.rs @@ -24,7 +24,7 @@ impl State { self.extensions.iter().any(|e| e == ext) } - /// Is this a "pseudo-state": doesn't correspond to an actual file, and must be an output state? + /// Is this a "pseudo-state": doesn't correspond to an actual file pub fn is_pseudo(&self) -> bool { self.extensions.is_empty() } @@ -38,8 +38,8 @@ entity_impl!(StateRef, "state"); /// An Operation transforms files from one State to another. pub struct Operation { pub name: String, - pub input: StateRef, - pub output: StateRef, + pub input: Vec, + pub output: Vec, pub setups: Vec, pub emit: Box, /// Describes where this operation was defined. diff --git a/fud2/fud-core/src/exec/driver.rs b/fud2/fud-core/src/exec/driver.rs index 94581989a5..da7c1a1bd3 100644 --- a/fud2/fud-core/src/exec/driver.rs +++ b/fud2/fud-core/src/exec/driver.rs @@ -1,16 +1,10 @@ use super::{OpRef, Operation, Request, Setup, SetupRef, State, StateRef}; use crate::{config, run, script, utils}; use camino::{Utf8Path, Utf8PathBuf}; -use cranelift_entity::{PrimaryMap, SecondaryMap}; +use cranelift_entity::PrimaryMap; use rand::distributions::{Alphanumeric, DistString}; use std::{collections::HashMap, error::Error, ffi::OsStr, fmt::Display}; -#[derive(PartialEq)] -enum Destination { - State(StateRef), - Op(OpRef), -} - type FileData = HashMap<&'static str, &'static [u8]>; /// A Driver encapsulates a set of States and the Operations that can transform between them. It @@ -25,104 +19,129 @@ pub struct Driver { } impl Driver { - /// Find a chain of Operations from the `start` state to the `end`, which may be a state or the - /// final operation in the chain. - fn find_path_segment( + /// Generate a filename with an extension appropriate for the given State, `state_ref` relative + /// to `workdir`. + /// + /// If `used` is false, the state is neither an output to the user, or used as input an op. In + /// this case, the filename associated with the state will be prefixed by `_unused_`. + fn gen_name( &self, - start: StateRef, - end: Destination, - ) -> Option> { - // Our start state is the input. - let mut visited = SecondaryMap::::new(); - visited[start] = true; - - // Build the incoming edges for each vertex. - let mut breadcrumbs = SecondaryMap::>::new(); - - // Breadth-first search. - let mut state_queue: Vec = vec![start]; - while !state_queue.is_empty() { - let cur_state = state_queue.remove(0); - - // Finish when we reach the goal vertex. - if end == Destination::State(cur_state) { - break; - } + state_ref: StateRef, + used: bool, + workdir: &Utf8PathBuf, + ) -> IO { + let state = &self.states[state_ref]; + + let prefix = if !used { "_unused_" } else { "" }; + let extension = if !state.extensions.is_empty() { + &state.extensions[0] + } else { + "" + }; - // Traverse any edge from the current state to an unvisited state. - for (op_ref, op) in self.ops.iter() { - if op.input == cur_state && !visited[op.output] { - state_queue.push(op.output); - visited[op.output] = true; - breadcrumbs[op.output] = Some(op_ref); - } - - // Finish when we reach the goal edge. - if end == Destination::Op(op_ref) { - break; - } - } - } + IO::File(if state.is_pseudo() { + utils::relative_path( + &Utf8PathBuf::from(format!("{}pseudo_{}", prefix, state.name)), + workdir, + ) + } else { + // TODO avoid collisions in case of reused extensions... + utils::relative_path( + &Utf8PathBuf::from(format!("{}{}", prefix, state.name)) + .with_extension(extension), + workdir, + ) + }) + } - // Traverse the breadcrumbs backward to build up the path back from output to input. - let mut op_path: Vec = vec![]; - let mut cur_state = match end { - Destination::State(state) => state, - Destination::Op(op) => { - op_path.push(op); - self.ops[op].input - } + /// Generates a filename for a state tagged with if the file should be read from StdIO and path + /// name relative to `workdir`. + /// + /// The state is searched for in `states`. If it is found, the name at the same index in `files` is + /// returned, else `stdio_name` is returned. + /// + /// If the state is not in states, new name is generated. + /// This name will be prefixed by `_unused_` if unused is `true`. This signifies the file is + /// neither requested as an output by the user nor used as input to any op. + fn gen_name_or_use_given( + &self, + state_ref: StateRef, + states: &[StateRef], + files: &[Utf8PathBuf], + stdio_name: &str, + used: bool, + workdir: &Utf8PathBuf, + ) -> IO { + let state = &self.states[state_ref]; + let extension = if !state.extensions.is_empty() { + &state.extensions[0] + } else { + "" }; - while cur_state != start { - match breadcrumbs[cur_state] { - Some(op) => { - op_path.push(op); - cur_state = self.ops[op].input; - } - None => return None, + + if let Some(idx) = states.iter().position(|&s| s == state_ref) { + if let Some(filename) = files.get(idx) { + IO::File(utils::relative_path(&filename.clone(), workdir)) + } else { + IO::StdIO(utils::relative_path( + &Utf8PathBuf::from(stdio_name).with_extension(extension), + workdir, + )) } + } else { + self.gen_name(state_ref, used, workdir) } - op_path.reverse(); - - Some(op_path) } - /// Find a chain of operations from the `start` state to the `end` state, passing through each - /// `through` operation in order. - pub fn find_path( + /// Generates a vector contianing filenames for files of each state in `states`. + /// + /// `req` is used to generate filenames as inputs and outputs may want to takes names from + /// `req.end_files` or `req.start_files`. + /// + /// `input` is true if all states in `states` are an input to an op. + /// `used` is the states in `states` which are an input to another op or in `req.end_states`. + fn gen_names( &self, - start: StateRef, - end: StateRef, - through: &[OpRef], - ) -> Option> { - let mut cur_state = start; - let mut op_path: Vec = vec![]; - - // Build path segments through each through required operation. - for op in through { - let segment = - self.find_path_segment(cur_state, Destination::Op(*op))?; - op_path.extend(segment); - cur_state = self.ops[*op].output; - } - - // Build the final path segment to the destination state. - let segment = - self.find_path_segment(cur_state, Destination::State(end))?; - op_path.extend(segment); - - Some(op_path) - } + states: &[StateRef], + req: &Request, + input: bool, + used: &[StateRef], + ) -> Vec { + // Inputs cannot be results, so look at starting states, else look at ending states. + let req_states = if input { + &req.start_states + } else { + &req.end_states + }; - /// Generate a filename with an extension appropriate for the given State. - fn gen_name(&self, stem: &str, state: StateRef) -> Utf8PathBuf { - let state = &self.states[state]; - if state.is_pseudo() { - Utf8PathBuf::from(format!("_pseudo_{}", state.name)) + // Inputs cannot be results, so look at starting files, else look at ending files. + let req_files = if input { + &req.start_files } else { - // TODO avoid collisions in case we reuse extensions... - Utf8PathBuf::from(stem).with_extension(&state.extensions[0]) - } + &req.end_files + }; + // The above lists can't be the concatination of the two branches because start and end + // states are not necessarily disjoint, but they could still have different files assigned + // to each state. + + states + .iter() + .map(|&state| { + let stdio_name = if input { + format!("_from_stdin_{}", self.states[state].name) + } else { + format!("_to_stdout_{}", self.states[state].name) + }; + self.gen_name_or_use_given( + state, + req_states, + req_files, + &stdio_name, + input || used.contains(&state), + &req.workdir, + ) + }) + .collect() } /// Concoct a plan to carry out the requested build. @@ -130,42 +149,37 @@ impl Driver { /// This works by searching for a path through the available operations from the input state /// to the output state. If no such path exists in the operation graph, we return None. pub fn plan(&self, req: Request) -> Option { - // Find a path through the states. - let path = - self.find_path(req.start_state, req.end_state, &req.through)?; - - let mut steps: Vec<(OpRef, Utf8PathBuf)> = vec![]; - - // Get the initial input filename and the stem to use to generate all intermediate filenames. - let (stdin, start_file) = match req.start_file { - Some(path) => (false, utils::relative_path(&path, &req.workdir)), - None => (true, "stdin".into()), - }; - let stem = start_file.file_stem().unwrap(); + // Find a plan through the states. + let path = req.planner.find_plan( + &req.start_states, + &req.end_states, + &req.through, + &self.ops, + )?; // Generate filenames for each step. - steps.extend(path.into_iter().map(|op| { - let filename = self.gen_name(stem, self.ops[op].output); - (op, filename) - })); - - // If we have a specified output filename, use that instead of the generated one. - let stdout = if let Some(end_file) = req.end_file { - // TODO Can we just avoid generating the unused filename in the first place? - let last_step = steps.last_mut().expect("no steps"); - last_step.1 = utils::relative_path(&end_file, &req.workdir); - false - } else { - // Print to stdout if the last state is a real (non-pseudo) state. - !self.states[req.end_state].is_pseudo() - }; + let steps = path + .into_iter() + .map(|(op, used)| { + let input_filenames = + self.gen_names(&self.ops[op].input, &req, true, &used); + let output_filenames = + self.gen_names(&self.ops[op].output, &req, false, &used); + (op, input_filenames, output_filenames) + }) + .collect::>(); + + // Collect filenames of inputs and outputs + let results = + self.gen_names(&req.end_states, &req, false, &req.end_states); + let inputs = + self.gen_names(&req.start_states, &req, true, &req.start_states); Some(Plan { - start: start_file, steps, + inputs, + results, workdir: req.workdir, - stdin, - stdout, }) } @@ -240,8 +254,8 @@ impl Driver { println!( " {}: {} -> {}{}", op.name, - self.states[op.input].name, - self.states[op.output].name, + self.states[op.input[0]].name, + self.states[op.output[0]].name, dev_info ); } @@ -341,15 +355,15 @@ impl DriverBuilder { &mut self, name: &str, setups: &[SetupRef], - input: StateRef, - output: StateRef, + input: &[StateRef], + output: &[StateRef], emit: T, ) -> OpRef { self.ops.push(Operation { name: name.into(), setups: setups.into(), - input, - output, + input: input.into(), + output: output.into(), emit: Box::new(emit), source: None, }) @@ -363,7 +377,7 @@ impl DriverBuilder { output: StateRef, build: run::EmitBuildFn, ) -> OpRef { - self.add_op(name, setups, input, output, build) + self.add_op(name, setups, &[input], &[output], build) } pub fn op_source(&mut self, op: OpRef, src: S) { @@ -380,8 +394,8 @@ impl DriverBuilder { self.add_op( rule_name, setups, - input, - output, + &[input], + &[output], run::EmitRuleBuild { rule_name: rule_name.to_string(), }, @@ -455,29 +469,52 @@ impl DriverBuilder { } } +/// A file tagged with its input source. +#[derive(Debug, Clone)] +pub enum IO { + /// A file at a given path which is to be read from stdin or output to stdout. + StdIO(Utf8PathBuf), + /// A file at a given path which need not be read from stdin or output ot stdout. + File(Utf8PathBuf), +} + +impl IO { + /// Returns the filename of the file `self` represents + pub fn filename(&self) -> &Utf8PathBuf { + match self { + Self::StdIO(p) => p, + Self::File(p) => p, + } + } + + /// Returns if `self` is a `StdIO`. + pub fn is_from_stdio(&self) -> bool { + match self { + Self::StdIO(_) => true, + Self::File(_) => false, + } + } +} + +impl Display for IO { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.filename()) + } +} + #[derive(Debug)] pub struct Plan { - /// The input to the first step. - pub start: Utf8PathBuf, + /// The chain of operations to run and each step's input and output files. + pub steps: Vec<(OpRef, Vec, Vec)>, - /// The chain of operations to run and each step's output file. - pub steps: Vec<(OpRef, Utf8PathBuf)>, + /// The inputs used to generate the results. + /// Earlier elements of inputs should be read before later ones. + pub inputs: Vec, + + /// The resulting files of the plan. + /// Earlier elements of inputs should be written before later ones. + pub results: Vec, /// The directory that the build will happen in. pub workdir: Utf8PathBuf, - - /// Read the first input from stdin. - pub stdin: bool, - - /// Write the final output to stdout. - pub stdout: bool, -} - -impl Plan { - pub fn end(&self) -> &Utf8Path { - match self.steps.last() { - Some((_, path)) => path, - None => &self.start, - } - } } diff --git a/fud2/fud-core/src/exec/mod.rs b/fud2/fud-core/src/exec/mod.rs index 48895a4b17..8a17549929 100644 --- a/fud2/fud-core/src/exec/mod.rs +++ b/fud2/fud-core/src/exec/mod.rs @@ -1,8 +1,10 @@ mod data; mod driver; +mod planner; mod request; pub use data::{OpRef, SetupRef, StateRef}; pub(super) use data::{Operation, Setup, State}; -pub use driver::{Driver, DriverBuilder, Plan}; +pub use driver::{Driver, DriverBuilder, Plan, IO}; +pub use planner::{EnumeratePlanner, FindPlan, SingleOpOutputPlanner}; pub use request::Request; diff --git a/fud2/fud-core/src/exec/planner.rs b/fud2/fud-core/src/exec/planner.rs new file mode 100644 index 0000000000..49adc1dada --- /dev/null +++ b/fud2/fud-core/src/exec/planner.rs @@ -0,0 +1,171 @@ +use cranelift_entity::{PrimaryMap, SecondaryMap}; + +use super::{OpRef, Operation, StateRef}; + +/// `Step` is an op paired with its used outputs. +type Step = (OpRef, Vec); + +/// A reified function for finding a sequence of operations taking a start set of states to an end +/// set of states while guaranteing a set of "though" operations is used in the sequence. +pub trait FindPlan: std::fmt::Debug { + /// Returns a sequence of `Step`s to transform `start` to `end`. The `Step`s are guaranteed to + /// contain all ops in `through`. If no such sequence exists, `None` is returned. + /// + /// `ops` is a complete list of operations. + fn find_plan( + &self, + start: &[StateRef], + end: &[StateRef], + through: &[OpRef], + ops: &PrimaryMap, + ) -> Option>; +} + +#[derive(Debug, Default)] +pub struct EnumeratePlanner {} +impl EnumeratePlanner { + pub fn new() -> Self { + EnumeratePlanner {} + } + /// Returns a sequence of `Step`s to transform `start` to `end`. The `Step`s are guaranteed to + /// contain all ops in `through`. If no such sequence exists, `None` is returned. + /// + /// `ops` is a complete list of operations. + fn find_plan( + _start: &[StateRef], + _end: &[StateRef], + _through: &[OpRef], + _ops: &PrimaryMap, + ) -> Option> { + todo!() + } +} + +impl FindPlan for EnumeratePlanner { + fn find_plan( + &self, + start: &[StateRef], + end: &[StateRef], + through: &[OpRef], + ops: &PrimaryMap, + ) -> Option> { + Self::find_plan(start, end, through, ops) + } +} + +#[derive(PartialEq)] +enum Destination { + State(StateRef), + Op(OpRef), +} + +#[derive(Debug, Default)] +pub struct SingleOpOutputPlanner {} +impl SingleOpOutputPlanner { + /// Find a chain of Operations from the `start` state to the `end`, which may be a state or the + /// final operation in the chain. + fn find_path_segment( + start: StateRef, + end: Destination, + ops: &PrimaryMap, + ) -> Option> { + // Our start state is the input. + let mut visited = SecondaryMap::::new(); + visited[start] = true; + + // Build the incoming edges for each vertex. + let mut breadcrumbs = SecondaryMap::>::new(); + + // Breadth-first search. + let mut state_queue: Vec = vec![start]; + while !state_queue.is_empty() { + let cur_state = state_queue.remove(0); + + // Finish when we reach the goal vertex. + if end == Destination::State(cur_state) { + break; + } + + // Traverse any edge from the current state to an unvisited state. + for (op_ref, op) in ops.iter() { + if op.input[0] == cur_state && !visited[op.output[0]] { + state_queue.push(op.output[0]); + visited[op.output[0]] = true; + breadcrumbs[op.output[0]] = Some(op_ref); + } + + // Finish when we reach the goal edge. + if end == Destination::Op(op_ref) { + break; + } + } + } + + // Traverse the breadcrumbs backward to build up the path back from output to input. + let mut op_path: Vec = vec![]; + let mut cur_state = match end { + Destination::State(state) => state, + Destination::Op(op) => { + op_path.push(op); + ops[op].input[0] + } + }; + while cur_state != start { + match breadcrumbs[cur_state] { + Some(op) => { + op_path.push(op); + cur_state = ops[op].input[0]; + } + None => return None, + } + } + op_path.reverse(); + + Some( + op_path + .iter() + .map(|&op| (op, vec![ops[op].output[0]])) + .collect::>(), + ) + } + + /// Find a chain of operations from the `start` state to the `end` state, passing through each + /// `through` operation in order. + pub fn find_plan( + start: StateRef, + end: StateRef, + through: &[OpRef], + ops: &PrimaryMap, + ) -> Option> { + let mut cur_state = start; + let mut op_path = vec![]; + + // Build path segments through each through required operation. + for op in through { + let segment = + Self::find_path_segment(cur_state, Destination::Op(*op), ops)?; + op_path.extend(segment); + cur_state = ops[*op].output[0]; + } + + // Build the final path segment to the destination state. + let segment = + Self::find_path_segment(cur_state, Destination::State(end), ops)?; + op_path.extend(segment); + + Some(op_path) + } +} + +impl FindPlan for SingleOpOutputPlanner { + fn find_plan( + &self, + start: &[StateRef], + end: &[StateRef], + through: &[OpRef], + ops: &PrimaryMap, + ) -> Option> { + assert!(start.len() == 1 && end.len() == 1); + Self::find_plan(start[0], end[0], through, ops) + } +} diff --git a/fud2/fud-core/src/exec/request.rs b/fud2/fud-core/src/exec/request.rs index ebde6047eb..1a1db20075 100644 --- a/fud2/fud-core/src/exec/request.rs +++ b/fud2/fud-core/src/exec/request.rs @@ -1,24 +1,29 @@ -use super::{OpRef, StateRef}; +use super::{planner::FindPlan, OpRef, StateRef}; use camino::Utf8PathBuf; /// A request to the Driver directing it what to build. #[derive(Debug)] pub struct Request { /// The input format. - pub start_state: StateRef, + /// Invariant: start_states.len() >= start_files.len() + pub start_states: Vec, /// The output format to produce. - pub end_state: StateRef, + /// Invariant: end_states.len() >= end_files.len() + pub end_states: Vec, /// The filename to read the input from, or None to read from stdin. - pub start_file: Option, + pub start_files: Vec, /// The filename to write the output to, or None to print to stdout. - pub end_file: Option, + pub end_files: Vec, /// A sequence of operators to route the conversion through. pub through: Vec, /// The working directory for the build. pub workdir: Utf8PathBuf, + + /// The algorithm used to find a plan to turn start states into end states + pub planner: Box, } diff --git a/fud2/fud-core/src/run.rs b/fud2/fud-core/src/run.rs index d42acb652d..afb44e34b4 100644 --- a/fud2/fud-core/src/run.rs +++ b/fud2/fud-core/src/run.rs @@ -69,19 +69,19 @@ pub trait EmitBuild { fn build( &self, emitter: &mut StreamEmitter, - input: &str, - output: &str, + input: &[&str], + output: &[&str], ) -> EmitResult; } -pub type EmitBuildFn = fn(&mut StreamEmitter, &str, &str) -> EmitResult; +pub type EmitBuildFn = fn(&mut StreamEmitter, &[&str], &[&str]) -> EmitResult; impl EmitBuild for EmitBuildFn { fn build( &self, emitter: &mut StreamEmitter, - input: &str, - output: &str, + input: &[&str], + output: &[&str], ) -> EmitResult { self(emitter, input, output) } @@ -97,10 +97,10 @@ impl EmitBuild for EmitRuleBuild { fn build( &self, emitter: &mut StreamEmitter, - input: &str, - output: &str, + input: &[&str], + output: &[&str], ) -> EmitResult { - emitter.build(&self.rule_name, input, output)?; + emitter.build_cmd(output, &self.rule_name, input, &[])?; Ok(()) } } @@ -148,16 +148,21 @@ impl<'a> Run<'a> { /// Just print the plan for debugging purposes. pub fn show(self) { - if self.plan.stdin { - println!("(stdin) -> {}", self.plan.start); - } else { - println!("start: {}", self.plan.start); - } - for (op, file) in self.plan.steps { - println!("{}: {} -> {}", op, self.driver.ops[op].name, file); - } - if self.plan.stdout { - println!("-> (stdout)"); + for (op, files_in, files_out) in self.plan.steps { + println!( + "{}: {} -> {}", + self.driver.ops[op].name, + files_in + .into_iter() + .map(|f| f.to_string()) + .collect::>() + .join(", "), + files_out + .into_iter() + .map(|f| f.to_string()) + .collect::>() + .join(", "), + ); } } @@ -170,14 +175,17 @@ impl<'a> Run<'a> { // Record the states and ops that are actually used in the plan. let mut states: HashMap = HashMap::new(); let mut ops: HashSet = HashSet::new(); - let first_op = self.plan.steps[0].0; - states.insert( - self.driver.ops[first_op].input, - self.plan.start.to_string(), - ); - for (op, file) in &self.plan.steps { - states.insert(self.driver.ops[*op].output, file.to_string()); - ops.insert(*op); + for (op_ref, files_in, files_out) in &self.plan.steps { + let op = &self.driver.ops[*op_ref]; + for (s, f) in op.input.iter().zip(files_in.iter()) { + let filename = f.to_string(); + states.insert(*s, filename.to_string()); + } + for (s, f) in op.output.iter().zip(files_out.iter()) { + let filename = format!("{f}"); + states.insert(*s, filename.to_string()); + } + ops.insert(*op_ref); } // Show all states. @@ -196,7 +204,10 @@ impl<'a> Run<'a> { // Show all operations. for (op_ref, op) in self.driver.ops.iter() { - print!(" {} -> {} [label=\"{}\"", op.input, op.output, op.name); + print!( + " {} -> {} [label=\"{}\"", + op.input[0], op.output[0], op.name + ); if ops.contains(&op_ref) { print!(" penwidth=3"); } @@ -228,10 +239,15 @@ impl<'a> Run<'a> { let dir = self.emit_to_dir(dir)?; // Capture stdin. - if self.plan.stdin { - let stdin_file = std::fs::File::create( - self.plan.workdir.join(&self.plan.start), - )?; + for filename in self.plan.inputs.iter().filter_map(|f| { + if f.is_from_stdio() { + Some(f.filename()) + } else { + None + } + }) { + let stdin_file = + std::fs::File::create(self.plan.workdir.join(filename))?; std::io::copy( &mut std::io::stdin(), &mut std::io::BufWriter::new(stdin_file), @@ -253,17 +269,23 @@ impl<'a> Run<'a> { cmd.stdout(std::io::stderr()); // Send Ninja's stdout to our stderr. let status = cmd.status()?; - // Emit stdout, only when Ninja succeeded. - if status.success() && self.plan.stdout { - let stdout_file = - std::fs::File::open(self.plan.workdir.join(self.plan.end()))?; - std::io::copy( - &mut std::io::BufReader::new(stdout_file), - &mut std::io::stdout(), - )?; - } - + // Emit to stdout, only when Ninja succeeded. if status.success() { + // Outputs results to stdio if tagged as such. + for filename in self.plan.results.iter().filter_map(|f| { + if f.is_from_stdio() { + Some(f.filename()) + } else { + None + } + }) { + let stdout_files = + std::fs::File::open(self.plan.workdir.join(filename))?; + std::io::copy( + &mut std::io::BufReader::new(stdout_files), + &mut std::io::stdout(), + )?; + } Ok(()) } else { Err(RunError::NinjaFailed(status)) @@ -284,7 +306,7 @@ impl<'a> Run<'a> { // Emit the setup for each operation used in the plan, only once. let mut done_setups = HashSet::::new(); - for (op, _) in &self.plan.steps { + for (op, _, _) in &self.plan.steps { for setup in &self.driver.ops[*op].setups { if done_setups.insert(*setup) { let setup = &self.driver.setups[*setup]; @@ -297,20 +319,28 @@ impl<'a> Run<'a> { // Emit the build commands for each step in the plan. emitter.comment("build targets")?; - let mut last_file = &self.plan.start; - for (op, out_file) in &self.plan.steps { + for (op, in_files, out_files) in &self.plan.steps { let op = &self.driver.ops[*op]; op.emit.build( &mut emitter, - last_file.as_str(), - out_file.as_str(), + in_files + .iter() + .map(|io| io.filename().as_str()) + .collect::>() + .as_slice(), + out_files + .iter() + .map(|io| io.filename().as_str()) + .collect::>() + .as_slice(), )?; - last_file = out_file; } writeln!(emitter.out)?; - // Mark the last file as the default target. - writeln!(emitter.out, "default {}", last_file)?; + // Mark the last file as the default targets. + for result in &self.plan.results { + writeln!(emitter.out, "default {}", result.filename())?; + } Ok(()) } diff --git a/fud2/fud-core/src/script/exec_scripts.rs b/fud2/fud-core/src/script/exec_scripts.rs index 03c6101392..3d7e7c65be 100644 --- a/fud2/fud-core/src/script/exec_scripts.rs +++ b/fud2/fud-core/src/script/exec_scripts.rs @@ -229,8 +229,8 @@ impl EmitBuild for RhaiSetupCtx { fn build( &self, emitter: &mut StreamEmitter, - input: &str, - output: &str, + input: &[&str], + output: &[&str], ) -> EmitResult { RhaiEmitter::with(emitter, |rhai_emit| { EMIT_ENGINE.with(|e| { @@ -238,7 +238,11 @@ impl EmitBuild for RhaiSetupCtx { &mut rhai::Scope::new(), &self.ast, &self.name, - (rhai_emit.clone(), input.to_string(), output.to_string()), + ( + rhai_emit.clone(), + input[0].to_string(), + output[0].to_string(), + ), ) .report(self.path.as_ref()) }); diff --git a/fud2/fud-core/src/script/plugin.rs b/fud2/fud-core/src/script/plugin.rs index 2570b48b29..4c2df65b72 100644 --- a/fud2/fud-core/src/script/plugin.rs +++ b/fud2/fud-core/src/script/plugin.rs @@ -222,8 +222,13 @@ impl ScriptRunner { ast: Rc::new(sctx.ast.clone_functions_only()), name: build.fn_name().to_string(), }; - let op = - bld.borrow_mut().add_op(name, &setups, input, output, rctx); + let op = bld.borrow_mut().add_op( + name, + &setups, + &[input], + &[output], + rctx, + ); // try to set op source #[cfg(debug_assertions)] diff --git a/fud2/fud-core/tests/tests.rs b/fud2/fud-core/tests/tests.rs new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/fud2/fud-core/tests/tests.rs @@ -0,0 +1 @@ + diff --git a/fud2/src/lib.rs b/fud2/src/lib.rs index 5bac0cac26..788fe93f43 100644 --- a/fud2/src/lib.rs +++ b/fud2/src/lib.rs @@ -44,7 +44,7 @@ fn setup_calyx( calyx, verilog, |e, input, output| { - e.build_cmd(&[output], "calyx", &[input], &[])?; + e.build_cmd(&[output[0]], "calyx", &[input[0]], &[])?; e.arg("backend", "verilog")?; Ok(()) }, @@ -135,11 +135,11 @@ pub fn build_driver(bld: &mut DriverBuilder) { simulator, dat, |e, input, output| { - e.build_cmd(&["sim.log"], "sim-run", &[input, "$datadir"], &[])?; - e.arg("bin", input)?; + e.build_cmd(&["sim.log"], "sim-run", &[input[0], "$datadir"], &[])?; + e.arg("bin", input[0])?; e.arg("args", "+NOTRACE=1")?; e.build_cmd( - &[output], + &[output[0]], "json-data", &["$datadir", "sim.log"], &["json-dat.py"], @@ -149,13 +149,13 @@ pub fn build_driver(bld: &mut DriverBuilder) { ); bld.op("trace", &[sim_setup], simulator, vcd, |e, input, output| { e.build_cmd( - &["sim.log", output], + &["sim.log", output[0]], "sim-run", - &[input, "$datadir"], + &[input[0], "$datadir"], &[], )?; - e.arg("bin", input)?; - e.arg("args", &format!("+NOTRACE=0 +OUT={}", output))?; + e.arg("bin", input[0])?; + e.arg("args", &format!("+NOTRACE=0 +OUT={}", output[0]))?; Ok(()) }); @@ -218,7 +218,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { verilog_noverify, |e, input, output| { // Icarus requires a special --disable-verify version of Calyx code. - e.build_cmd(&[output], "calyx", &[input], &[])?; + e.build_cmd(&[output[0]], "calyx", &[input[0]], &[])?; e.arg("backend", "verilog")?; e.arg("args", "--disable-verify")?; Ok(()) @@ -232,9 +232,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { simulator, |e, input, output| { e.build_cmd( - &[output], + &[output[0]], "icarus-compile-standalone-tb", - &[input], + &[input[0]], &["tb.sv"], )?; Ok(()) @@ -247,9 +247,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { simulator, |e, input, output| { e.build_cmd( - &[output], + &[output[0]], "icarus-compile-custom-tb", - &[input], + &[input[0]], &["tb.sv", "memories.sv"], )?; Ok(()) @@ -355,7 +355,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[calyx_setup, custom_testbench_setup], calyx, firrtl, - |e, input, output| calyx_to_firrtl_helper(e, input, output, false), + |e, input, output| { + calyx_to_firrtl_helper(e, input[0], output[0], false) + }, ); bld.op( @@ -363,7 +365,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[calyx_setup, firrtl_primitives_setup, custom_testbench_setup], calyx, firrtl_with_primitives, - |e, input, output| calyx_to_firrtl_helper(e, input, output, true), + |e, input, output| calyx_to_firrtl_helper(e, input[0], output[0], true), ); // The FIRRTL compiler. @@ -407,7 +409,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[firrtl_setup], firrtl, verilog_refmem, - |e, input, output| firrtl_compile_helper(e, input, output, false), + |e, input, output| firrtl_compile_helper(e, input[0], output[0], false), ); // FIRRTL --> Verilog compilation using Verilog primitive implementations for Icarus // This is a bit of a hack, but the Icarus-friendly "noverify" state is identical for this path @@ -417,7 +419,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[firrtl_setup], firrtl, verilog_refmem_noverify, - |e, input, output| firrtl_compile_helper(e, input, output, false), + |e, input, output| firrtl_compile_helper(e, input[0], output[0], false), ); // FIRRTL --> Verilog compilation using FIRRTL primitive implementations for Verilator bld.op( @@ -425,7 +427,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[firrtl_setup], firrtl_with_primitives, verilog_refmem, - |e, input, output| firrtl_compile_helper(e, input, output, true), + |e, input, output| firrtl_compile_helper(e, input[0], output[0], true), ); // FIRRTL --> Verilog compilation using FIRRTL primitive implementations for Icarus bld.op( @@ -433,7 +435,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[firrtl_setup], firrtl_with_primitives, verilog_refmem_noverify, - |e, input, output| firrtl_compile_helper(e, input, output, true), + |e, input, output| firrtl_compile_helper(e, input[0], output[0], true), ); // primitive-uses backend @@ -444,7 +446,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { calyx, primitive_uses_json, |e, input, output| { - e.build_cmd(&[output], "calyx", &[input], &[])?; + e.build_cmd(&[output[0]], "calyx", &[input[0]], &[])?; e.arg("backend", "primitive-uses")?; Ok(()) }, @@ -498,7 +500,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[sim_setup, standalone_testbench_setup, verilator_setup], verilog, simulator, - |e, input, output| verilator_build(e, input, output, true), + |e, input, output| verilator_build(e, input[0], output[0], true), ); bld.op( @@ -506,7 +508,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &[sim_setup, custom_testbench_setup, verilator_setup], verilog_refmem, simulator, - |e, input, output| verilator_build(e, input, output, false), + |e, input, output| verilator_build(e, input[0], output[0], false), ); // Interpreter. @@ -575,7 +577,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { e.build_cmd( &["cider-input.futil"], "calyx-with-flags", - &[input], + input, &[], )?; Ok(()) @@ -594,9 +596,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { dat, |e, input, output| { let out_file = "interp_out.json"; - e.build_cmd(&[out_file], "cider", &[input], &["data.json"])?; + e.build_cmd(&[out_file], "cider", &[input[0]], &["data.json"])?; e.build_cmd( - &[output], + &[output[0]], "interp-to-dat", &[out_file], &["$sim_data", "interp-dat.py"], @@ -618,7 +620,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { &["data.dump"], )?; e.build_cmd( - &[output], + &[output[0]], "interp-to-dump", &[out_file], &["$sim_data", "$cider-converter"], @@ -637,7 +639,12 @@ pub fn build_driver(bld: &mut DriverBuilder) { calyx, debug, |e, input, output| { - e.build_cmd(&[output], "cider-debug", &[input], &["data.json"])?; + e.build_cmd( + &[output[0]], + "cider-debug", + &[input[0]], + &["data.json"], + )?; Ok(()) }, ); @@ -672,19 +679,19 @@ pub fn build_driver(bld: &mut DriverBuilder) { xo, |e, input, output| { // Emit the Verilog itself in "synthesis mode." - e.build_cmd(&["main.sv"], "calyx", &[input], &[])?; + e.build_cmd(&["main.sv"], "calyx", &[input[0]], &[])?; e.arg("backend", "verilog")?; e.arg("args", "--synthesis -p external")?; // Extra ingredients for the `.xo` package. - e.build_cmd(&["toplevel.v"], "calyx", &[input], &[])?; + e.build_cmd(&["toplevel.v"], "calyx", &[input[0]], &[])?; e.arg("backend", "xilinx")?; - e.build_cmd(&["kernel.xml"], "calyx", &[input], &[])?; + e.build_cmd(&["kernel.xml"], "calyx", &[input[0]], &[])?; e.arg("backend", "xilinx-xml")?; // Package the `.xo`. e.build_cmd( - &[output], + &[output[0]], "gen-xo", &[], &[ @@ -699,7 +706,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { }, ); bld.op("xclbin", &[xilinx_setup], xo, xclbin, |e, input, output| { - e.build_cmd(&[output], "compile-xclbin", &[input], &[])?; + e.build_cmd(&[output[0]], "compile-xclbin", &[input[0]], &[])?; Ok(()) }); @@ -737,9 +744,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { |e, input, output| { e.rsrc("xrt.ini")?; e.build_cmd( - &[output], + &[output[0]], "xclrun", - &[input, "$sim_data"], + &[input[0], "$sim_data"], &["emconfig.json", "xrt.ini"], )?; e.arg("xrt_ini", "xrt.ini")?; @@ -759,9 +766,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { |e, input, output| { e.rsrc("xrt_trace.ini")?; e.build_cmd( - &[output], // TODO not the VCD, yet... + &[output[0]], // TODO not the VCD, yet... "xclrun", - &[input, "$sim_data"], + &[input[0], "$sim_data"], &[ "emconfig.json", "pre_sim.tcl", @@ -787,7 +794,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { calyx, yxi, |e, input, output| { - e.build_cmd(&[output], "yxi", &[input], &[])?; + e.build_cmd(output, "yxi", input, &[])?; Ok(()) }, ); @@ -826,15 +833,15 @@ pub fn build_driver(bld: &mut DriverBuilder) { |e, input, output| { // Generate the YXI file. // no extension - let file_name = basename(input); + let file_name = basename(input[0]); // Get yxi file from main compute program. let tmp_yxi = format!("{}.yxi", file_name); - e.build_cmd(&[&tmp_yxi], "yxi", &[input], &[])?; + e.build_cmd(&[&tmp_yxi], "yxi", input, &[])?; // Generate the AXI wrapper. let refified_calyx = format!("refified_{}.futil", file_name); - e.build_cmd(&[&refified_calyx], "calyx-pass", &[input], &[])?; + e.build_cmd(&[&refified_calyx], "calyx-pass", &[input[0]], &[])?; e.arg("pass", "external-to-ref")?; let axi_wrapper = "axi_wrapper.futil"; @@ -851,7 +858,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { // Combine the original Calyx and the wrapper. e.build_cmd( - &[output], + &[output[0]], "combine", &[axi_wrapper, &no_imports_calyx], &[], @@ -922,11 +929,11 @@ e.var("cocotb-args", if waves {"WAVES=1"} else {""})?; let waves = FromStr::from_str(&waves) .expect("The 'waves' flag should be either 'true' or 'false'."); - let vcd_file_name = format!("{}.fst", basename(input)); - let mut make_in = input; + let vcd_file_name = format!("{}.fst", basename(input[0])); + let mut make_in = input[0]; if waves { make_in = "dumpvars.v"; - e.build_cmd(&[make_in], "iverilog-fst-sed", &[input], &[])?; + e.build_cmd(&[make_in], "iverilog-fst-sed", input, &[])?; e.arg("fst_file_name", &vcd_file_name)?; } e.build_cmd( @@ -935,7 +942,7 @@ e.var("cocotb-args", if waves {"WAVES=1"} else {""})?; &[make_in], &["Makefile", "axi_test.py", "run_axi_test.py"], )?; - e.build_cmd(&[output], "cleanup-cocotb", &["tmp.dat"], &[])?; + e.build_cmd(output, "cleanup-cocotb", &["tmp.dat"], &[])?; Ok(()) }, diff --git a/fud2/tests/snapshots/tests__test@calyx_debug.snap b/fud2/tests/snapshots/tests__test@calyx_debug.snap index 2bc1b3b9f9..8c65bdb7e6 100644 --- a/fud2/tests/snapshots/tests__test@calyx_debug.snap +++ b/fud2/tests/snapshots/tests__test@calyx_debug.snap @@ -54,6 +54,6 @@ rule interp-to-dump command = $cider-converter --to json $in > $out build data.dump: dump-to-interp $sim_data | $cider-converter -build _pseudo_debug: cider-debug stdin | data.json +build _to_stdout_debug: cider-debug _from_stdin_calyx.futil | data.json -default _pseudo_debug +default _to_stdout_debug diff --git a/fud2/tests/snapshots/tests__test@calyx_firrtl_verilog-refmem.snap b/fud2/tests/snapshots/tests__test@calyx_firrtl_verilog-refmem.snap index f8c2132df3..5b22cb0ebf 100644 --- a/fud2/tests/snapshots/tests__test@calyx_firrtl_verilog-refmem.snap +++ b/fud2/tests/snapshots/tests__test@calyx_firrtl_verilog-refmem.snap @@ -35,15 +35,15 @@ build primitives-for-firrtl.sv: get-rsrc rule add-verilog-primitives command = cat primitives-for-firrtl.sv $in > $out -build external.futil: ref-to-external stdin -build ref.futil: external-to-ref stdin +build external.futil: ref-to-external _from_stdin_calyx.futil +build ref.futil: external-to-ref _from_stdin_calyx.futil build memory-info.json: yxi external.futil build tb.sv: generate-refmem-testbench memory-info.json build tmp-out.fir: calyx ref.futil backend = firrtl args = --emit-primitive-extmodules -build stdin.fir: dummy tmp-out.fir tb.sv -build partial.sv: firrtl stdin.fir -build stdin.sv: add-verilog-primitives partial.sv | primitives-for-firrtl.sv +build firrtl.fir: dummy tmp-out.fir tb.sv +build partial.sv: firrtl firrtl.fir +build _to_stdout_verilog-refmem.sv: add-verilog-primitives partial.sv | primitives-for-firrtl.sv -default stdin.sv +default _to_stdout_verilog-refmem.sv diff --git a/fud2/tests/snapshots/tests__test@calyx_icarus_dat.snap b/fud2/tests/snapshots/tests__test@calyx_icarus_dat.snap index 28436d7c5c..2a1a35ed98 100644 --- a/fud2/tests/snapshots/tests__test@calyx_icarus_dat.snap +++ b/fud2/tests/snapshots/tests__test@calyx_icarus_dat.snap @@ -38,13 +38,13 @@ rule icarus-compile-standalone-tb rule icarus-compile-custom-tb command = $iverilog -g2012 -o $out tb.sv memories.sv $in -build stdin.sv: calyx stdin +build verilog-noverify.sv: calyx _from_stdin_calyx.futil backend = verilog args = --disable-verify -build stdin.exe: icarus-compile-standalone-tb stdin.sv | tb.sv -build sim.log: sim-run stdin.exe $datadir - bin = stdin.exe +build sim.exe: icarus-compile-standalone-tb verilog-noverify.sv | tb.sv +build sim.log: sim-run sim.exe $datadir + bin = sim.exe args = +NOTRACE=1 -build stdin.json: json-data $datadir sim.log | json-dat.py +build _to_stdout_dat.json: json-data $datadir sim.log | json-dat.py -default stdin.json +default _to_stdout_dat.json diff --git a/fud2/tests/snapshots/tests__test@calyx_icarus_vcd.snap b/fud2/tests/snapshots/tests__test@calyx_icarus_vcd.snap index 81173c4956..85827059d6 100644 --- a/fud2/tests/snapshots/tests__test@calyx_icarus_vcd.snap +++ b/fud2/tests/snapshots/tests__test@calyx_icarus_vcd.snap @@ -38,12 +38,12 @@ rule icarus-compile-standalone-tb rule icarus-compile-custom-tb command = $iverilog -g2012 -o $out tb.sv memories.sv $in -build stdin.sv: calyx stdin +build verilog-noverify.sv: calyx _from_stdin_calyx.futil backend = verilog args = --disable-verify -build stdin.exe: icarus-compile-standalone-tb stdin.sv | tb.sv -build sim.log stdin.vcd: sim-run stdin.exe $datadir - bin = stdin.exe - args = +NOTRACE=0 +OUT=stdin.vcd +build sim.exe: icarus-compile-standalone-tb verilog-noverify.sv | tb.sv +build sim.log _to_stdout_vcd.vcd: sim-run sim.exe $datadir + bin = sim.exe + args = +NOTRACE=0 +OUT=_to_stdout_vcd.vcd -default stdin.vcd +default _to_stdout_vcd.vcd diff --git a/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap b/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap index e6ef5b4935..713d53f60d 100644 --- a/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap +++ b/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap @@ -54,7 +54,7 @@ rule interp-to-dump command = $cider-converter --to json $in > $out build data.dump: dump-to-interp $sim_data | $cider-converter -build interp_out.json: cider stdin | data.json -build stdin.json: interp-to-dat interp_out.json | $sim_data interp-dat.py +build interp_out.json: cider _from_stdin_calyx.futil | data.json +build _to_stdout_dat.json: interp-to-dat interp_out.json | $sim_data interp-dat.py -default stdin.json +default _to_stdout_dat.json diff --git a/fud2/tests/snapshots/tests__test@calyx_verilator_dat.snap b/fud2/tests/snapshots/tests__test@calyx_verilator_dat.snap index bf66e8d417..184bb8a24f 100644 --- a/fud2/tests/snapshots/tests__test@calyx_verilator_dat.snap +++ b/fud2/tests/snapshots/tests__test@calyx_verilator_dat.snap @@ -41,14 +41,14 @@ rule verilator-compile-custom-tb rule cp command = cp $in $out -build stdin.sv: calyx stdin +build verilog.sv: calyx _from_stdin_calyx.futil backend = verilog -build verilator-out/VTOP: verilator-compile-standalone-tb stdin.sv | tb.sv +build verilator-out/VTOP: verilator-compile-standalone-tb verilog.sv | tb.sv out-dir = verilator-out -build stdin.exe: cp verilator-out/VTOP -build sim.log: sim-run stdin.exe $datadir - bin = stdin.exe +build sim.exe: cp verilator-out/VTOP +build sim.log: sim-run sim.exe $datadir + bin = sim.exe args = +NOTRACE=1 -build stdin.json: json-data $datadir sim.log | json-dat.py +build _to_stdout_dat.json: json-data $datadir sim.log | json-dat.py -default stdin.json +default _to_stdout_dat.json diff --git a/fud2/tests/snapshots/tests__test@calyx_verilator_vcd.snap b/fud2/tests/snapshots/tests__test@calyx_verilator_vcd.snap index f0289263cf..07ab0b6544 100644 --- a/fud2/tests/snapshots/tests__test@calyx_verilator_vcd.snap +++ b/fud2/tests/snapshots/tests__test@calyx_verilator_vcd.snap @@ -41,13 +41,13 @@ rule verilator-compile-custom-tb rule cp command = cp $in $out -build stdin.sv: calyx stdin +build verilog.sv: calyx _from_stdin_calyx.futil backend = verilog -build verilator-out/VTOP: verilator-compile-standalone-tb stdin.sv | tb.sv +build verilator-out/VTOP: verilator-compile-standalone-tb verilog.sv | tb.sv out-dir = verilator-out -build stdin.exe: cp verilator-out/VTOP -build sim.log stdin.vcd: sim-run stdin.exe $datadir - bin = stdin.exe - args = +NOTRACE=0 +OUT=stdin.vcd +build sim.exe: cp verilator-out/VTOP +build sim.log _to_stdout_vcd.vcd: sim-run sim.exe $datadir + bin = sim.exe + args = +NOTRACE=0 +OUT=_to_stdout_vcd.vcd -default stdin.vcd +default _to_stdout_vcd.vcd diff --git a/fud2/tests/snapshots/tests__test@calyx_verilog.snap b/fud2/tests/snapshots/tests__test@calyx_verilog.snap index dd36be84b1..af413d8098 100644 --- a/fud2/tests/snapshots/tests__test@calyx_verilog.snap +++ b/fud2/tests/snapshots/tests__test@calyx_verilog.snap @@ -17,7 +17,7 @@ flags = -p none rule calyx-with-flags command = $calyx-exe -l $calyx-base $flags $args $in > $out -build stdin.sv: calyx stdin +build _to_stdout_verilog.sv: calyx _from_stdin_calyx.futil backend = verilog -default stdin.sv +default _to_stdout_verilog.sv diff --git a/fud2/tests/snapshots/tests__test@calyx_xrt-trace_vcd.snap b/fud2/tests/snapshots/tests__test@calyx_xrt-trace_vcd.snap index 28c0170690..6531aaf4f2 100644 --- a/fud2/tests/snapshots/tests__test@calyx_xrt-trace_vcd.snap +++ b/fud2/tests/snapshots/tests__test@calyx_xrt-trace_vcd.snap @@ -60,17 +60,17 @@ build pre_sim.tcl: echo | build post_sim.tcl: echo | contents = close_vcd\\n -build main.sv: calyx stdin +build main.sv: calyx _from_stdin_calyx.futil backend = verilog args = --synthesis -p external -build toplevel.v: calyx stdin +build toplevel.v: calyx _from_stdin_calyx.futil backend = xilinx -build kernel.xml: calyx stdin +build kernel.xml: calyx _from_stdin_calyx.futil backend = xilinx-xml -build stdin.xo: gen-xo | main.sv toplevel.v kernel.xml gen_xo.tcl get-ports.py -build stdin.xclbin: compile-xclbin stdin.xo +build xo.xo: gen-xo | main.sv toplevel.v kernel.xml gen_xo.tcl get-ports.py +build xclbin.xclbin: compile-xclbin xo.xo build xrt_trace.ini: get-rsrc -build stdin.vcd: xclrun stdin.xclbin $sim_data | emconfig.json pre_sim.tcl post_sim.tcl xrt_trace.ini +build _to_stdout_vcd.vcd: xclrun xclbin.xclbin $sim_data | emconfig.json pre_sim.tcl post_sim.tcl xrt_trace.ini xrt_ini = xrt_trace.ini -default stdin.vcd +default _to_stdout_vcd.vcd diff --git a/fud2/tests/snapshots/tests__test@calyx_xrt_dat.snap b/fud2/tests/snapshots/tests__test@calyx_xrt_dat.snap index 5f68ee5341..5aa1580b4b 100644 --- a/fud2/tests/snapshots/tests__test@calyx_xrt_dat.snap +++ b/fud2/tests/snapshots/tests__test@calyx_xrt_dat.snap @@ -60,17 +60,17 @@ build pre_sim.tcl: echo | build post_sim.tcl: echo | contents = close_vcd\\n -build main.sv: calyx stdin +build main.sv: calyx _from_stdin_calyx.futil backend = verilog args = --synthesis -p external -build toplevel.v: calyx stdin +build toplevel.v: calyx _from_stdin_calyx.futil backend = xilinx -build kernel.xml: calyx stdin +build kernel.xml: calyx _from_stdin_calyx.futil backend = xilinx-xml -build stdin.xo: gen-xo | main.sv toplevel.v kernel.xml gen_xo.tcl get-ports.py -build stdin.xclbin: compile-xclbin stdin.xo +build xo.xo: gen-xo | main.sv toplevel.v kernel.xml gen_xo.tcl get-ports.py +build xclbin.xclbin: compile-xclbin xo.xo build xrt.ini: get-rsrc -build stdin.json: xclrun stdin.xclbin $sim_data | emconfig.json xrt.ini +build _to_stdout_dat.json: xclrun xclbin.xclbin $sim_data | emconfig.json xrt.ini xrt_ini = xrt.ini -default stdin.json +default _to_stdout_dat.json diff --git a/fud2/tests/snapshots/tests__test@dahlia_calyx.snap b/fud2/tests/snapshots/tests__test@dahlia_calyx.snap index b4fb83da93..9906ddd097 100644 --- a/fud2/tests/snapshots/tests__test@dahlia_calyx.snap +++ b/fud2/tests/snapshots/tests__test@dahlia_calyx.snap @@ -10,6 +10,6 @@ dahlia-exe = /test/bin/dahlia rule dahlia-to-calyx command = $dahlia-exe -b calyx --lower -l error $in -o $out -build stdin.futil: dahlia-to-calyx stdin +build _to_stdout_calyx.futil: dahlia-to-calyx _from_stdin_dahlia.fuse -default stdin.futil +default _to_stdout_calyx.futil diff --git a/fud2/tests/snapshots/tests__test@mrxl_calyx.snap b/fud2/tests/snapshots/tests__test@mrxl_calyx.snap index 6516c15f8f..fbd9d680b1 100644 --- a/fud2/tests/snapshots/tests__test@mrxl_calyx.snap +++ b/fud2/tests/snapshots/tests__test@mrxl_calyx.snap @@ -10,6 +10,6 @@ mrxl-exe = mrxl rule mrxl-to-calyx command = $mrxl-exe $in > $out -build stdin.futil: mrxl-to-calyx stdin +build _to_stdout_calyx.futil: mrxl-to-calyx _from_stdin_mrxl.mrxl -default stdin.futil +default _to_stdout_calyx.futil diff --git a/fud2/tests/tests.rs b/fud2/tests/tests.rs index f39b422643..126f9345a6 100644 --- a/fud2/tests/tests.rs +++ b/fud2/tests/tests.rs @@ -1,6 +1,6 @@ use fud_core::{ config::default_config, - exec::{Plan, Request}, + exec::{Plan, Request, SingleOpOutputPlanner, IO}, run::Run, Driver, DriverBuilder, }; @@ -50,7 +50,7 @@ impl InstaTest for Plan { let ops = self .steps .iter() - .map(|(opref, _path)| driver.ops[*opref].name.to_string()) + .map(|(opref, _, _)| driver.ops[*opref].name.to_string()) .collect_vec() .join(" -> "); format!("emit plan: {ops}") @@ -60,7 +60,7 @@ impl InstaTest for Plan { let ops = self .steps .iter() - .map(|(opref, _path)| driver.ops[*opref].name.to_string()) + .map(|(opref, _, _)| driver.ops[*opref].name.to_string()) .collect_vec() .join("_"); format!("plan_{ops}") @@ -93,8 +93,8 @@ impl InstaTest for Request { fn desc(&self, driver: &Driver) -> String { let mut desc = format!( "emit request: {} -> {}", - driver.states[self.start_state].name, - driver.states[self.end_state].name + driver.states[self.start_states[0]].name, + driver.states[self.end_states[0]].name ); if !self.through.is_empty() { desc.push_str(" through"); @@ -107,13 +107,13 @@ impl InstaTest for Request { } fn slug(&self, driver: &Driver) -> String { - let mut desc = driver.states[self.start_state].name.to_string(); + let mut desc = driver.states[self.start_states[0]].name.to_string(); for op in &self.through { desc.push('_'); desc.push_str(&driver.ops[*op].name); } desc.push('_'); - desc.push_str(&driver.states[self.end_state].name); + desc.push_str(&driver.states[self.end_states[0]].name); desc } @@ -130,12 +130,13 @@ fn request( through: &[&str], ) -> Request { fud_core::exec::Request { - start_file: None, - start_state: driver.get_state(start).unwrap(), - end_file: None, - end_state: driver.get_state(end).unwrap(), + start_files: vec![], + start_states: vec![driver.get_state(start).unwrap()], + end_files: vec![], + end_states: vec![driver.get_state(end).unwrap()], through: through.iter().map(|s| driver.get_op(s).unwrap()).collect(), workdir: ".".into(), + planner: Box::new(SingleOpOutputPlanner {}), } } @@ -144,11 +145,14 @@ fn all_ops() { let driver = test_driver(); for op in driver.ops.keys() { let plan = Plan { - start: "/input.ext".into(), - steps: vec![(op, "/output.ext".into())], + steps: vec![( + op, + vec![IO::File("/input.ext".into())], + vec![IO::File("/output.ext".into())], + )], workdir: ".".into(), - stdin: false, - stdout: false, + inputs: vec![IO::File("/input.ext".into())], + results: vec![IO::File("/output.ext".into())], }; plan.test(&driver); } @@ -179,8 +183,8 @@ fn list_ops() { .map(|op| { ( &op.name, - &driver.states[op.input].name, - &driver.states[op.output].name, + &driver.states[op.input[0]].name, + &driver.states[op.output[0]].name, ) }) .sorted() From b60dad13fb6b2db5fff4f31d099a389e5aea5a97 Mon Sep 17 00:00:00 2001 From: Samuel Thomas Date: Tue, 9 Jul 2024 10:30:41 -0500 Subject: [PATCH 36/76] bump rhai version (#2196) There was a small change to the user facing types in Rhai which caused fud2 to fail compilation for rhai v1.19. This branch fixes that. --- Cargo.lock | 4 ++-- fud2/fud-core/Cargo.toml | 2 +- fud2/fud-core/src/script/plugin.rs | 12 +++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 17ad1c25a4..01c3e652d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2357,9 +2357,9 @@ dependencies = [ [[package]] name = "rhai" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7d88770120601ba1e548bb6bc2a05019e54ff01b51479e38e64ec3b59d4759" +checksum = "61797318be89b1a268a018a92a7657096d83f3ecb31418b9e9c16dcbb043b702" dependencies = [ "ahash 0.8.10", "bitflags 2.4.2", diff --git a/fud2/fud-core/Cargo.toml b/fud2/fud-core/Cargo.toml index 9c482a1e4c..b14627dcb7 100644 --- a/fud2/fud-core/Cargo.toml +++ b/fud2/fud-core/Cargo.toml @@ -19,7 +19,7 @@ camino = "1.1.6" anyhow.workspace = true log.workspace = true env_logger.workspace = true -rhai = { version = "1.18.0", features = ["internals"] } +rhai = { version = "1.19.0", features = ["internals"] } once_cell = "1.19.0" ariadne = "0.4.1" itertools.workspace = true diff --git a/fud2/fud-core/src/script/plugin.rs b/fud2/fud-core/src/script/plugin.rs index 4c2df65b72..95a97f5a37 100644 --- a/fud2/fud-core/src/script/plugin.rs +++ b/fud2/fud-core/src/script/plugin.rs @@ -1,5 +1,5 @@ use crate::{ - exec::{OpRef, SetupRef, StateRef}, + exec::{SetupRef, StateRef}, DriverBuilder, }; use std::{ @@ -185,13 +185,14 @@ impl ScriptRunner { fn reg_rule(&mut self, sctx: ScriptContext) { let bld = Rc::clone(&self.builder); - self.engine.register_fn::<_, 4, true, OpRef, true, _>( + self.engine.register_fn( "rule", move |ctx: rhai::NativeCallContext, setups: rhai::Array, input: StateRef, output: StateRef, - rule_name: &str| { + rule_name: &str| + -> RhaiResult<_> { let setups = sctx.setups_array(&ctx, setups)?; let op = bld.borrow_mut().rule(&setups, input, output, rule_name); @@ -208,14 +209,15 @@ impl ScriptRunner { fn reg_op(&mut self, sctx: ScriptContext) { let bld = Rc::clone(&self.builder); - self.engine.register_fn::<_, 5, true, OpRef, true, _>( + self.engine.register_fn( "op", move |ctx: rhai::NativeCallContext, name: &str, setups: rhai::Array, input: StateRef, output: StateRef, - build: rhai::FnPtr| { + build: rhai::FnPtr| + -> RhaiResult<_> { let setups = sctx.setups_array(&ctx, setups)?; let rctx = RhaiSetupCtx { path: sctx.path.clone(), From 6e59cc80cc65bc0afe8ecd444097d0fefe084977 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Tue, 9 Jul 2024 12:23:33 -0400 Subject: [PATCH 37/76] my sanity is fraying --- interp/src/debugger/commands/core.rs | 2 +- .../debugger/{cidr.rs => debugger_core.rs} | 99 ++++++-- .../src/debugger/debugging_context/context.rs | 8 +- interp/src/debugger/mod.rs | 8 +- interp/src/flatten/flat_ir/base.rs | 23 ++ interp/src/flatten/structures/context.rs | 7 + .../src/flatten/structures/environment/env.rs | 232 +++++++++++++++--- .../src/flatten/structures/environment/mod.rs | 2 + .../structures/environment/traverser.rs | 167 +++++++++++++ interp/src/main.rs | 6 +- 10 files changed, 476 insertions(+), 78 deletions(-) rename interp/src/debugger/{cidr.rs => debugger_core.rs} (87%) create mode 100644 interp/src/flatten/structures/environment/traverser.rs diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index b24b468856..d8f64a4bb4 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -88,7 +88,7 @@ impl ParsedGroupName { let comp = if let Some(c) = &self.component { context .lookup_comp_by_name(c.as_ref()) - .map_or(Err(format!("No component named {c}")), |c| Ok(c))? + .map_or(Err(format!("No component named {c}")), Ok)? } else { context.entry_point }; diff --git a/interp/src/debugger/cidr.rs b/interp/src/debugger/debugger_core.rs similarity index 87% rename from interp/src/debugger/cidr.rs rename to interp/src/debugger/debugger_core.rs index ce08c8bc64..d253138d9c 100644 --- a/interp/src/debugger/cidr.rs +++ b/interp/src/debugger/debugger_core.rs @@ -9,9 +9,12 @@ use crate::{ debugger::{source::SourceMap, unwrap_error_message}, errors::{InterpreterError, InterpreterResult}, flatten::{ - flat_ir::prelude::GroupIdx, + flat_ir::prelude::{GlobalCellIdx, GlobalPortIdx, GroupIdx, PortValue}, setup_simulation, setup_simulation_with_metadata, - structures::{context::Context, environment::Simulator}, + structures::{ + context::Context, + environment::{Simulator, TraversalEnd}, + }, }, serialization::PrintCode, }; @@ -61,7 +64,7 @@ pub struct Debugger + Clone> { // this is technically redundant but is here for mutability reasons program_context: C, debugging_context: DebuggingContext, - source_map: Option, + _source_map: Option, } pub type OwnedDebugger = Debugger>; @@ -79,8 +82,7 @@ impl OwnedDebugger { false, )?; - let debugger: Debugger> = - Self::new(Rc::new(ctx), None, None)?; + let debugger: Debugger> = Self::new(Rc::new(ctx), &None)?; Ok((debugger, map)) } @@ -89,17 +91,16 @@ impl OwnedDebugger { impl + Clone> Debugger { pub fn new( program_context: C, - source_map: Option, - data_file: Option, + data_file: &Option, ) -> InterpreterResult { let interpreter = - Simulator::build_simulator(program_context.clone(), &data_file)?; + Simulator::build_simulator(program_context.clone(), data_file)?; Ok(Self { interpreter, program_context, debugging_context: DebuggingContext::new(), - source_map, + _source_map: None, }) } @@ -313,21 +314,7 @@ impl + Clone> Debugger { todo!() } Command::Print(print_lists, code, print_mode) => { - for target in print_lists { - // match Self::do_print( - // self.main_component.name, - // &target, - // &code, - // final_env.as_state_view(), - // &print_mode, - // ) { - // Ok(msg) => println!("{}", msg.green()), - // Err(e) => { - // println!("{}", e.red().underline().bold()) - // } - // } - todo!() - } + self.do_print(print_lists, code, print_mode) } Command::Help => { @@ -423,19 +410,77 @@ impl + Clone> Debugger { } } - fn parse_name(self, name: &str) {} - fn do_print( &self, print_lists: Vec>, code: Option, print_mode: PrintMode, ) { + let code = code.unwrap_or(PrintCode::Binary); + for target in print_lists { - todo!() + let target_actual = self.interpreter.traverse_name_vec(&target); + match target_actual { + Ok(traversal_res) => match traversal_res { + TraversalEnd::Root => { + todo!() + } + TraversalEnd::Cell(c_info) => match print_mode { + PrintMode::State => { + if let Some(state) = self + .interpreter + .format_cell_state(c_info.cell, code) + { + println!("{}", state) + } else { + println!("{}","Target cell has no internal state, printing port information instead".red()); + println!( + "{}", + self.interpreter.format_cell_ports( + c_info.cell, + c_info.parent, + code + ) + ) + } + } + PrintMode::Port => { + println!( + "{}", + self.interpreter.format_cell_ports( + c_info.cell, + c_info.parent, + code + ) + ) + } + }, + TraversalEnd::Port(info) => { + let parent_name = + self.interpreter.get_full_name(info.parent); + let port_name = self + .interpreter + .get_port_name(info.port, info.parent); + + println!( + "{parent_name}.{port_name} = {}", + self.interpreter.format_port_value(info.port, code) + ) + } + TraversalEnd::RefCell(_) => todo!(), + TraversalEnd::RefPort(_) => todo!(), + }, + Err(e) => { + println!("{}", owo_colors::OwoColorize::red(&e)) + } + } } } + fn format_value(&self, val: &PortValue, code: PrintCode) -> String { + todo!() + } + fn manipulate_breakpoint(&mut self, command: Command) { match &command { Command::Disable(targets) diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index 3a453ac8ea..19441f3b9f 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -9,11 +9,11 @@ use crate::{ }; use super::super::{ - cidr::SPACING, commands::{ GroupName, ParsedBreakPointID, ParsedGroupName, PrintTuple, WatchPosition, }, + debugger_core::SPACING, }; use ahash::{HashMap, HashMapExt, HashSet, HashSetExt}; @@ -42,12 +42,6 @@ impl Display for PointStatus { } } -impl PointStatus { - pub fn enabled(&self) -> bool { - matches!(self, PointStatus::Enabled) - } -} - #[derive(Clone, Debug)] pub struct BreakPoint { group: GroupIdx, diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index 31d5eead1f..eac0e1ee87 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -1,5 +1,5 @@ -mod cidr; pub mod commands; +mod debugger_core; mod debugging_context; mod interactive_errors; mod io_utils; @@ -7,8 +7,8 @@ mod macros; pub mod source; pub mod structures; -pub use cidr::Debugger; -pub use cidr::OwnedDebugger; -pub use cidr::ProgramStatus; +pub use debugger_core::Debugger; +pub use debugger_core::OwnedDebugger; +pub use debugger_core::ProgramStatus; pub(crate) use macros::unwrap_error_message; diff --git a/interp/src/flatten/flat_ir/base.rs b/interp/src/flatten/flat_ir/base.rs index 8544871889..17062b6bdd 100644 --- a/interp/src/flatten/flat_ir/base.rs +++ b/interp/src/flatten/flat_ir/base.rs @@ -7,6 +7,7 @@ use crate::{ flatten::structures::index_trait::{ impl_index, impl_index_nonzero, IndexRange, IndexRef, }, + serialization::PrintCode, values::Value, }; @@ -275,6 +276,24 @@ impl GlobalCellRef { CellRef::Ref(r) => (base_info + r).into(), } } + + #[must_use] + pub fn as_cell(&self) -> Option<&GlobalCellIdx> { + if let Self::Cell(v) = self { + Some(v) + } else { + None + } + } + + #[must_use] + pub fn as_ref(&self) -> Option<&GlobalRefCellIdx> { + if let Self::Ref(v) = self { + Some(v) + } else { + None + } + } } pub enum CellDefinitionRef { @@ -461,6 +480,10 @@ impl PortValue { pub fn set_undef(&mut self) -> Option { self.0.take() } + + pub fn format_value(&self, print_code: PrintCode) -> String { + todo!() + } } impl From> for PortValue { diff --git a/interp/src/flatten/structures/context.rs b/interp/src/flatten/structures/context.rs index fb8262193e..e0c190f938 100644 --- a/interp/src/flatten/structures/context.rs +++ b/interp/src/flatten/structures/context.rs @@ -413,3 +413,10 @@ impl LookupName for ComponentIdx { ctx.resolve_id(ctx.secondary[*self].name) } } + +impl LookupName for Identifier { + #[inline] + fn lookup_name<'ctx>(&self, ctx: &'ctx Context) -> &'ctx String { + ctx.resolve_id(*self) + } +} diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 9a7264c6c9..fb5d7a32cc 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -4,6 +4,7 @@ use super::{ }, assignments::{GroupInterfacePorts, ScheduledAssignments}, program_counter::{PcMaps, ProgramCounter}, + traverser::{TraversalEnd, TraversalError}, }; use crate::{ errors::{BoxedInterpreterError, InterpreterError, InterpreterResult}, @@ -22,11 +23,14 @@ use crate::{ }, primitives::{self, prim_trait::UpdateStatus, Primitive}, structures::{ - environment::program_counter::ControlPoint, index_trait::IndexRef, + environment::{ + program_counter::ControlPoint, traverser::Traverser, + }, + index_trait::IndexRef, }, }, logging, - serialization::{DataDump, Dimensions}, + serialization::{DataDump, Dimensions, PrintCode}, values::Value, }; use ahash::HashMap; @@ -34,6 +38,7 @@ use ahash::HashSet; use ahash::HashSetExt; use itertools::Itertools; use slog::warn; +use std::fmt::Write; use std::{fmt::Debug, iter::once}; pub type PortMap = IndexedMap; @@ -222,19 +227,19 @@ pub struct Environment + Clone> { /// A map from global port IDs to their current values. pub(crate) ports: PortMap, /// A map from global cell IDs to their current state and execution info. - cells: CellMap, + pub(super) cells: CellMap, /// A map from global ref cell IDs to the cell they reference, if any. - ref_cells: RefCellMap, + pub(super) ref_cells: RefCellMap, /// A map from global ref port IDs to the port they reference, if any. - ref_ports: RefPortMap, + pub(super) ref_ports: RefPortMap, /// The program counter for the whole program execution. - pc: ProgramCounter, + pub(super) pc: ProgramCounter, /// The immutable context. This is retained for ease of use. /// This value should have a cheap clone implementation, such as &Context /// or RC. - ctx: C, + pub(super) ctx: C, } impl + Clone> Environment { @@ -429,11 +434,11 @@ impl + Clone> Environment { #[inline] pub fn get_root_done(&self) -> GlobalPortIdx { - self.get_comp_done(self.get_root()) + self.get_comp_done(Self::get_root()) } #[inline] - pub fn get_root(&self) -> GlobalCellIdx { + pub fn get_root() -> GlobalCellIdx { GlobalCellIdx::new(0) } @@ -458,10 +463,9 @@ impl + Clone> Environment { } }) } -} -// ===================== Environment print implementations ===================== -impl + Clone> Environment { + // ===================== Environment print implementations ===================== + pub fn _print_env(&self) { let root_idx = GlobalCellIdx::new(0); let mut hierarchy = Vec::new(); @@ -575,11 +579,6 @@ impl + Clone> Environment { def_info.name } - fn _get_name_from_cell(&self, cell: GlobalCellIdx) -> Identifier { - let parent = self._get_parent_cell_from_cell(cell); - self.get_name_from_cell_and_parent(parent.unwrap(), cell) - } - /// Attempt to find the parent cell for a port. If no such cell exists (i.e. /// it is a hole port, then it returns None) fn _get_parent_cell_from_port( @@ -628,7 +627,7 @@ impl + Clone> Environment { &self, target: GlobalCellIdx, ) -> Option> { - let root = self.get_root(); + let root = Self::get_root(); if target == root { None } else { @@ -691,29 +690,83 @@ impl + Clone> Environment { InterpreterError::UndefinedWrite(s) | InterpreterError::UndefinedWriteAddr(s) | InterpreterError::UndefinedReadAddr(s) => { - let root_comp = self.cells[self.get_root()].unwrap_comp(); - let root_name = - &self.ctx.as_ref().secondary[root_comp.comp_id].name; - - let parent_path = self.get_parent_path_from_cell(cell).unwrap(); - let name = parent_path - .iter() - .zip(parent_path.iter().skip(1).chain(once(&cell))) - .fold( - self.ctx.as_ref().secondary[*root_name].clone(), - |acc, (a, b)| { - let id = self.get_name_from_cell_and_parent(*a, *b); - acc + "." + &self.ctx.as_ref().secondary[id] - }, - ); - - *s = name; + *s = self.get_full_name(cell); } _ => {} } err } + + /// Traverses the given name, and returns the end of the traversal. For + /// paths with ref cells this will resolve the concrete cell **currently** + /// pointed to by the ref cell. + pub fn traverse_name_vec( + &self, + name: &[String], + ) -> Result { + assert!(!name.is_empty(), "Name cannot be empty"); + + let ctx = self.ctx.as_ref(); + let mut current = Traverser::new(); + + if name.len() == 1 && &name[0] == ctx.lookup_name(ctx.entry_point) { + Ok(TraversalEnd::Root) + } else { + let mut iter = name[0..name.len() - 2].iter(); + if &name[0] == ctx.lookup_name(ctx.entry_point) { + // skip the main name + iter.next(); + } + + for name in iter { + current.next_cell(self, name)?; + } + + let last = name.last().unwrap(); + current.last_step(self, last) + } + } + + pub fn get_ports_from_cell( + &self, + cell: GlobalCellIdx, + parent: GlobalCellIdx, + ) -> impl Iterator + '_ { + let ledger = self.cells[parent].as_comp().unwrap(); + let comp = &self.ctx.as_ref().secondary[ledger.comp_id]; + let cell_offset = cell - &ledger.index_bases; + + self.ctx.as_ref().secondary[comp.cell_offset_map[cell_offset]] + .ports + .iter() + .map(|x| { + ( + self.ctx.as_ref().secondary[comp.port_offset_map[x]].name, + &ledger.index_bases + x, + ) + }) + } + + pub fn get_full_name>(&self, nameable: N) -> String { + nameable.get_full_name(self) + } + + pub fn format_path(&self, path: &[GlobalCellIdx]) -> String { + assert!(!path.is_empty(), "Path cannot be empty"); + assert!(path[0] == Self::get_root(), "Path must start with root"); + + let root_name = + self.ctx.as_ref().lookup_name(self.ctx.as_ref().entry_point); + + path.iter().zip(path.iter().skip(1)).fold( + root_name.clone(), + |acc, (a, b)| { + let id = self.get_name_from_cell_and_parent(*a, *b); + acc + "." + &self.ctx.as_ref().secondary[id] + }, + ) + } } /// A wrapper struct for the environment that provides the functions used to @@ -768,6 +821,26 @@ impl + Clone> Simulator { ) -> impl Iterator + '_ { self.env.get_currently_running_groups() } + + pub fn traverse_name_vec( + &self, + name: &[String], + ) -> Result { + self.env.traverse_name_vec(name) + } + + pub fn get_name_from_cell_and_parent( + &self, + parent: GlobalCellIdx, + cell: GlobalCellIdx, + ) -> Identifier { + self.env.get_name_from_cell_and_parent(parent, cell) + } + + #[inline] + pub fn get_full_name>(&self, nameable: N) -> String { + self.env.get_full_name(nameable) + } } // =========================== simulation functions =========================== @@ -813,13 +886,19 @@ impl + Clone> Simulator { } #[inline] - fn get_value(&self, port: &PortRef, comp: GlobalCellIdx) -> &PortValue { - let port_idx = self.get_global_port_idx(port, comp); + fn get_value( + &self, + port: &PortRef, + parent_comp: GlobalCellIdx, + ) -> &PortValue { + let port_idx = self.get_global_port_idx(port, parent_comp); &self.env.ports[port_idx] } pub(crate) fn get_root_component(&self) -> &ComponentLedger { - self.env.cells[self.env.get_root()].as_comp().unwrap() + self.env.cells[Environment::::get_root()] + .as_comp() + .unwrap() } /// Finds the root component of the simulation and sets its go port to high @@ -1602,4 +1681,81 @@ impl + Clone> Simulator { dump } + + pub fn get_port_name( + &self, + port_idx: GlobalPortIdx, + parent: GlobalCellIdx, + ) -> &String { + let ledger = self.env.cells[parent].as_comp().unwrap(); + let port_offset = port_idx - &ledger.index_bases; + let def_idx = + self.ctx().secondary[ledger.comp_id].port_offset_map[port_offset]; + let name = self.ctx().secondary[def_idx].name; + self.ctx().lookup_name(name) + } + + pub fn format_port_value( + &self, + port_idx: GlobalPortIdx, + print_code: PrintCode, + ) -> String { + self.env.ports[port_idx].format_value(print_code) + } + + pub fn format_cell_ports( + &self, + cell_idx: GlobalCellIdx, + parent_comp: GlobalCellIdx, + print_code: PrintCode, + ) -> String { + let mut buf = String::new(); + + let cell_name = self.get_full_name(cell_idx); + writeln!(buf, "{cell_name}:").unwrap(); + for (identifier, port_idx) in + self.env.get_ports_from_cell(cell_idx, parent_comp) + { + writeln!( + buf, + " {}: {}", + self.ctx().lookup_name(identifier), + self.format_port_value(port_idx, print_code) + ) + .unwrap(); + } + + buf + } + + pub fn format_cell_state( + &self, + cell_idx: GlobalCellIdx, + print_code: PrintCode, + ) -> Option { + let cell_name = self.get_full_name(cell_idx); + let cell = self.env.cells[cell_idx].unwrap_primitive(); + let state = cell.serialize(Some(print_code)); + + if state.has_state() { + Some(format!("{cell_name}: {state}")) + } else { + None + } + } +} + +pub trait GetFullName + Clone> { + fn get_full_name(&self, env: &Environment) -> String; +} + +impl + Clone> GetFullName for GlobalCellIdx { + fn get_full_name(&self, env: &Environment) -> String { + { + let mut parent_path = env.get_parent_path_from_cell(*self).unwrap(); + parent_path.push(*self); + + env.format_path(&parent_path) + } + } } diff --git a/interp/src/flatten/structures/environment/mod.rs b/interp/src/flatten/structures/environment/mod.rs index bfce4ff9cf..c069f8dc76 100644 --- a/interp/src/flatten/structures/environment/mod.rs +++ b/interp/src/flatten/structures/environment/mod.rs @@ -1,5 +1,7 @@ mod assignments; mod env; mod program_counter; +mod traverser; pub use env::{Environment, PortMap, Simulator}; +pub use traverser::TraversalEnd; diff --git a/interp/src/flatten/structures/environment/traverser.rs b/interp/src/flatten/structures/environment/traverser.rs new file mode 100644 index 0000000000..2c6498421e --- /dev/null +++ b/interp/src/flatten/structures/environment/traverser.rs @@ -0,0 +1,167 @@ +use crate::{ + errors::InterpreterResult, + flatten::{ + flat_ir::prelude::{ + CellDefinitionIdx, GlobalCellIdx, GlobalPortIdx, GlobalRefCellIdx, + GlobalRefPortIdx, RefCellDefinitionIdx, + }, + structures::context::Context, + }, +}; +use thiserror::Error; + +use super::Environment; + +#[derive(Error)] +pub enum TraversalError { + #[error("unable to locate entity: {0}")] + Target(String), + + #[error("unable to locate cell: {0}")] + Cell(String), + + #[error("ref cell is not instantiated")] + UninstantiatedRef(GlobalRefCellIdx), +} + +impl std::fmt::Debug for TraversalError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + std::fmt::Display::fmt(self, f) + } +} + +pub struct CellTargetInfo { + pub cell: GlobalCellIdx, + pub parent: GlobalCellIdx, +} + +pub struct RefCellTargetInfo { + pub cell: GlobalRefCellIdx, + pub parent: GlobalCellIdx, +} + +pub struct PortTargetInfo { + pub port: GlobalPortIdx, + pub parent: GlobalCellIdx, +} + +pub enum TraversalEnd { + Root, + Cell(CellTargetInfo), + Port(PortTargetInfo), + RefCell(RefCellTargetInfo), + RefPort(GlobalRefPortIdx), +} + +pub struct Traverser { + pub current_component: GlobalCellIdx, +} + +impl Traverser { + pub fn new() -> Self { + Self { + current_component: Environment::<&Context>::get_root(), + } + } + + pub fn next_cell + Clone, S: AsRef>( + &mut self, + env: &Environment, + target: S, + ) -> Result<(), TraversalError> { + let current_comp_ledger = + env.cells[self.current_component].as_comp().unwrap(); + let comp_def = &env.ctx.as_ref().secondary[current_comp_ledger.comp_id]; + + // check cells + for (offset, def_idx) in comp_def.cell_offset_map.iter() { + let def = &env.ctx.as_ref().secondary[*def_idx]; + if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { + self.current_component = + ¤t_comp_ledger.index_bases + offset; + return Ok(()); + } + } + + // check ref cells + for (offset, def_idx) in comp_def.ref_cell_offset_map.iter() { + let def = &env.ctx.as_ref().secondary[*def_idx]; + if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { + let global_offset = ¤t_comp_ledger.index_bases + offset; + if let Some(cell) = &env.ref_cells[global_offset] { + self.current_component = *cell; + return Ok(()); + } else { + return Err(TraversalError::UninstantiatedRef( + global_offset, + )); + } + } + } + + Err(TraversalError::Cell(target.as_ref().to_string())) + } + + pub fn last_step + Clone, S: AsRef>( + &self, + env: &Environment, + target: S, + ) -> Result { + let current_comp_ledger = + env.cells[self.current_component].as_comp().unwrap(); + let comp_def = &env.ctx.as_ref().secondary[current_comp_ledger.comp_id]; + + // check cells + for (offset, def_idx) in comp_def.cell_offset_map.iter() { + let def = &env.ctx.as_ref().secondary[*def_idx]; + if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { + return Ok(TraversalEnd::Cell(CellTargetInfo { + cell: ¤t_comp_ledger.index_bases + offset, + parent: self.current_component, + })); + } + + // check ports + for port in def.ports.iter() { + if env.ctx.as_ref().lookup_name( + env.ctx.as_ref().secondary[comp_def.port_offset_map[port]] + .name, + ) == target.as_ref() + { + let port_idx = ¤t_comp_ledger.index_bases + port; + return Ok(TraversalEnd::Port(PortTargetInfo { + port: port_idx, + parent: ¤t_comp_ledger.index_bases + offset, + })); + } + } + } + + // check ref cells + for (offset, def_idx) in comp_def.ref_cell_offset_map.iter() { + let def = &env.ctx.as_ref().secondary[*def_idx]; + if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { + let global_offset = ¤t_comp_ledger.index_bases + offset; + + return Ok(TraversalEnd::RefCell(RefCellTargetInfo { + cell: global_offset, + parent: self.current_component, + })); + } + + // check ports + for port in def.ports.iter() { + if env.ctx.as_ref().lookup_name( + env.ctx.as_ref().secondary + [comp_def.ref_port_offset_map[port]], + ) == target.as_ref() + { + let port_idx = ¤t_comp_ledger.index_bases + port; + return Ok(TraversalEnd::RefPort(port_idx)); + } + } + } + + Err(TraversalError::Target(target.as_ref().to_string())) + } +} diff --git a/interp/src/main.rs b/interp/src/main.rs index 0d6e68e713..30e90cb22a 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -157,7 +157,11 @@ fn main() -> InterpreterResult<()> { Ok(()) } Command::Debug(_) => { - todo!() + let debugger = Debugger::new(&i_ctx, &opts.data_file)?; + + debugger.main_loop()?; + + Ok(()) } } } From c92933d19498b5102e81969e74ad12ece308d370 Mon Sep 17 00:00:00 2001 From: Nathaniel Navarro Date: Wed, 10 Jul 2024 14:44:55 +0300 Subject: [PATCH 38/76] Fix link formatting in language ref (#2201) --- docs/lang/ref.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/lang/ref.md b/docs/lang/ref.md index 965ad6d780..dfb63f1a4b 100644 --- a/docs/lang/ref.md +++ b/docs/lang/ref.md @@ -461,7 +461,7 @@ component update_memory() -> () { } ``` -When invoking[invoke] such a component, the calling component must provide a binding for each defined cell: +When [invoking][invoke] such a component, the calling component must provide a binding for each defined cell: ``` component main() -> () { cells { From 93303f4d1a47805eb93b1984abfffa7b39ca8abc Mon Sep 17 00:00:00 2001 From: Parth Sarkar <93054509+parthsarkar17@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:03:36 -0400 Subject: [PATCH 39/76] Duplication of dynamic fsms (#2146) Implements the option to create several (default 2) FSM registers that represent dynamic control flow, so that queries can be split between all of identical registers. --------- Co-authored-by: calebmkim <55243755+calebmkim@users.noreply.github.com> --- .../src/passes/top_down_compile_control.rs | 529 +++++++++++------- calyx-opt/src/traversal/construct.rs | 15 + runt.toml | 21 + 3 files changed, 365 insertions(+), 200 deletions(-) diff --git a/calyx-opt/src/passes/top_down_compile_control.rs b/calyx-opt/src/passes/top_down_compile_control.rs index 453993b16e..7b47c98f21 100644 --- a/calyx-opt/src/passes/top_down_compile_control.rs +++ b/calyx-opt/src/passes/top_down_compile_control.rs @@ -3,7 +3,9 @@ use crate::passes; use crate::traversal::{ Action, ConstructVisitor, Named, ParseVal, PassOpt, VisResult, Visitor, }; -use calyx_ir::{self as ir, GetAttributes, LibrarySignatures, Printer, RRC}; +use calyx_ir::{ + self as ir, BoolAttr, Cell, GetAttributes, LibrarySignatures, Printer, RRC, +}; use calyx_ir::{build_assignments, guard, structure, Id}; use calyx_utils::Error; use calyx_utils::{CalyxResult, OutputFile}; @@ -17,6 +19,7 @@ use std::rc::Rc; const NODE_ID: ir::Attribute = ir::Attribute::Internal(ir::InternalAttr::NODE_ID); +const DUPLICATE_NUM_REG: u64 = 2; /// Computes the exit edges of a given [ir::Control] program. /// @@ -209,10 +212,30 @@ fn compute_unique_ids(con: &mut ir::Control, cur_state: u64) -> u64 { } } -enum Encoding { +#[derive(Clone, Copy)] +enum RegisterEncoding { Binary, OneHot, } +#[derive(Clone, Copy)] +enum RegisterSpread { + // Default option: just a single register + Single, + // Duplicate the register to reduce fanout when querying + // (all FSMs in this vec still have all of the states) + Duplicate, +} + +#[derive(Clone, Copy)] +/// A type that represents how the FSM should be implemented in hardware. +struct FSMRepresentation { + // the representation of a state within a register (one-hot, binary, etc.) + encoding: RegisterEncoding, + // the number of registers representing the dynamic finite state machine + spread: RegisterSpread, + // the index of the last state in the fsm (total # states = last_state + 1) + last_state: u64, +} /// Represents the dyanmic execution schedule of a control program. struct Schedule<'b, 'a: 'b> { @@ -329,53 +352,143 @@ impl<'b, 'a> Schedule<'b, 'a> { .unwrap(); }); } - - /// Queries the FSM by building a new slicer and corresponding assignments if - /// the query hasn't yet been made. If this query has been made before, it - /// reuses the old query. Returns a new guard representing the query. - fn build_one_hot_query( + // Queries the FSM by building a new slicer and corresponding assignments if + /// the query hasn't yet been made. If this query has been made before with one-hot + /// encoding, it reuses the old query, but always returns a new guard representing the query. + fn build_query( builder: &mut ir::Builder, - used_slicers: &mut HashMap>, - fsm: &ir::RRC, - signal_on: &ir::RRC, + used_slicers: &mut HashMap>, + fsm_rep: &FSMRepresentation, + fsm: &RRC, + signal_on: &RRC, state: &u64, fsm_size: &u64, ) -> ir::Guard { - match used_slicers.get(state) { - None => { - // construct slicer for this bit query - structure!( - builder; - let slicer = prim std_bit_slice(*fsm_size, *state, *state, 1); - ); - // build wire from fsm to slicer - let fsm_to_slicer = builder.build_assignment( - slicer.borrow().get("in"), - fsm.borrow().get("out"), - ir::Guard::True, - ); - // add continuous assignments to slicer - builder.component.continuous_assignments.push(fsm_to_slicer); - // create a guard representing when to allow next-state transition - let state_guard = guard!(slicer["out"] == signal_on["out"]); - used_slicers.insert(*state, slicer); + match fsm_rep.encoding { + RegisterEncoding::Binary => { + let state_const = builder.add_constant(*state, *fsm_size); + let state_guard = guard!(fsm["out"] == state_const["out"]); state_guard } - Some(slicer) => { - let state_guard = guard!(slicer["out"] == signal_on["out"]); - state_guard + RegisterEncoding::OneHot => { + match used_slicers.get(state) { + None => { + // construct slicer for this bit query + structure!( + builder; + let slicer = prim std_bit_slice(*fsm_size, *state, *state, 1); + ); + // build wire from fsm to slicer + let fsm_to_slicer = builder.build_assignment( + slicer.borrow().get("in"), + fsm.borrow().get("out"), + ir::Guard::True, + ); + // add continuous assignments to slicer + builder + .component + .continuous_assignments + .push(fsm_to_slicer); + // create a guard representing when to allow next-state transition + let state_guard = + guard!(slicer["out"] == signal_on["out"]); + used_slicers.insert(*state, slicer); + state_guard + } + Some(slicer) => { + let state_guard = + guard!(slicer["out"] == signal_on["out"]); + state_guard + } + } } } } + /// Builds the register(s) and constants needed for a given encoding and spread type. + fn build_fsm_infrastructure( + builder: &mut ir::Builder, + fsm_rep: &FSMRepresentation, + ) -> (Vec>, RRC, u64) { + // get fsm bit width and build constant emitting fsm first state + let (fsm_size, first_state) = match fsm_rep.encoding { + RegisterEncoding::Binary => { + let fsm_size = get_bit_width_from(fsm_rep.last_state + 1); + (fsm_size, builder.add_constant(0, fsm_size)) + } + RegisterEncoding::OneHot => { + let fsm_size = fsm_rep.last_state + 1; + (fsm_size, builder.add_constant(1, fsm_size)) + } + }; + + // for the given number of fsm registers to read from, add a primitive register to the design for each + let mut add_fsm_regs = |prim_name: &str, num_regs: u64| { + (0..num_regs) + .map(|n| { + let fsm_name = if num_regs == 1 { + "fsm".to_string() + } else { + format!("fsm{}", n) + }; + builder.add_primitive( + fsm_name.as_str(), + prim_name, + &[fsm_size], + ) + }) + .collect_vec() + }; + + let fsms = match (fsm_rep.encoding, fsm_rep.spread) { + (RegisterEncoding::Binary, RegisterSpread::Single) => { + add_fsm_regs("std_reg", 1) + } + (RegisterEncoding::OneHot, RegisterSpread::Single) => { + add_fsm_regs("init_one_reg", 1) + } + (RegisterEncoding::Binary, RegisterSpread::Duplicate) => { + add_fsm_regs("std_reg", DUPLICATE_NUM_REG) + } + (RegisterEncoding::OneHot, RegisterSpread::Duplicate) => { + add_fsm_regs("init_one_reg", DUPLICATE_NUM_REG) + } + }; + + (fsms, first_state, fsm_size) + } + + /// Given the state of the FSM, returns the index for the register in `fsms`` + /// that should be queried. + /// A query for each state must read from one of the `num_registers` registers. + /// For `r` registers and `n` states, we split into "buckets" as follows: + /// `{0, ... , n/r - 1} -> reg. @ index 0`, + /// `{n/r, ... , 2n/r - 1} -> reg. @ index 1`, + /// ..., + /// `{(r-1)n/r, ... , n - 1} -> reg. @ index n - 1`. + /// Note that dividing each state by the value `n/r`normalizes the state w.r.t. + /// the FSM register from which it should read. We can then take the floor of this value + /// (or, equivalently, use unsigned integer division) to get this register index. + fn register_to_query( + state: u64, + num_states: u64, + fsms: &[RRC], + ) -> usize { + let num_registers: u64 = fsms.len().try_into().unwrap(); + let reg_to_query: usize = + (state * num_registers / (num_states)).try_into().unwrap(); + reg_to_query + } + /// Implement a given [Schedule] and return the name of the [ir::Group] that /// implements it. fn realize_schedule( self, dump_fsm: bool, fsm_groups: &mut HashSet, - one_hot_cutoff: u64, + fsm_rep: FSMRepresentation, ) -> RRC { + // confirm all states are reachable self.validate(); // build tdcc group @@ -388,195 +501,174 @@ impl<'b, 'a> Schedule<'b, 'a> { )); } - // calculate fsm size and encoding - let final_state = self.last_state(); - let encoding = if final_state <= one_hot_cutoff { - Encoding::OneHot - } else { - Encoding::Binary - }; - - // build necessary primitives dependent on encoding + // build necessary primitives dependent on encoding and spread let signal_on = self.builder.add_constant(1, 1); - let (fsm, first_state, last_state_opt, fsm_size) = match encoding { - Encoding::Binary => { - let fsm_size = get_bit_width_from( - final_state + 1, /* represent 0..final_state */ - ); - structure!(self.builder; - let fsm = prim std_reg(fsm_size); - let last_state = constant(final_state, fsm_size); - let first_state = constant(0, fsm_size); - ); - (fsm, first_state, Some(last_state), fsm_size) - } - Encoding::OneHot => { - let fsm_size = final_state + 1; /* represent 0..final_state */ + let (fsms, first_state, fsm_size) = + Self::build_fsm_infrastructure(self.builder, &fsm_rep); - let fsm = self.builder.add_primitive( - "fsm", - "init_one_reg", - &[fsm_size], - ); - let first_state = self.builder.add_constant(1, fsm_size); - (fsm, first_state, None, fsm_size) - } - }; + // get first fsm register + let fsm1 = fsms.first().expect("first fsm register does not exist"); // Add last state to JSON info let mut states = self.groups_to_states.iter().cloned().collect_vec(); states.push(FSMStateInfo { - id: final_state, - group: Id::new(format!("{}_END", fsm.borrow().name())), + id: fsm_rep.last_state, // check that this register (fsm.0) is the correct one to use + group: Id::new(format!("{}_END", fsm1.borrow().name())), }); // Keep track of groups to FSM state id information for dumping to json fsm_groups.insert(ProfilingInfo::Fsm(FSMInfo { component: self.builder.component.name, - fsm: fsm.borrow().name(), + fsm: fsm1.borrow().name(), group: group.borrow().name(), states, })); - // keep track of used slicers if using one hot encoding - let mut used_slicers = HashMap::new(); + // keep track of used slicers if using one hot encoding. one for each register + let mut used_slicers_vec = + fsms.iter().map(|_| HashMap::new()).collect_vec(); // enable assignments + // the following enable queries; we can decide which register to query for state-dependent assignments + // because we know all registers precisely agree at each cycle group.borrow_mut().assignments.extend( self.enables .into_iter() .sorted_by(|(k1, _), (k2, _)| k1.cmp(k2)) - .flat_map(|(state, mut assigns)| match encoding { - Encoding::Binary => { - let state_const = - self.builder.add_constant(state, fsm_size); - let state_guard = - guard!(fsm["out"] == state_const["out"]); - assigns.iter_mut().for_each(|asgn| { - asgn.guard.update(|g| g.and(state_guard.clone())) - }); - assigns - } - Encoding::OneHot => { - let state_guard = Self::build_one_hot_query( - self.builder, - &mut used_slicers, - &fsm, - &signal_on, - &state, - &fsm_size, - ); - assigns.iter_mut().for_each(|asgn| { - asgn.guard.update(|g| g.and(state_guard.clone())) - }); - assigns - } + .flat_map(|(state, mut assigns)| { + // find the register from which to query; try to split evenly among registers + let (fsm, used_slicers) = { + let reg_to_query = Self::register_to_query(state, fsm_rep.last_state, &fsms); + ( + fsms.get(reg_to_query).expect("the register at this index does not exist"), + used_slicers_vec.get_mut(reg_to_query).expect( + "the used slicer map at this index does not exist", + ), + )}; + // for every assignment dependent on current fsm state, `&` new guard with existing guard + let state_guard = Self::build_query( + self.builder, + used_slicers, + &fsm_rep, + fsm, + &signal_on, + &state, + &fsm_size, + ); + assigns.iter_mut().for_each(|asgn| { + asgn.guard.update(|g| g.and(state_guard.clone())) + }); + assigns }), ); // transition assignments + // the following updates are meant to ensure agreement between the two + // fsm registers; hence, all registers must be updated if `duplicate` is chosen group.borrow_mut().assignments.extend( self.transitions.into_iter().flat_map(|(s, e, guard)| { - let (end_const, trans_guard) = match encoding { - Encoding::Binary => { - structure!(self.builder; - let end_const = constant(e, fsm_size); - let start_const = constant(s, fsm_size); - ); - let trans_guard = - guard!((fsm["out"] == start_const["out"]) & guard); - - (end_const, trans_guard) - } - Encoding::OneHot => { - let end_constant_value = u64::pow( - 2, - e.try_into().expect("failed to convert to u32"), - ); - - let trans_guard = Self::build_one_hot_query( - self.builder, - &mut used_slicers, - &fsm, - &signal_on, - &s, - &fsm_size, - ); - let end_const = self - .builder - .add_constant(end_constant_value, fsm_size); - - (end_const, trans_guard.and(guard)) - } - }; - let ec_borrow = end_const.borrow(); - vec![ - self.builder.build_assignment( - fsm.borrow().get("in"), - ec_borrow.get("out"), - trans_guard.clone(), - ), - self.builder.build_assignment( - fsm.borrow().get("write_en"), - signal_on.borrow().get("out"), - trans_guard, + // get a transition guard for the first fsm register, and apply it to every fsm register + let state_guard = Self::build_query( + self.builder, + used_slicers_vec.get_mut(0).expect( + "the used slicer map at this index 0 does not exist", ), - ] + &fsm_rep, + fsms.first().expect("register 0 does not exist"), + &signal_on, + &s, + &fsm_size, + ); + + // add transitions for every fsm register to ensure consistency between each + fsms.iter() + .flat_map(|fsm| { + let trans_guard = + state_guard.clone().and(guard.clone()); + let end_const = match fsm_rep.encoding { + RegisterEncoding::Binary => { + self.builder.add_constant(e, fsm_size) + } + RegisterEncoding::OneHot => { + self.builder.add_constant( + u64::pow( + 2, + e.try_into() + .expect("failed to convert to u32"), + ), + fsm_size, + ) + } + }; + let ec_borrow = end_const.borrow(); + vec![ + self.builder.build_assignment( + fsm.borrow().get("in"), + ec_borrow.get("out"), + trans_guard.clone(), + ), + self.builder.build_assignment( + fsm.borrow().get("write_en"), + signal_on.borrow().get("out"), + trans_guard, + ), + ] + }) + .collect_vec() }), ); // done condition for group - let reset_fsm = match last_state_opt { - // binary branch; only binary needs last state constant - Some(last_state) => { - let last_guard = guard!(fsm["out"] == last_state["out"]); - let done_assign = self.builder.build_assignment( - group.borrow().get("done"), - signal_on.borrow().get("out"), - last_guard.clone(), - ); - group.borrow_mut().assignments.push(done_assign); + // arbitrarily look at first fsm register, since all are identical + let first_fsm_last_guard = Self::build_query( + self.builder, + used_slicers_vec + .get_mut(0) + .expect("the used slicer map at this index does not exist"), + &fsm_rep, + fsm1, + &signal_on, + &fsm_rep.last_state, + &fsm_size, + ); - // Cleanup: Add a transition from last state to the first state. - let reset_fsm = build_assignments!(self.builder; - fsm["in"] = last_guard ? first_state["out"]; - fsm["write_en"] = last_guard ? signal_on["out"]; - ); + let done_assign = self.builder.build_assignment( + group.borrow().get("done"), + signal_on.borrow().get("out"), + first_fsm_last_guard.clone(), + ); - reset_fsm.to_vec() - } + group.borrow_mut().assignments.push(done_assign); - // ohe branch does not need last state constant - None => { - let last_guard = Self::build_one_hot_query( + // Cleanup: Add a transition from last state to the first state for each register + let reset_fsms = fsms + .iter() + .enumerate() + .flat_map(|(i, fsm)| { + let fsm_last_guard = Self::build_query( self.builder, - &mut used_slicers, - &fsm, + used_slicers_vec.get_mut(i).expect( + "the used slicer map at this index does not exist", + ), + &fsm_rep, + fsm, &signal_on, - &final_state, + &fsm_rep.last_state, &fsm_size, ); - let done_assign = self.builder.build_assignment( - group.borrow().get("done"), - signal_on.borrow().get("out"), - last_guard.clone(), - ); - group.borrow_mut().assignments.push(done_assign); - // Cleanup: Add a transition from last state to the first state. let reset_fsm = build_assignments!(self.builder; - fsm["in"] = last_guard ? first_state["out"]; - fsm["write_en"] = last_guard ? signal_on["out"]; + fsm["in"] = fsm_last_guard ? first_state["out"]; + fsm["write_en"] = fsm_last_guard ? signal_on["out"]; ); - reset_fsm.to_vec() - } - }; + }) + .collect_vec(); - // extend with conditions to set fsm to initial state + // extend with conditions to set all fsms to initial state self.builder .component .continuous_assignments - .extend(reset_fsm); + .extend(reset_fsms); group } @@ -994,9 +1086,40 @@ pub struct TopDownCompileControl { early_transitions: bool, /// Bookkeeping for FSM ids for groups across all FSMs in the program fsm_groups: HashSet, - /// How many states the dynamic FSM must have before we pick binary encoding over - /// one-hot + /// How many states the dynamic FSM must have before picking binary over one-hot one_hot_cutoff: u64, + /// Number of states the dynamic FSM must have before picking duplicate over single register + duplicate_cutoff: u64, +} + +impl TopDownCompileControl { + /// Given a dynamic schedule and attributes, selects a representation for + /// the finite state machine in hardware. + fn get_representation( + &self, + sch: &Schedule, + attrs: &ir::Attributes, + ) -> FSMRepresentation { + let last_state = sch.last_state(); + FSMRepresentation { + encoding: { + match ( + attrs.has(BoolAttr::OneHot), + last_state <= self.one_hot_cutoff, + ) { + (true, _) | (false, true) => RegisterEncoding::OneHot, + (false, false) => RegisterEncoding::Binary, + } + }, + spread: { + match (last_state + 1) <= self.duplicate_cutoff { + true => RegisterSpread::Single, + false => RegisterSpread::Duplicate, + } + }, + last_state, + } + } } impl ConstructVisitor for TopDownCompileControl { @@ -1014,6 +1137,9 @@ impl ConstructVisitor for TopDownCompileControl { one_hot_cutoff: opts[&"one-hot-cutoff"] .pos_num() .expect("requires non-negative OHE cutoff parameter"), + duplicate_cutoff: opts[&"duplicate-cutoff"] + .pos_num() + .expect("requires non-negative duplicate cutoff parameter"), }) } @@ -1053,10 +1179,16 @@ impl Named for TopDownCompileControl { ), PassOpt::new( "one-hot-cutoff", - "The threshold at and below which a one-hot encoding is used for dynamic group scheduling", + "Threshold at and below which a one-hot encoding is used for dynamic group scheduling", ParseVal::Num(0), PassOpt::parse_num, ), + PassOpt::new( + "duplicate-cutoff", + "Threshold above which the dynamic fsm register is replicated into a second, identical register", + ParseVal::Num(i64::MAX), + PassOpt::parse_num, + ), ] } } @@ -1116,12 +1248,11 @@ impl Visitor for TopDownCompileControl { let mut builder = ir::Builder::new(comp, sigs); let mut sch = Schedule::from(&mut builder); sch.calculate_states_seq(s, self.early_transitions)?; + let fsm_impl = self.get_representation(&sch, &s.attributes); + // Compile schedule and return the group. - let seq_group = sch.realize_schedule( - self.dump_fsm, - &mut self.fsm_groups, - self.one_hot_cutoff, - ); + let seq_group = + sch.realize_schedule(self.dump_fsm, &mut self.fsm_groups, fsm_impl); // Add NODE_ID to compiled group. let mut en = ir::Control::enable(seq_group); @@ -1147,11 +1278,9 @@ impl Visitor for TopDownCompileControl { // Compile schedule and return the group. sch.calculate_states_if(i, self.early_transitions)?; - let if_group = sch.realize_schedule( - self.dump_fsm, - &mut self.fsm_groups, - self.one_hot_cutoff, - ); + let fsm_impl = self.get_representation(&sch, &i.attributes); + let if_group = + sch.realize_schedule(self.dump_fsm, &mut self.fsm_groups, fsm_impl); // Add NODE_ID to compiled group. let mut en = ir::Control::enable(if_group); @@ -1175,13 +1304,11 @@ impl Visitor for TopDownCompileControl { let mut builder = ir::Builder::new(comp, sigs); let mut sch = Schedule::from(&mut builder); sch.calculate_states_while(w, self.early_transitions)?; + let fsm_impl = self.get_representation(&sch, &w.attributes); // Compile schedule and return the group. - let if_group = sch.realize_schedule( - self.dump_fsm, - &mut self.fsm_groups, - self.one_hot_cutoff, - ); + let if_group = + sch.realize_schedule(self.dump_fsm, &mut self.fsm_groups, fsm_impl); // Add NODE_ID to compiled group. let mut en = ir::Control::enable(if_group); @@ -1229,10 +1356,11 @@ impl Visitor for TopDownCompileControl { _ => { let mut sch = Schedule::from(&mut builder); sch.calculate_states(con, self.early_transitions)?; + let fsm_impl = self.get_representation(&sch, &s.attributes); sch.realize_schedule( self.dump_fsm, &mut self.fsm_groups, - self.one_hot_cutoff, + fsm_impl, ) } }; @@ -1299,16 +1427,17 @@ impl Visitor for TopDownCompileControl { _comps: &[ir::Component], ) -> VisResult { let control = Rc::clone(&comp.control); - // IRPrinter::write_control(&control.borrow(), 0, &mut std::io::stderr()); + let attrs = comp.attributes.clone(); + let mut builder = ir::Builder::new(comp, sigs); let mut sch = Schedule::from(&mut builder); + // Add assignments for the final states sch.calculate_states(&control.borrow(), self.early_transitions)?; - let comp_group = sch.realize_schedule( - self.dump_fsm, - &mut self.fsm_groups, - self.one_hot_cutoff, - ); + let fsm_impl = self.get_representation(&sch, &attrs); + let comp_group = + sch.realize_schedule(self.dump_fsm, &mut self.fsm_groups, fsm_impl); + if let Some(json_out_file) = &self.dump_fsm_json { let _ = serde_json::to_writer_pretty( json_out_file.get_write(), diff --git a/calyx-opt/src/traversal/construct.rs b/calyx-opt/src/traversal/construct.rs index e9b64b5902..65042598a2 100644 --- a/calyx-opt/src/traversal/construct.rs +++ b/calyx-opt/src/traversal/construct.rs @@ -12,6 +12,8 @@ pub enum ParseVal { Bool(bool), /// A number option. Num(i64), + /// A string option. + String(String), /// A list of values. List(Vec), /// An output stream (stdout, stderr, file name) @@ -33,6 +35,13 @@ impl ParseVal { *n } + pub fn string(&self) -> String { + let ParseVal::String(s) = self else { + panic!("Expected String, got {self}"); + }; + s.clone() + } + pub fn pos_num(&self) -> Option { let n = self.num(); if n < 0 { @@ -86,6 +95,7 @@ impl std::fmt::Display for ParseVal { match self { ParseVal::Bool(b) => write!(f, "{b}"), ParseVal::Num(n) => write!(f, "{n}"), + ParseVal::String(s) => write!(f, "{s}"), ParseVal::List(l) => { write!(f, "[")?; for (i, e) in l.iter().enumerate() { @@ -166,6 +176,11 @@ impl PassOpt { s.parse::().ok().map(ParseVal::Num) } + /// Parse a String from a string. + pub fn parse_string(s: &str) -> Option { + Some(ParseVal::String(s.to_string())) + } + /// Parse a list of numbers from a string. pub fn parse_num_list(s: &str) -> Option { Self::parse_list(s, Self::parse_num) diff --git a/runt.toml b/runt.toml index 8a4be975b6..3e7f19d259 100644 --- a/runt.toml +++ b/runt.toml @@ -245,6 +245,27 @@ fud exec --from calyx --to jq \ """ timeout = 120 +[[tests]] +name = "correctness dynamic fsm register duplication" +paths = [ + "tests/correctness/*.futil", + "tests/correctness/ref-cells/*.futil", + "tests/correctness/sync/*.futil", + "tests/correctness/static-interface/*.futil", +] +cmd = """ +fud exec --from calyx --to jq \ + --through verilog \ + --through dat \ + -s calyx.exec './target/debug/calyx' \ + -s calyx.flags '-x tdcc:spread=duplicate -d static-promotion' \ + -s verilog.cycle_limit 500 \ + -s verilog.data {}.data \ + -s jq.expr ".memories" \ + {} -q +""" +timeout = 120 + [[tests]] name = "correctness static timing" paths = [ From 3448efc9a11162bdc2cc59d7c768ba2e9654302f Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Thu, 11 Jul 2024 15:19:22 -0400 Subject: [PATCH 40/76] much printing stuff --- interp/src/debugger/commands/core.rs | 41 +- interp/src/debugger/debugger_core.rs | 434 ++++------------- .../src/debugger/debugging_context/context.rs | 16 +- interp/src/flatten/flat_ir/base.rs | 31 +- .../src/flatten/structures/environment/env.rs | 316 ++++++++++-- .../src/flatten/structures/environment/mod.rs | 2 +- .../structures/environment/traverser.rs | 453 ++++++++++++++---- 7 files changed, 793 insertions(+), 500 deletions(-) diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index d8f64a4bb4..92e03cc039 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -13,6 +13,7 @@ use crate::{ flat_ir::prelude::GroupIdx, structures::{ context::Context, + environment::{Environment, Path}, index_trait::{impl_index, IndexRef}, }, }, @@ -225,10 +226,10 @@ pub enum PrintMode { Port, } #[derive(Debug, Clone)] -pub struct PrintTuple(Vec>, Option, PrintMode); +pub struct PrintTuple(Vec, Option, PrintMode); impl PrintTuple { - pub fn target(&self) -> &Vec> { + pub fn target(&self) -> &Vec { &self.0 } @@ -239,37 +240,45 @@ impl PrintTuple { pub fn print_mode(&self) -> &PrintMode { &self.2 } -} -impl From<(Vec>, Option, PrintMode)> for PrintTuple { - fn from(val: (Vec>, Option, PrintMode)) -> Self { - PrintTuple(val.0, val.1, val.2) - } -} + pub fn format + Clone>( + &self, + env: &Environment, + ) -> String { + let mut string = String::new(); -impl Display for PrintTuple { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!( - f, + string, "{}", match self.2 { PrintMode::State => "print-state".green(), PrintMode::Port => "print".green(), } - )?; + ) + .unwrap(); write!( - f, + string, " {}", match &self.1 { Some(s) => format!("{}", s), None => "".red().to_string(), } - )?; + ) + .unwrap(); write!( - f, + string, " {}", - &self.0.iter().map(|x| x.iter().join(".")).join(" "), + &self.0.iter().map(|x| x.as_string(env)).join(" "), ) + .unwrap(); + + string + } +} + +impl From<(Vec, Option, PrintMode)> for PrintTuple { + fn from(val: (Vec, Option, PrintMode)) -> Self { + PrintTuple(val.0, val.1, val.2) } } diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index d253138d9c..717dd246fd 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -13,7 +13,7 @@ use crate::{ setup_simulation, setup_simulation_with_metadata, structures::{ context::Context, - environment::{Simulator, TraversalEnd}, + environment::{Path as ParsePath, PathError, Simulator}, }, }, serialization::PrintCode, @@ -24,7 +24,7 @@ use std::{collections::HashSet, path::PathBuf, rc::Rc}; use calyx_ir::Id; use owo_colors::OwoColorize; -use std::path::Path; +use std::path::Path as FilePath; /// Constant amount of space used for debugger messages pub(super) const SPACING: &str = " "; @@ -73,8 +73,8 @@ impl OwnedDebugger { /// construct a debugger instance from the target calyx file /// todo: add support for data files pub fn from_file( - file: &Path, - lib_path: &Path, + file: &FilePath, + lib_path: &FilePath, ) -> InterpreterResult<(Self, NewSourceMap)> { let (ctx, map) = setup_simulation_with_metadata( &Some(PathBuf::from(file)), @@ -135,18 +135,18 @@ impl + Clone> Debugger { self.debugging_context .advance_time(self.interpreter.get_currently_running_groups()); - for (idx, watch) in self.debugging_context.hit_watchpoints() { - // for target in watch.target() { - // if let Ok(msg) = Self::do_print( - // self.main_component.name, - // target, - // watch.print_code(), - // self.interpreter.get_env(), - // watch.print_mode(), - // ) { - // println!("{}", msg.on_black().yellow().bold()); - // } - // } + for (_idx, watch) in self.debugging_context.hit_watchpoints() { + let print_tuple = watch.print_details(); + + for target in print_tuple.target() { + if let Err(e) = self.print_from_path( + target, + print_tuple.print_code(), + *print_tuple.print_mode(), + ) { + println!("{}", e.red().bold()); + }; + } } breakpoints.extend(self.debugging_context.hit_breakpoints()); @@ -198,10 +198,15 @@ impl + Clone> Debugger { Command::Continue => self.do_continue()?, Command::Empty => {} Command::Display => { - todo!() + println!("COMMAND NOT YET IMPLEMENTED"); } Command::Print(print_lists, code, print_mode) => { - self.do_print(print_lists, code, print_mode); + for target in print_lists { + if let Err(e) = self.do_print(&target, code, print_mode) + { + println!("{}", e.red().bold()); + }; + } } Command::Help => { print!("{}", Command::get_help_string().cyan()) @@ -243,44 +248,10 @@ impl + Clone> Debugger { ), Command::InfoWatch => self .debugging_context - .print_watchpoints(self.program_context.as_ref()), - Command::PrintPC(override_flag) => { - // if self.source_map.is_some() && !override_flag { - // let map = self.source_map.as_ref().unwrap(); - // let mut printed = false; - // for x in self - // .interpreter - // .get_active_tree() - // .remove(0) - // .flat_set() - // .into_iter() - // { - // if let Some(output) = map.lookup(x) { - // printed = true; - // println!("{}", output); - // } - // } - - // if !printed { - // println!("Falling back to Calyx"); - // print!( - // "{}", - // self.interpreter - // .get_active_tree() - // .remove(0) - // .format_tree::(0) - // ); - // } - // } else { - // print!( - // "{}", - // self.interpreter - // .get_active_tree() - // .remove(0) - // .format_tree::(0) - // ); - // } - todo!() + .print_watchpoints(self.interpreter.env()), + Command::PrintPC(_override_flag) => { + println!("{}", "PLACEHOLDER".bold().underline().italic()); + self.interpreter.print_pc(); } Command::Explain => { @@ -309,12 +280,15 @@ impl + Clone> Debugger { match comm { Command::Empty => {} Command::Display => { - // let state = final_env.as_state_view(); - // println!("{}", state.state_as_str().purple()); - todo!() + println!("COMMAND NOT YET IMPLEMENTED"); } Command::Print(print_lists, code, print_mode) => { - self.do_print(print_lists, code, print_mode) + for target in print_lists { + if let Err(e) = self.do_print(&target, code, print_mode) + { + println!("{}", e.red().bold()); + }; + } } Command::Help => { @@ -342,16 +316,22 @@ impl + Clone> Debugger { watch_pos: super::commands::WatchPosition, ) { let mut error_occurred = false; + let mut paths = Vec::new(); for target in print_target.iter() { - if let Err(e) = - self.construct_print_string(target, print_code, print_mode) - { - error_occurred = true; - println!("{}", e.red().bold()); + match self.interpreter.traverse_name_vec(target) { + Ok(path) => { + paths.push(path); + } + Err(e) => { + error_occurred = true; + println!("{}", e.red().bold()); + continue; + } } } if error_occurred { + println!("{}", "No watchpoints have been added.".red()); return; } @@ -367,7 +347,7 @@ impl + Clone> Debugger { self.debugging_context.add_watchpoint( watch_target, watch_pos, - (print_target, print_code, print_mode), + (paths, print_code, print_mode), ); } @@ -412,73 +392,73 @@ impl + Clone> Debugger { fn do_print( &self, - print_lists: Vec>, + target: &[String], code: Option, print_mode: PrintMode, - ) { + ) -> Result<(), PathError> { + let traversal_res = self.interpreter.traverse_name_vec(target)?; + + self.print_from_path(&traversal_res, &code, print_mode)?; + + Ok(()) + } + + fn print_from_path( + &self, + path: &ParsePath, + code: &Option, + mode: PrintMode, + ) -> Result<(), PathError> { let code = code.unwrap_or(PrintCode::Binary); - for target in print_lists { - let target_actual = self.interpreter.traverse_name_vec(&target); - match target_actual { - Ok(traversal_res) => match traversal_res { - TraversalEnd::Root => { - todo!() - } - TraversalEnd::Cell(c_info) => match print_mode { - PrintMode::State => { - if let Some(state) = self - .interpreter - .format_cell_state(c_info.cell, code) - { - println!("{}", state) - } else { - println!("{}","Target cell has no internal state, printing port information instead".red()); - println!( - "{}", - self.interpreter.format_cell_ports( - c_info.cell, - c_info.parent, - code - ) - ) - } - } - PrintMode::Port => { - println!( - "{}", - self.interpreter.format_cell_ports( - c_info.cell, - c_info.parent, - code - ) - ) - } - }, - TraversalEnd::Port(info) => { - let parent_name = - self.interpreter.get_full_name(info.parent); - let port_name = self - .interpreter - .get_port_name(info.port, info.parent); - - println!( - "{parent_name}.{port_name} = {}", - self.interpreter.format_port_value(info.port, code) - ) + let name_override = match path { + ParsePath::Cell(_) | ParsePath::Port(_) => None, + ParsePath::AbstractCell(_) | ParsePath::AbstractPort { .. } => { + Some(path.as_string(self.interpreter.env())) + } + }; + + let resolved = path.resolve_path(self.interpreter.env())?; + match resolved { + crate::flatten::structures::environment::PathResolution::Cell( + cell, + ) => { + if let PrintMode::State = mode { + if let Some(state) = self.interpreter.format_cell_state( + cell, + code, + name_override.as_deref(), + ) { + println!("{}", state); + return Ok(()); + } else { + println!("{}","Target cell has no internal state, printing port information instead".red()); } - TraversalEnd::RefCell(_) => todo!(), - TraversalEnd::RefPort(_) => todo!(), - }, - Err(e) => { - println!("{}", owo_colors::OwoColorize::red(&e)) } + + println!( + "{}", + self.interpreter.format_cell_ports( + cell, + code, + name_override.as_deref() + ) + ) + } + crate::flatten::structures::environment::PathResolution::Port( + port, + ) => { + let path_str = name_override + .unwrap_or_else(|| self.interpreter.get_full_name(port)); + + println!( + "{path_str} = {}", + self.interpreter.format_port_value(port, code) + ) } } - } - fn format_value(&self, val: &PortValue, code: PrintCode) -> String { - todo!() + Ok(()) } fn manipulate_breakpoint(&mut self, command: Command) { @@ -508,210 +488,4 @@ impl + Clone> Debugger { _ => unreachable!("improper use of manipulate_breakpoint"), } } - - fn construct_print_string( - &self, - print_list: &Vec, - code: Option, - print_mode: PrintMode, - ) -> Result { - todo!() - } - - // fn do_print( - // main_comp_name: Id, - // print_list: &[Id], - // code: &Option, - // root: StateView, - // print_mode: &PrintMode, - // ) -> Result { - // let orig_string = print_list - // .iter() - // .map(|s| s.id.as_str()) - // .collect::>() - // .join("."); - - // let mut iter = print_list.iter(); - - // let length = if main_comp_name == print_list[0] { - // iter.next(); - // print_list.len() - 1 - // } else { - // print_list.len() - // }; - - // let mut current_target = CurrentTarget::Env(&root); - - // for (idx, target) in iter.enumerate() { - // let current_ref = current_target.borrow(); - // let current_env = current_ref.get_env().unwrap(); - - // // lowest level - // if idx == length - 1 { - // // first look for cell - // let cell = current_env.get_cell(*target); - // if let Some(cell) = cell { - // return Ok(print_cell( - // &cell, - // ¤t_env, - // code, - // print_mode, - // )); - // } else if idx != 0 { - // let prior = &print_list[idx - 1]; - - // if let Some(parent) = current_env.get_cell(*prior) { - // let parent_ref = parent.borrow(); - // let pt = parent_ref - // .ports() - // .iter() - // .find(|x| x.borrow().name == target); - // if let Some(port) = pt { - // return Ok(print_port( - // port, - // ¤t_env, - // None, - // code, - // )); - // } else { - // return Err(DebuggerError::CannotFind(orig_string)); - // // cannot find - // } - // } else if let Some(port) = - // current_env.get_comp().signature.borrow().find(target) - // { - // return Ok(print_port( - // &port, - // ¤t_env, - // Some(print_list[idx - 1]), - // code, - // )); - // } else { - // // cannot find - // return Err(DebuggerError::CannotFind(orig_string)); - // } - // } else { - // return Err(DebuggerError::CannotFind(orig_string)); - // } - // } - // // still walking - // else { - // let map = Rc::clone(current_env.get_cell_map()); - // let cell = current_env.get_cell(*target); - // if let Some(rrc_cell) = cell { - // // need to release these references to replace current - // // target - // if map.borrow()[&rrc_cell.as_raw()].get_state().is_some() { - // drop(current_env); - // drop(current_ref); - - // current_target = CurrentTarget::Target { - // name: rrc_cell.as_raw(), - // map, - // } - // } - // // otherwise leave the same - // } else { - // // cannot find - // return Err(DebuggerError::CannotFind(orig_string)); - // } - // } - // } - - // unreachable!() - // } } - -// fn print_cell( -// target: &RRC, -// state: &StateView, -// code: &Option, -// mode: &PrintMode, -// ) -> String { -// let cell_ref = target.borrow(); - -// match mode { -// PrintMode::State => { -// let actual_code = -// code.as_ref().copied().unwrap_or(PrintCode::Binary); -// let cell_state = state.get_cell_state(&cell_ref, &actual_code); -// if matches!(&cell_state, &Serializable::Empty) { -// print_cell(target, state, code, &PrintMode::Port) -// } else { -// format!( -// "{}{} = {}", -// SPACING, -// cell_ref.name().green().bold(), -// cell_state.blue().bold() -// ) -// } -// } - -// PrintMode::Port => { -// let mut output: String = String::new(); -// writeln!(output, "{}{}", SPACING, cell_ref.name().red()) -// .expect("Something went wrong trying to print the port"); -// for port in cell_ref.ports.iter() { -// let v = state.lookup(port.as_raw()); -// writeln!( -// output, -// "{} {} = {}", -// SPACING, -// port.borrow().name.red(), -// if let Some(code) = code { -// match code { -// PrintCode::Unsigned => { -// format!("{}", v.as_unsigned()) -// } -// PrintCode::Signed => { -// format!("{}", v.as_signed().green()) -// } -// PrintCode::UFixed(num) => { -// format!("{}", v.as_ufp(*num).blue()) -// } -// PrintCode::SFixed(num) => { -// format!("{}", v.as_sfp(*num).purple()) -// } -// PrintCode::Binary => format!("{}", v.cyan()), -// } -// } else { -// format!("{}", &v.magenta()) -// } -// ) -// .expect("Something went wrong trying to print the port"); -// } -// output -// } -// } -// } - -// fn print_port( -// target: &RRC, -// state: &StateView, -// prior_name: Option, -// code: &Option, -// ) -> String { -// let port_ref = target.borrow(); -// let parent_name = if let Some(prior) = prior_name { -// prior -// } else { -// port_ref.get_parent_name() -// }; - -// let v = state.lookup(port_ref.as_raw()); -// let code = code.as_ref().copied().unwrap_or(PrintCode::Binary); - -// format!( -// "{}{}.{} = {}", -// SPACING, -// parent_name.red(), -// port_ref.name.green(), -// match code { -// PrintCode::Unsigned => format!("{}", v.as_unsigned()), -// PrintCode::Signed => format!("{}", v.as_signed()), -// PrintCode::UFixed(num) => format!("{}", v.as_ufp(num)), -// PrintCode::SFixed(num) => format!("{}", v.as_sfp(num)), -// PrintCode::Binary => format!("{}", v), -// } -// ) -// } diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index 19441f3b9f..95f14ef7dc 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -3,7 +3,8 @@ use crate::{ flatten::{ flat_ir::prelude::GroupIdx, structures::{ - context::Context, index_trait::impl_index, indexed_map::IndexedMap, + context::Context, environment::Environment, + index_trait::impl_index, indexed_map::IndexedMap, }, }, }; @@ -676,13 +677,16 @@ impl DebuggingContext { } } - pub fn print_watchpoints(&self, ctx: &Context) { + pub fn print_watchpoints + Clone>( + &self, + env: &Environment, + ) { println!("{}Current watchpoints:", SPACING); let inner_spacing = SPACING.to_string() + " "; let outer_spacing = SPACING.to_string() + " "; for (group, indicies) in self.watchpoints.iter_groups() { - let group_name = ctx.lookup_name(*group); + let group_name = env.ctx().lookup_name(*group); if indicies.get_before().is_some() { println!( @@ -699,7 +703,8 @@ impl DebuggingContext { self.watchpoints.get_by_idx(*watchpoint_idx).unwrap(); println!( "{inner_spacing} ({watchpoint_idx}): {} {}", - &watchpoint.print_details, watchpoint.state + &watchpoint.print_details.format(env), + watchpoint.state ); } @@ -719,7 +724,8 @@ impl DebuggingContext { self.watchpoints.get_by_idx(*watchpoint_idx).unwrap(); println!( "{inner_spacing} ({watchpoint_idx}): {} {}", - &watchpoint.print_details, watchpoint.state + &watchpoint.print_details.format(env), + watchpoint.state ); } } diff --git a/interp/src/flatten/flat_ir/base.rs b/interp/src/flatten/flat_ir/base.rs index 17062b6bdd..35ca1b68db 100644 --- a/interp/src/flatten/flat_ir/base.rs +++ b/interp/src/flatten/flat_ir/base.rs @@ -173,7 +173,7 @@ impl From for GlobalPortRef { impl GlobalPortRef { #[must_use] - pub fn _as_port(&self) -> Option<&GlobalPortIdx> { + pub fn as_port(&self) -> Option<&GlobalPortIdx> { if let Self::Port(v) = self { Some(v) } else { @@ -294,6 +294,22 @@ impl GlobalCellRef { None } } + + /// Returns `true` if the global cell ref is [`Cell`]. + /// + /// [`Cell`]: GlobalCellRef::Cell + #[must_use] + pub fn is_cell(&self) -> bool { + matches!(self, Self::Cell(..)) + } + + /// Returns `true` if the global cell ref is [`Ref`]. + /// + /// [`Ref`]: GlobalCellRef::Ref + #[must_use] + pub fn is_ref(&self) -> bool { + matches!(self, Self::Ref(..)) + } } pub enum CellDefinitionRef { @@ -482,7 +498,18 @@ impl PortValue { } pub fn format_value(&self, print_code: PrintCode) -> String { - todo!() + if let Some(v) = self.0.as_ref() { + let v = &v.val; + match print_code { + PrintCode::Unsigned => format!("{}", v.as_unsigned()), + PrintCode::Signed => format!("{}", v.as_signed()), + PrintCode::UFixed(num) => format!("{}", v.as_ufp(num)), + PrintCode::SFixed(num) => format!("{}", v.as_sfp(num)), + PrintCode::Binary => format!("{}", v), + } + } else { + "undef".to_string() + } } } diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index fb5d7a32cc..d1fc932eaf 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -4,7 +4,7 @@ use super::{ }, assignments::{GroupInterfacePorts, ScheduledAssignments}, program_counter::{PcMaps, ProgramCounter}, - traverser::{TraversalEnd, TraversalError}, + traverser::{Path, PathResolution, TraversalError}, }; use crate::{ errors::{BoxedInterpreterError, InterpreterError, InterpreterResult}, @@ -243,6 +243,10 @@ pub struct Environment + Clone> { } impl + Clone> Environment { + pub fn ctx(&self) -> &Context { + self.ctx.as_ref() + } + pub fn new(ctx: C, data_map: Option) -> Self { let root = ctx.as_ref().entry_point; let aux = &ctx.as_ref().secondary[root]; @@ -561,7 +565,7 @@ impl + Clone> Environment { println!(" Ref Ports: {}", self.ref_ports.len()); } - pub fn _print_pc(&self) { + pub fn print_pc(&self) { println!("{:?}", self.pc) } @@ -622,14 +626,17 @@ impl + Clone> Environment { None } - /// returns the path from the root to the given cell, not including the cell itself - fn get_parent_path_from_cell( + /// returns the path from the root to the given cell, not including the cell + /// itself. If no such path exists, it returns None. + fn get_parent_path_from_cell>( &self, - target: GlobalCellIdx, + target: T, ) -> Option> { + let target: GlobalCellRef = target.into(); + let root = Self::get_root(); - if target == root { - None + if target.is_cell() && *target.as_cell().unwrap() == root { + Some(vec![]) } else { let mut path = vec![root]; @@ -642,41 +649,189 @@ impl + Clone> Environment { let comp_info = &self.ctx.as_ref().secondary[current_comp_ledger.comp_id]; - let possible_relative_offset = - target - ¤t_comp_ledger.index_bases; + let possible_relative_offset: CellRef = match target { + GlobalCellRef::Cell(target_c) => { + (target_c - ¤t_comp_ledger.index_bases).into() + } + GlobalCellRef::Ref(target_r) => { + (target_r - ¤t_comp_ledger.index_bases).into() + } + }; // the target is a direct child - if comp_info.cell_offset_map.contains(possible_relative_offset) - { + if match possible_relative_offset { + CellRef::Local(l) => comp_info.cell_offset_map.contains(l), + CellRef::Ref(r) => { + comp_info.ref_cell_offset_map.contains(r) + } + } { return Some(path); } // the target is a non-direct descendent else { - let mut highest_found = None; - for offset in comp_info.cell_offset_map.keys() { - let global_offset = - ¤t_comp_ledger.index_bases + offset; - if self.cells[global_offset].as_comp().is_some() - && global_offset < target + match target { + GlobalCellRef::Cell(target) => { + let mut highest_found = None; + for offset in comp_info.cell_offset_map.keys() { + let global_offset = + ¤t_comp_ledger.index_bases + offset; + if self.cells[global_offset].as_comp().is_some() + && global_offset < target + { + highest_found = Some(global_offset); + } else if global_offset > target { + break; + } + } + + if let Some(highest_found) = highest_found { + path.push(highest_found); + } else { + return None; + } + } + GlobalCellRef::Ref(r) => { + let mut highest_found = None; + for offset in comp_info.cell_offset_map.keys() { + let global_offset = + ¤t_comp_ledger.index_bases + offset; + + if let Some(ledger) = + self.cells[global_offset].as_comp() + { + if ledger.index_bases.ref_cell_base <= r { + highest_found = Some(global_offset); + } else { + break; + } + } + + if let Some(highest_found) = highest_found { + path.push(highest_found); + } else { + return None; + } + } + } + } + } + } + } + } + + // this is currently aggressively inefficient but is fine for the moment + fn get_parent_path_from_port>( + &self, + target: T, + ) -> Option<(Vec, Option)> { + let target: GlobalPortRef = target.into(); + + let mut path = vec![Self::get_root()]; + + loop { + let current = path.last().unwrap(); + let current_ledger = self.cells[*current].as_comp().unwrap(); + let current_info = + &self.ctx.as_ref().secondary[current_ledger.comp_id]; + + if match target { + GlobalPortRef::Port(p) => { + let candidate_offset = p - ¤t_ledger.index_bases; + current_info.port_offset_map.contains(candidate_offset) + } + GlobalPortRef::Ref(r) => { + let candidate_offset = r - ¤t_ledger.index_bases; + current_info.ref_port_offset_map.contains(candidate_offset) + } + } + // The port is defined in this component + { + // first check whether our target is part of the component's + // signature ports + if let Some(local) = target.as_port() { + let offset = local - ¤t_ledger.index_bases; + if current_info.signature.contains(offset) { + return Some((path, None)); + } + } + + // now search through the component's cells + match target { + GlobalPortRef::Port(target_idx) => { + let target_offset = + target_idx - ¤t_ledger.index_bases; + + for (offset, def_idx) in + current_info.cell_offset_map.iter() { - highest_found = Some(global_offset); - } else if global_offset > target { - break; + let def = &self.ctx.as_ref().secondary[*def_idx]; + if def.ports.contains(target_offset) { + path.push(¤t_ledger.index_bases + offset); + return Some((path, None)); + } } + // todo: handle group interface ports + return None; } + GlobalPortRef::Ref(target_idx) => { + let target_offset = + target_idx - ¤t_ledger.index_bases; + for (offset, def_idx) in + current_info.ref_cell_offset_map.iter() + { + let def = &self.ctx.as_ref().secondary[*def_idx]; + if def.ports.contains(target_offset) { + return Some(( + path, + Some(¤t_ledger.index_bases + offset), + )); + } + } + return None; + } + } + } + // non-direct child + else { + let mut highest_found = None; + + for cell_offset in current_info.cell_offset_map.keys() { + let cell_offset = ¤t_ledger.index_bases + cell_offset; + if let Some(ledger) = self.cells[cell_offset].as_comp() { + match target { + GlobalPortRef::Port(target) => { + if ledger.index_bases.port_base <= target { + highest_found = Some(cell_offset); + } else { + break; + } + } + GlobalPortRef::Ref(target) => { + if ledger.index_bases.ref_port_base <= target { + highest_found = Some(cell_offset); + } else { + break; + } + } + } + } + } - path.push(highest_found.unwrap()); + if let Some(highest_found) = highest_found { + path.push(highest_found); + } else { + return None; } } } } - fn _get_parent_cell_from_cell( + pub(super) fn get_parent_cell_from_cell( &self, cell: GlobalCellIdx, ) -> Option { self.get_parent_path_from_cell(cell) - .map(|x| *x.last().unwrap()) + .and_then(|x| x.last().copied()) } pub fn make_nice_error( @@ -704,14 +859,14 @@ impl + Clone> Environment { pub fn traverse_name_vec( &self, name: &[String], - ) -> Result { + ) -> Result { assert!(!name.is_empty(), "Name cannot be empty"); let ctx = self.ctx.as_ref(); let mut current = Traverser::new(); if name.len() == 1 && &name[0] == ctx.lookup_name(ctx.entry_point) { - Ok(TraversalEnd::Root) + Ok(Path::Cell(Self::get_root())) } else { let mut iter = name[0..name.len() - 2].iter(); if &name[0] == ctx.lookup_name(ctx.entry_point) { @@ -731,21 +886,34 @@ impl + Clone> Environment { pub fn get_ports_from_cell( &self, cell: GlobalCellIdx, - parent: GlobalCellIdx, - ) -> impl Iterator + '_ { - let ledger = self.cells[parent].as_comp().unwrap(); - let comp = &self.ctx.as_ref().secondary[ledger.comp_id]; - let cell_offset = cell - &ledger.index_bases; - - self.ctx.as_ref().secondary[comp.cell_offset_map[cell_offset]] - .ports - .iter() - .map(|x| { - ( - self.ctx.as_ref().secondary[comp.port_offset_map[x]].name, - &ledger.index_bases + x, - ) - }) + ) -> Box + '_> { + if let Some(parent) = self.get_parent_cell_from_cell(cell) { + let ledger = self.cells[parent].as_comp().unwrap(); + let comp = &self.ctx.as_ref().secondary[ledger.comp_id]; + let cell_offset = cell - &ledger.index_bases; + + Box::new( + self.ctx.as_ref().secondary[comp.cell_offset_map[cell_offset]] + .ports + .iter() + .map(|x| { + ( + self.ctx.as_ref().secondary + [comp.port_offset_map[x]] + .name, + &ledger.index_bases + x, + ) + }), + ) + } else { + let ledger = self.cells[cell].as_comp().unwrap(); + let comp = &self.ctx.as_ref().secondary[ledger.comp_id]; + Box::new(comp.signature.iter().map(|x| { + let def_idx = comp.port_offset_map[x]; + let def = &self.ctx.as_ref().secondary[def_idx]; + (def.name, &ledger.index_bases + x) + })) + } } pub fn get_full_name>(&self, nameable: N) -> String { @@ -783,6 +951,10 @@ impl + Clone> Simulator { output } + pub(crate) fn env(&self) -> &Environment { + &self.env + } + pub fn _print_env(&self) { self.env._print_env() } @@ -825,7 +997,7 @@ impl + Clone> Simulator { pub fn traverse_name_vec( &self, name: &[String], - ) -> Result { + ) -> Result { self.env.traverse_name_vec(name) } @@ -841,6 +1013,10 @@ impl + Clone> Simulator { pub fn get_full_name>(&self, nameable: N) -> String { self.env.get_full_name(nameable) } + + pub fn print_pc(&self) { + self.env.print_pc() + } } // =========================== simulation functions =========================== @@ -1706,16 +1882,17 @@ impl + Clone> Simulator { pub fn format_cell_ports( &self, cell_idx: GlobalCellIdx, - parent_comp: GlobalCellIdx, print_code: PrintCode, + name: Option<&str>, ) -> String { let mut buf = String::new(); - let cell_name = self.get_full_name(cell_idx); - writeln!(buf, "{cell_name}:").unwrap(); - for (identifier, port_idx) in - self.env.get_ports_from_cell(cell_idx, parent_comp) - { + if let Some(name_override) = name { + writeln!(buf, "{name_override}:").unwrap(); + } else { + writeln!(buf, "{}:", self.get_full_name(cell_idx)).unwrap(); + } + for (identifier, port_idx) in self.env.get_ports_from_cell(cell_idx) { writeln!( buf, " {}: {}", @@ -1732,13 +1909,23 @@ impl + Clone> Simulator { &self, cell_idx: GlobalCellIdx, print_code: PrintCode, + name: Option<&str>, ) -> Option { - let cell_name = self.get_full_name(cell_idx); let cell = self.env.cells[cell_idx].unwrap_primitive(); let state = cell.serialize(Some(print_code)); + let mut output = String::new(); + if state.has_state() { - Some(format!("{cell_name}: {state}")) + if let Some(name_override) = name { + write!(output, "{name_override}:").unwrap(); + } else { + write!(output, "{}:", self.get_full_name(cell_idx)).unwrap(); + } + + writeln!(output, "{state}").unwrap(); + + Some(output) } else { None } @@ -1749,6 +1936,12 @@ pub trait GetFullName + Clone> { fn get_full_name(&self, env: &Environment) -> String; } +impl + Clone, T: GetFullName> GetFullName for &T { + fn get_full_name(&self, env: &Environment) -> String { + (*self).get_full_name(env) + } +} + impl + Clone> GetFullName for GlobalCellIdx { fn get_full_name(&self, env: &Environment) -> String { { @@ -1759,3 +1952,28 @@ impl + Clone> GetFullName for GlobalCellIdx { } } } + +impl + Clone> GetFullName for GlobalPortIdx { + fn get_full_name(&self, env: &Environment) -> String { + let (parent_path, _) = env.get_parent_path_from_port(*self).unwrap(); + let path_str = env.format_path(&parent_path); + + let immediate_parent = parent_path.last().unwrap(); + let comp = if env.cells[*immediate_parent].as_comp().is_some() { + *immediate_parent + } else { + // get second-to-last parent + parent_path[parent_path.len() - 2] + }; + + let ledger = env.cells[comp].as_comp().unwrap(); + + let local_offset = *self - &ledger.index_bases; + let comp_def = &env.ctx().secondary[ledger.comp_id]; + let port_def_idx = &comp_def.port_offset_map[local_offset]; + let port_def = &env.ctx().secondary[*port_def_idx]; + let name = env.ctx().lookup_name(port_def.name); + + format!("{path_str}.{name}") + } +} diff --git a/interp/src/flatten/structures/environment/mod.rs b/interp/src/flatten/structures/environment/mod.rs index c069f8dc76..706e8b8755 100644 --- a/interp/src/flatten/structures/environment/mod.rs +++ b/interp/src/flatten/structures/environment/mod.rs @@ -4,4 +4,4 @@ mod program_counter; mod traverser; pub use env::{Environment, PortMap, Simulator}; -pub use traverser::TraversalEnd; +pub use traverser::{Path, PathError, PathResolution}; diff --git a/interp/src/flatten/structures/environment/traverser.rs b/interp/src/flatten/structures/environment/traverser.rs index 2c6498421e..03acb517af 100644 --- a/interp/src/flatten/structures/environment/traverser.rs +++ b/interp/src/flatten/structures/environment/traverser.rs @@ -2,26 +2,27 @@ use crate::{ errors::InterpreterResult, flatten::{ flat_ir::prelude::{ - CellDefinitionIdx, GlobalCellIdx, GlobalPortIdx, GlobalRefCellIdx, - GlobalRefPortIdx, RefCellDefinitionIdx, + CellDefinitionIdx, CellRef, GlobalCellIdx, GlobalPortIdx, + GlobalRefCellIdx, GlobalRefPortIdx, PortRef, RefCellDefinitionIdx, }, structures::context::Context, }, }; +use smallvec::{smallvec, SmallVec}; use thiserror::Error; use super::Environment; #[derive(Error)] pub enum TraversalError { - #[error("unable to locate entity: {0}")] - Target(String), + #[error("unable to locate port: {0}")] + Port(String), #[error("unable to locate cell: {0}")] Cell(String), - #[error("ref cell is not instantiated")] - UninstantiatedRef(GlobalRefCellIdx), + #[error("unable to locate entity: {0}")] + Unknown(String), } impl std::fmt::Debug for TraversalError { @@ -30,37 +31,18 @@ impl std::fmt::Debug for TraversalError { } } -pub struct CellTargetInfo { - pub cell: GlobalCellIdx, - pub parent: GlobalCellIdx, -} - -pub struct RefCellTargetInfo { - pub cell: GlobalRefCellIdx, - pub parent: GlobalCellIdx, -} - -pub struct PortTargetInfo { - pub port: GlobalPortIdx, - pub parent: GlobalCellIdx, -} - -pub enum TraversalEnd { - Root, - Cell(CellTargetInfo), - Port(PortTargetInfo), - RefCell(RefCellTargetInfo), - RefPort(GlobalRefPortIdx), -} - pub struct Traverser { - pub current_component: GlobalCellIdx, + concrete_path: SmallVec<[GlobalCellIdx; 4]>, + abstract_path: SmallVec<[CellRef; 2]>, + first_ref: Option, } impl Traverser { pub fn new() -> Self { Self { - current_component: Environment::<&Context>::get_root(), + concrete_path: smallvec![Environment::<&Context>::get_root(),], + abstract_path: smallvec![], + first_ref: None, } } @@ -69,99 +51,376 @@ impl Traverser { env: &Environment, target: S, ) -> Result<(), TraversalError> { - let current_comp_ledger = - env.cells[self.current_component].as_comp().unwrap(); - let comp_def = &env.ctx.as_ref().secondary[current_comp_ledger.comp_id]; - - // check cells - for (offset, def_idx) in comp_def.cell_offset_map.iter() { - let def = &env.ctx.as_ref().secondary[*def_idx]; - if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { - self.current_component = - ¤t_comp_ledger.index_bases + offset; - return Ok(()); + // case 1: we are a concrete path so far + if self.first_ref.is_none() { + // this unwrap is safe + let current_comp = *self.concrete_path.last().unwrap(); + + let current_comp_ledger = + env.cells[current_comp].as_comp().unwrap(); + let comp_def = &env.ctx().secondary[current_comp_ledger.comp_id]; + + // check cells + for (offset, def_idx) in comp_def.cell_offset_map.iter() { + let def = &env.ctx().secondary[*def_idx]; + if env.ctx().lookup_name(def.name) == target.as_ref() { + self.concrete_path + .push(¤t_comp_ledger.index_bases + offset); + return Ok(()); + } + } + + // check ref cells + for (offset, def_idx) in comp_def.ref_cell_offset_map.iter() { + let def = &env.ctx().secondary[*def_idx]; + if env.ctx().lookup_name(def.name) == target.as_ref() { + let global_offset = + ¤t_comp_ledger.index_bases + offset; + + self.first_ref = Some(global_offset); + return Ok(()); + } } + Err(TraversalError::Cell(target.as_ref().to_string())) } + // case 2: we're in abstract territory + else { + let current_comp_idx = self.compute_current_comp_def(env); - // check ref cells - for (offset, def_idx) in comp_def.ref_cell_offset_map.iter() { - let def = &env.ctx.as_ref().secondary[*def_idx]; - if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { - let global_offset = ¤t_comp_ledger.index_bases + offset; - if let Some(cell) = &env.ref_cells[global_offset] { - self.current_component = *cell; + let current_comp_def = &env.ctx().secondary[current_comp_idx]; + for (offset, def_idx) in current_comp_def.cell_offset_map.iter() { + if env.ctx().lookup_name(env.ctx().secondary[*def_idx].name) + == target.as_ref() + { + self.abstract_path.push(offset.into()); + return Ok(()); + } + } + + for (offset, def_idx) in current_comp_def.ref_cell_offset_map.iter() + { + if env.ctx().lookup_name(env.ctx().secondary[*def_idx].name) + == target.as_ref() + { + self.abstract_path.push(offset.into()); return Ok(()); - } else { - return Err(TraversalError::UninstantiatedRef( - global_offset, - )); } } + + Err(TraversalError::Cell(target.as_ref().to_string())) } + } + + fn compute_current_comp_def + Clone>( + &self, + env: &Environment, + ) -> crate::flatten::flat_ir::prelude::ComponentIdx { + let last_comp = *self.concrete_path.last().unwrap(); + let last_comp_ledger = env.cells[last_comp].as_comp().unwrap(); + let last_comp_def = &env.ctx().secondary[last_comp_ledger.comp_id]; + + let first_ref_local = + self.first_ref.unwrap() - &last_comp_ledger.index_bases; + let first_ref_def = last_comp_def.ref_cell_offset_map[first_ref_local]; + let def = &env.ctx().secondary[first_ref_def]; - Err(TraversalError::Cell(target.as_ref().to_string())) + let mut current_comp_idx = *def + .prototype + .as_component() + .expect("called next_cell on a primitive ref cell"); + + for cell_ref in self.abstract_path.iter() { + let def = &env.ctx().secondary[current_comp_idx]; + match cell_ref { + CellRef::Local(l) => { + let local_def = def.cell_offset_map[*l]; + current_comp_idx = *env.ctx().secondary[local_def] + .prototype + .as_component() + .unwrap(); + } + CellRef::Ref(r) => { + let ref_def = def.ref_cell_offset_map[*r]; + current_comp_idx = *env.ctx().secondary[ref_def] + .prototype + .as_component() + .unwrap(); + } + } + } + current_comp_idx } pub fn last_step + Clone, S: AsRef>( - &self, + mut self, env: &Environment, target: S, - ) -> Result { - let current_comp_ledger = - env.cells[self.current_component].as_comp().unwrap(); - let comp_def = &env.ctx.as_ref().secondary[current_comp_ledger.comp_id]; - - // check cells - for (offset, def_idx) in comp_def.cell_offset_map.iter() { - let def = &env.ctx.as_ref().secondary[*def_idx]; - if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { - return Ok(TraversalEnd::Cell(CellTargetInfo { - cell: ¤t_comp_ledger.index_bases + offset, - parent: self.current_component, - })); + ) -> Result { + if let Some(first_ref) = self.first_ref { + let current_comp_idx = if !self.abstract_path.is_empty() { + self.compute_current_comp_def(env) + } else { + let last_comp = *self.concrete_path.last().unwrap(); + let last_comp_ledger = env.cells[last_comp].as_comp().unwrap(); + last_comp_ledger.comp_id + }; + + let current_comp_def = &env.ctx().secondary[current_comp_idx]; + for (offset, def_idx) in current_comp_def.cell_offset_map.iter() { + if env.ctx().lookup_name(env.ctx().secondary[*def_idx].name) + == target.as_ref() + { + self.abstract_path.push(offset.into()); + return Ok(Path::AbstractCell(LazyCellPath { + concrete_prefix: self.concrete_path, + first_ref, + abstract_suffix: self.abstract_path, + })); + } + + for port in env.ctx().secondary[*def_idx].ports.iter() { + let port_def_idx = current_comp_def.port_offset_map[port]; + let port_name = env.ctx().secondary[port_def_idx].name; + if env.ctx().lookup_name(port_name) == target.as_ref() { + return Ok(Path::AbstractPort { + cell: LazyCellPath { + concrete_prefix: self.concrete_path, + first_ref, + abstract_suffix: self.abstract_path, + }, + port: port.into(), + }); + } + } } - // check ports - for port in def.ports.iter() { - if env.ctx.as_ref().lookup_name( - env.ctx.as_ref().secondary[comp_def.port_offset_map[port]] - .name, - ) == target.as_ref() + for (offset, def_idx) in current_comp_def.ref_cell_offset_map.iter() + { + if env.ctx().lookup_name(env.ctx().secondary[*def_idx].name) + == target.as_ref() { - let port_idx = ¤t_comp_ledger.index_bases + port; - return Ok(TraversalEnd::Port(PortTargetInfo { - port: port_idx, - parent: ¤t_comp_ledger.index_bases + offset, + self.abstract_path.push(offset.into()); + return Ok(Path::AbstractCell(LazyCellPath { + concrete_prefix: self.concrete_path, + first_ref, + abstract_suffix: self.abstract_path, + })); + } + + for port in env.ctx().secondary[*def_idx].ports.iter() { + let port_def_idx = + current_comp_def.ref_port_offset_map[port]; + let port_name = env.ctx().secondary[port_def_idx]; + if env.ctx().lookup_name(port_name) == target.as_ref() { + return Ok(Path::AbstractPort { + cell: LazyCellPath { + concrete_prefix: self.concrete_path, + first_ref, + abstract_suffix: self.abstract_path, + }, + port: port.into(), + }); + } + } + } + } else { + let current_comp = *self.concrete_path.last().unwrap(); + + let current_comp_ledger = + env.cells[current_comp].as_comp().unwrap(); + let comp_def = &env.ctx().secondary[current_comp_ledger.comp_id]; + + // check cells + for (offset, def_idx) in comp_def.cell_offset_map.iter() { + let def = &env.ctx().secondary[*def_idx]; + if env.ctx().lookup_name(def.name) == target.as_ref() { + return Ok(Path::Cell( + ¤t_comp_ledger.index_bases + offset, + )); + } + + // check ports + for port in def.ports.iter() { + let name = env.ctx().secondary + [comp_def.port_offset_map[port]] + .name; + if env.ctx().lookup_name(name) == target.as_ref() { + let port_idx = ¤t_comp_ledger.index_bases + port; + return Ok(Path::Port(port_idx)); + } + } + } + + // check ref cells + for (offset, def_idx) in comp_def.ref_cell_offset_map.iter() { + let def = &env.ctx().secondary[*def_idx]; + if env.ctx().lookup_name(def.name) == target.as_ref() { + let global_offset = + ¤t_comp_ledger.index_bases + offset; + + return Ok(Path::AbstractCell(LazyCellPath { + concrete_prefix: self.concrete_path, + first_ref: global_offset, + abstract_suffix: SmallVec::new(), })); } + + // we don't check ports here since there can't be ref ports + // without first having visited a ref cell } } - // check ref cells - for (offset, def_idx) in comp_def.ref_cell_offset_map.iter() { - let def = &env.ctx.as_ref().secondary[*def_idx]; - if env.ctx.as_ref().lookup_name(def.name) == target.as_ref() { - let global_offset = ¤t_comp_ledger.index_bases + offset; + Err(TraversalError::Unknown(target.as_ref().to_string())) + } +} + +#[derive(Debug, Clone)] +pub struct LazyCellPath { + pub concrete_prefix: SmallVec<[GlobalCellIdx; 4]>, + pub first_ref: GlobalRefCellIdx, + pub abstract_suffix: SmallVec<[CellRef; 2]>, +} + +#[derive(Debug, Clone)] +pub enum Path { + Cell(GlobalCellIdx), + Port(GlobalPortIdx), + AbstractCell(LazyCellPath), + AbstractPort { cell: LazyCellPath, port: PortRef }, +} - return Ok(TraversalEnd::RefCell(RefCellTargetInfo { - cell: global_offset, - parent: self.current_component, - })); +impl Path { + fn walk_lazy_cell_path + Clone>( + env: &Environment, + path: &LazyCellPath, + ) -> Result { + if let Some(cell_actual) = env.ref_cells[path.first_ref] { + let mut current = cell_actual; + for abstract_cell in path.abstract_suffix.iter() { + let current_comp_ledger = env.cells[current].as_comp().unwrap(); + + match abstract_cell { + CellRef::Local(l) => { + current = ¤t_comp_ledger.index_bases + l; + } + CellRef::Ref(r) => { + let ref_global_offset = + ¤t_comp_ledger.index_bases + r; + if let Some(ref_actual) = + env.ref_cells[ref_global_offset] + { + current = ref_actual; + } else { + // todo griffin: improve error message + return Err(ResolvePathError(format!( + "", + ref_global_offset + ))); + } + } + } } + Ok(current) + } else { + // todo griffin: improve error message + Err(ResolvePathError(format!( + "", + path.first_ref + ))) + } + } - // check ports - for port in def.ports.iter() { - if env.ctx.as_ref().lookup_name( - env.ctx.as_ref().secondary - [comp_def.ref_port_offset_map[port]], - ) == target.as_ref() - { - let port_idx = ¤t_comp_ledger.index_bases + port; - return Ok(TraversalEnd::RefPort(port_idx)); + pub fn resolve_path + Clone>( + &self, + env: &Environment, + ) -> Result { + Ok(match self { + Path::Cell(c) => PathResolution::Cell(*c), + Path::Port(p) => PathResolution::Port(*p), + Path::AbstractCell(c) => { + PathResolution::Cell(Self::walk_lazy_cell_path(env, c)?) + } + Path::AbstractPort { cell, port } => { + let cell = Self::walk_lazy_cell_path(env, cell)?; + if let Some(ledger) = env.cells[cell].as_comp() { + // we are looking at interface ports here + let port_idx = &ledger.index_bases + + port + .as_local() + .expect("path is malformed. This is an error please report it"); + + PathResolution::Port(port_idx) + } else { + let parent = env + .get_parent_cell_from_cell(cell) + .expect("primitive cell has no parent. This is an error please report it"); + + let ledger = env.cells[parent].as_comp().unwrap(); + match port { + PortRef::Local(l) => { + PathResolution::Port(&ledger.index_bases + l) + } + PortRef::Ref(r) => { + let ref_global_offset = &ledger.index_bases + r; + let ref_actual = env.ref_ports[ref_global_offset].expect("ref port is undefined but parent cell is not. This should never happen. This is an error please report it"); + + PathResolution::Port(ref_actual) + } + } } } + }) + } + + pub fn as_string + Clone>( + &self, + env: &Environment, + ) -> String { + match self { + Path::Cell(c) => env.get_full_name(c), + Path::Port(p) => env.get_full_name(p), + Path::AbstractCell(c) => todo!("ref cells not supported yet"), + Path::AbstractPort { cell, port } => { + todo!("ref ports not supported yet") + } } + } +} + +pub enum PathResolution { + Cell(GlobalCellIdx), + Port(GlobalPortIdx), +} + +impl PathResolution { + #[must_use] + pub fn as_cell(&self) -> Option<&GlobalCellIdx> { + if let Self::Cell(v) = self { + Some(v) + } else { + None + } + } - Err(TraversalError::Target(target.as_ref().to_string())) + #[must_use] + pub fn as_port(&self) -> Option<&GlobalPortIdx> { + if let Self::Port(v) = self { + Some(v) + } else { + None + } } } + +#[derive(Debug, Error)] +#[error("Could not resolve path. Ref cell {0} is undefined")] +pub struct ResolvePathError(String); + +#[derive(Debug, Error)] +pub enum PathError { + #[error(transparent)] + ResolvePathError(#[from] ResolvePathError), + + #[error(transparent)] + TraversalError(#[from] TraversalError), +} From b54715951c2488e1e6cb309e94ddd76b2e477da5 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Thu, 11 Jul 2024 15:43:25 -0400 Subject: [PATCH 41/76] update runt tests --- interp/cider2-tests/runt.toml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/interp/cider2-tests/runt.toml b/interp/cider2-tests/runt.toml index 0e17516c59..613379ab2d 100644 --- a/interp/cider2-tests/runt.toml +++ b/interp/cider2-tests/runt.toml @@ -5,7 +5,7 @@ ver = "0.4.1" name = "unit" paths = ["../tests/unit/*.futil"] cmd = """ - ../../target/debug/cider {} -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ timeout = 10 expect_dir = "unit" @@ -14,7 +14,7 @@ expect_dir = "unit" name = "multi-comp" paths = ["multi-comp/*.futil"] cmd = """ - ../../target/debug/cider {} -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ timeout = 10 @@ -32,7 +32,7 @@ name = "complex" paths = ["../tests/complex/*.futil"] cmd = """ - ../../target/debug/cider {} -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ timeout = 10 expect_dir = "complex" @@ -41,7 +41,7 @@ expect_dir = "complex" name = "primitives" paths = ["../tests/primitives/*.futil"] cmd = """ -../../target/debug/cider {} -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ timeout = 10 expect_dir = "primitives" @@ -50,7 +50,7 @@ expect_dir = "primitives" name = "par to seq" paths = ["../tests/control/par_reg.futil", "../tests/control/par_mem.futil"] cmd = """ -../../target/debug/calyx {} -p par-to-seq -l ../../ | ../../target/debug/cider -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/calyx {} -p par-to-seq -l ../../ | ../../target/debug/cider -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ timeout = 10 expect_dir = "par-to-seq" @@ -59,7 +59,7 @@ expect_dir = "par-to-seq" name = "control" paths = ["../tests/control/*.futil", "../tests/control/iteration/*.futil"] cmd = """ -../../target/debug/cider {} -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ timeout = 10 expect_dir = "control" @@ -89,7 +89,7 @@ paths = [ "../tests/control/iteration/*.futil", ] cmd = """ -../../target/debug/calyx {} -d pre-opt -d post-opt -p simplify-with-control -l ../../ --log off | ../../target/debug/cider -l ../../ flat --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys +../../target/debug/calyx {} -d pre-opt -d post-opt -p simplify-with-control -l ../../ --log off | ../../target/debug/cider -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ expect_dir = "control" # timeout = 10 From 3d06ba86a1412af6b8153b16f16dd41c245ffbed Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Thu, 11 Jul 2024 17:47:12 -0400 Subject: [PATCH 42/76] try to fix fud stuff --- fud2/scripts/cider.rhai | 2 +- fud2/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fud2/scripts/cider.rhai b/fud2/scripts/cider.rhai index 2bb9f0ef75..85ad6e23c5 100644 --- a/fud2/scripts/cider.rhai +++ b/fud2/scripts/cider.rhai @@ -43,7 +43,7 @@ fn cider_setup(e) { e.rule( "run-cider", - "$cider-exe -l $calyx-base --data data.dump $in flat > $out", + "$cider-exe -l $calyx-base --data data.dump $in > $out", ); e.rule("dump-to-interp", "$cider-converter --to cider $in > $out"); diff --git a/fud2/src/lib.rs b/fud2/src/lib.rs index 788fe93f43..b219a21c36 100644 --- a/fud2/src/lib.rs +++ b/fud2/src/lib.rs @@ -554,7 +554,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { e.rule( "run-cider", - "$cider-exe -l $calyx-base --data data.dump $in flat > $out", + "$cider-exe -l $calyx-base --data data.dump $in > $out", )?; e.rule("dump-to-interp", "$cider-converter --to cider $in > $out")?; From 136d69d3216e5a59252a09cf03a0003937d20a15 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Thu, 11 Jul 2024 18:24:11 -0400 Subject: [PATCH 43/76] typo --- interp/src/flatten/structures/environment/env.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index d1fc932eaf..e8579debef 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -1137,7 +1137,7 @@ impl + Clone> Simulator { /// A helper function which inserts indicies for the ref cells and ports /// used in the invoke statement - fn intialize_ref_cells( + fn initialize_ref_cells( &mut self, parent_comp: GlobalCellIdx, invoke: &Invoke, @@ -1319,7 +1319,7 @@ impl + Clone> Simulator { self.env.ports[go] = PortValue::new_implicit(Value::bit_high()); - self.intialize_ref_cells(node.comp, i); + self.initialize_ref_cells(node.comp, i); } non_leaf => { unreachable!("non-leaf node {:?} included in list of leaf nodes. This should never happen, please report it.", non_leaf) From b7ccc79c06060d1b514f7ccb708ebbf2fa44b26d Mon Sep 17 00:00:00 2001 From: ok <59588824+jku20@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:22:59 -0400 Subject: [PATCH 44/76] [fud2] Generate intermediate files in workdir. (#2205) Fix a regression where intermediate files were not generated in workdir. --- fud2/fud-core/src/exec/driver.rs | 35 ++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/fud2/fud-core/src/exec/driver.rs b/fud2/fud-core/src/exec/driver.rs index da7c1a1bd3..3bd14857f7 100644 --- a/fud2/fud-core/src/exec/driver.rs +++ b/fud2/fud-core/src/exec/driver.rs @@ -22,12 +22,16 @@ impl Driver { /// Generate a filename with an extension appropriate for the given State, `state_ref` relative /// to `workdir`. /// + /// If `user_visible`, then the path should not be in the working directory because the user + /// should see the generated file (or provides the file). + /// /// If `used` is false, the state is neither an output to the user, or used as input an op. In /// this case, the filename associated with the state will be prefixed by `_unused_`. fn gen_name( &self, state_ref: StateRef, used: bool, + user_visible: bool, workdir: &Utf8PathBuf, ) -> IO { let state = &self.states[state_ref]; @@ -39,14 +43,21 @@ impl Driver { "" }; + // Only make the path relative, i.e. not in the workdir if the file should be user visible. + let post_process = if user_visible { + utils::relative_path + } else { + |x: &Utf8Path, _y: &Utf8Path| x.to_path_buf() + }; + IO::File(if state.is_pseudo() { - utils::relative_path( + post_process( &Utf8PathBuf::from(format!("{}pseudo_{}", prefix, state.name)), workdir, ) } else { // TODO avoid collisions in case of reused extensions... - utils::relative_path( + post_process( &Utf8PathBuf::from(format!("{}{}", prefix, state.name)) .with_extension(extension), workdir, @@ -79,17 +90,24 @@ impl Driver { "" }; + // If the state is found in `states` the user should see this file. Amoung other things, + // this means it should be in their directory and not the working directory. + let user_visible = states.contains(&state_ref); + if let Some(idx) = states.iter().position(|&s| s == state_ref) { if let Some(filename) = files.get(idx) { - IO::File(utils::relative_path(&filename.clone(), workdir)) + if user_visible { + IO::File(utils::relative_path(&filename.clone(), workdir)) + } else { + IO::File(filename.clone()) + } } else { - IO::StdIO(utils::relative_path( - &Utf8PathBuf::from(stdio_name).with_extension(extension), - workdir, - )) + IO::StdIO( + Utf8PathBuf::from(stdio_name).with_extension(extension), + ) } } else { - self.gen_name(state_ref, used, workdir) + self.gen_name(state_ref, used, user_visible, workdir) } } @@ -132,6 +150,7 @@ impl Driver { } else { format!("_to_stdout_{}", self.states[state].name) }; + self.gen_name_or_use_given( state, req_states, From f1c56ed5b3d4dcc7eff977f72c2073eb11209ce0 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 16:44:20 -0400 Subject: [PATCH 45/76] We're working again!! --- .../src/flatten/structures/environment/env.rs | 252 ++++++++++-------- .../structures/environment/program_counter.rs | 46 +++- 2 files changed, 185 insertions(+), 113 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index e8579debef..86843530c9 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -3,7 +3,7 @@ use super::{ context::Context, index_trait::IndexRange, indexed_map::IndexedMap, }, assignments::{GroupInterfacePorts, ScheduledAssignments}, - program_counter::{PcMaps, ProgramCounter}, + program_counter::{PcMaps, ProgramCounter, WithEntry}, traverser::{Path, PathResolution, TraversalError}, }; use crate::{ @@ -1128,10 +1128,13 @@ impl + Clone> Simulator { ScheduledAssignments::new(x.comp, x.assigns, None) }), ) - .chain(self.env.pc.with_map().iter().map(|(ctrl_pt, comb_grp)| { - let assigns = self.ctx().primary[*comb_grp].assignments; - ScheduledAssignments::new(ctrl_pt.comp, assigns, None) - })) + .chain(self.env.pc.with_map().iter().map( + |(ctrl_pt, with_entry)| { + let assigns = + self.ctx().primary[with_entry.group].assignments; + ScheduledAssignments::new(ctrl_pt.comp, assigns, None) + }, + )) .collect() } @@ -1247,22 +1250,16 @@ impl + Clone> Simulator { // pub fn converge(&mut self) -> InterpreterResult<()> { - todo!() - } - - pub fn step(&mut self) -> InterpreterResult<()> { - // place to keep track of what groups we need to conclude at the end of - // this step. These are indices into the program counter + self.undef_all_ports(); + self.set_root_go_high(); - // In the future it may be worthwhile to preallocate some space to these - // buffers. Can pick anything from zero to the number of nodes in the - // program counter as the size - let mut leaf_nodes = vec![]; - let mut set_done_high = vec![]; - let mut set_done_low: HashSet = HashSet::new(); + for comp in self.env.pc.finished_comps() { + let done_port = self.env.get_comp_done(*comp); + self.env.ports[done_port] = + PortValue::new_implicit(Value::bit_high()); + } - let mut new_nodes = vec![]; - let (mut vecs, mut par_map, mut with_map, mut repeat_map) = + let (vecs, par_map, mut with_map, repeat_map) = self.env.pc.take_fields(); // for mutability reasons, this should be a cheap clone, either an RC in @@ -1270,40 +1267,19 @@ impl + Clone> Simulator { let ctx = self.env.ctx.clone(); let ctx_ref = ctx.as_ref(); - // TODO griffin: This has become an unwieldy mess and should really be - // refactored into a handful of internal functions - vecs.retain_mut(|node| { - self.evaluate_control_node( - node, - &mut set_done_low, - &mut new_nodes, - &mut leaf_nodes, - &mut set_done_high, - (&mut par_map, &mut with_map, &mut repeat_map), - ) - }); - - self.env - .pc - .restore_fields((vecs, par_map, with_map, repeat_map)); - - // insert all the new nodes from the par into the program counter - self.env.pc.vec_mut().extend(new_nodes); + for node in vecs.iter() { + let comp_done = self.env.get_comp_done(node.comp); - self.undef_all_ports(); - self.set_root_go_high(); - for port in set_done_high { - self.env.ports[port] = PortValue::new_implicit(Value::bit_high()); - } - - for port in set_done_low { - self.env.ports[port] = PortValue::new_implicit(Value::bit_low()); - } + // if the done is not high & defined, we need to set it to low + if !self.env.ports[comp_done].as_bool().unwrap_or_default() { + self.env.ports[comp_done] = + PortValue::new_implicit(Value::bit_low()); + } - for node in &leaf_nodes { match &ctx_ref.primary[node.control_node_idx] { - ControlNode::Enable(e) => { - let go_local = ctx_ref.primary[e.group()].go; + // actual nodes + ControlNode::Enable(enable) => { + let go_local = ctx_ref.primary[enable.group()].go; let index_bases = &self.env.cells[node.comp] .as_comp() .unwrap() @@ -1314,22 +1290,62 @@ impl + Clone> Simulator { self.env.ports[go_idx] = PortValue::new_implicit(Value::bit_high()); } - ControlNode::Invoke(i) => { - let go = self.get_global_port_idx(&i.go, node.comp); + ControlNode::Invoke(invoke) => { + if invoke.comb_group.is_some() + && !with_map.contains_key(node) + { + with_map.insert( + node.clone(), + WithEntry::new(invoke.comb_group.unwrap()), + ); + } + + let go = self.get_global_port_idx(&invoke.go, node.comp); self.env.ports[go] = PortValue::new_implicit(Value::bit_high()); - self.initialize_ref_cells(node.comp, i); + // TODO griffin: should make this skip initialization if + // it's already initialized + self.initialize_ref_cells(node.comp, invoke); } - non_leaf => { - unreachable!("non-leaf node {:?} included in list of leaf nodes. This should never happen, please report it.", non_leaf) + // with nodes + ControlNode::If(i) => { + if i.cond_group().is_some() && !with_map.contains_key(node) + { + with_map.insert( + node.clone(), + WithEntry::new(i.cond_group().unwrap()), + ); + } + } + ControlNode::While(w) => { + if w.cond_group().is_some() && !with_map.contains_key(node) + { + with_map.insert( + node.clone(), + WithEntry::new(w.cond_group().unwrap()), + ); + } } + // -- + ControlNode::Empty(_) + | ControlNode::Seq(_) + | ControlNode::Par(_) + | ControlNode::Repeat(_) => {} } } - let assigns_bundle = self.get_assignments(&leaf_nodes); + self.env + .pc + .restore_fields((vecs, par_map, with_map, repeat_map)); - self.simulate_combinational(&assigns_bundle)?; + let assigns_bundle = self.get_assignments(self.env.pc.node_slice()); + + self.simulate_combinational(&assigns_bundle) + } + + pub fn step(&mut self) -> InterpreterResult<()> { + self.converge()?; let out: Result<(), (GlobalCellIdx, BoxedInterpreterError)> = { let mut result = Ok(()); @@ -1348,16 +1364,36 @@ impl + Clone> Simulator { result }; + self.env.pc.clear_finished_comps(); + + let mut new_nodes = vec![]; + let (mut vecs, mut par_map, mut with_map, mut repeat_map) = + self.env.pc.take_fields(); + + // TODO griffin: This has become an unwieldy mess and should really be + // refactored into a handful of internal functions + vecs.retain_mut(|node| { + self.evaluate_control_node( + node, + &mut new_nodes, + (&mut par_map, &mut with_map, &mut repeat_map), + ) + }); + + self.env + .pc + .restore_fields((vecs, par_map, with_map, repeat_map)); + + // insert all the new nodes from the par into the program counter + self.env.pc.vec_mut().extend(new_nodes); + out.map_err(|(idx, err)| self.env.make_nice_error(idx, err)) } fn evaluate_control_node( &mut self, node: &mut ControlPoint, - set_done_low: &mut HashSet, new_nodes: &mut Vec, - leaf_nodes: &mut Vec, - set_done_high: &mut Vec, maps: PcMaps, ) -> bool { let (par_map, with_map, repeat_map) = maps; @@ -1368,11 +1404,6 @@ impl + Clone> Simulator { let ctx_clone = self.env.ctx.clone(); let ctx = ctx_clone.as_ref(); - // if the done is not high & defined, we need to set it to low - if !self.env.ports[comp_done].as_bool().unwrap_or_default() { - set_done_low.insert(comp_done); - } - if !self.env.ports[comp_go].as_bool().unwrap_or_default() || self.env.ports[comp_done].as_bool().unwrap_or_default() { @@ -1445,7 +1476,6 @@ impl + Clone> Simulator { + done_local; if !self.env.ports[done_idx].as_bool().unwrap_or_default() { - leaf_nodes.push(node.clone()); true } else { // This group has finished running and may be removed @@ -1460,11 +1490,13 @@ impl + Clone> Simulator { let done = self.get_global_port_idx(&i.done, node.comp); if i.comb_group.is_some() && !with_map.contains_key(node) { - with_map.insert(node.clone(), i.comb_group.unwrap()); + with_map.insert( + node.clone(), + WithEntry::new(i.comb_group.unwrap()), + ); } if !self.env.ports[done].as_bool().unwrap_or_default() { - leaf_nodes.push(node.clone()); true } else { self.cleanup_ref_cells(node.comp, i); @@ -1482,10 +1514,7 @@ impl + Clone> Simulator { // either we are not a par node, or we are the last par node (!matches!(&self.env.ctx.as_ref().primary[node.control_node_idx], ControlNode::Par(_)) || !par_map.contains_key(node)) { - let done_port = self.env.get_comp_done(node.comp); - set_done_high.push(done_port); - // make sure we don't set this port low - set_done_low.remove(&done_port); + self.env.pc.set_finshed_comp(node.comp); let comp_ledger = self.env.cells[node.comp].unwrap_comp(); *node = node.new_retain_comp( self.env.ctx.as_ref().primary[comp_ledger.comp_id] @@ -1501,23 +1530,23 @@ impl + Clone> Simulator { fn handle_while( &mut self, w: &While, - with_map: &mut HashMap, + with_map: &mut HashMap, node: &mut ControlPoint, ) -> bool { - if w.cond_group().is_some() { - let comb_group = with_map - .entry(node.clone()) - .or_insert(w.cond_group().unwrap()); - let comb_assigns = ScheduledAssignments::new( - node.comp, - self.env.ctx.as_ref().primary[*comb_group].assignments, - None, - ); - - // NOTE THIS MIGHT INTRODUCE A BUG SINCE THE PORTS - // HAVE NOT BEEN UNDEFINED YET - self.simulate_combinational(&[comb_assigns]).expect("something went wrong in evaluating with clause for while statement"); - } + // if w.cond_group().is_some() { + // let comb_group = with_map + // .entry(node.clone()) + // .or_insert(w.cond_group().unwrap()); + // let comb_assigns = ScheduledAssignments::new( + // node.comp, + // self.env.ctx.as_ref().primary[*comb_group].assignments, + // None, + // ); + + // // NOTE THIS MIGHT INTRODUCE A BUG SINCE THE PORTS + // // HAVE NOT BEEN UNDEFINED YET + // self.simulate_combinational(&[comb_assigns]).expect("something went wrong in evaluating with clause for while statement"); + // } let target = GlobalPortRef::from_local( w.cond_port(), @@ -1551,33 +1580,38 @@ impl + Clone> Simulator { fn handle_if( &mut self, - with_map: &mut HashMap, + with_map: &mut HashMap, node: &mut ControlPoint, i: &If, ) -> bool { - // this is bad but it works for now, what a headache - let contains_node = with_map.contains_key(node); - if i.cond_group().is_some() && !contains_node { - let comb_group = i.cond_group().unwrap(); - let comb_assigns = ScheduledAssignments::new( - node.comp, - self.env.ctx.as_ref().primary[comb_group].assignments, - None, - ); - - with_map.insert(node.clone(), comb_group); - - // TODO griffin: Sort out a way to make this error less terrible - // NOTE THIS MIGHT INTRODUCE A BUG SINCE THE PORTS - // HAVE NOT BEEN UNDEFINED YET - self.simulate_combinational(&[comb_assigns]).expect("something went wrong in evaluating with clause for if statement"); - - // now we fall through and proceed as normal - } - if i.cond_group().is_some() && contains_node { + // // this is bad but it works for now, what a headache + // let contains_node = with_map.contains_key(node); + // if i.cond_group().is_some() && !contains_node { + // let comb_group = i.cond_group().unwrap(); + // let comb_assigns = ScheduledAssignments::new( + // node.comp, + // self.env.ctx.as_ref().primary[comb_group].assignments, + // None, + // ); + + // with_map.insert(node.clone(), comb_group); + + // // TODO griffin: Sort out a way to make this error less terrible + // // NOTE THIS MIGHT INTRODUCE A BUG SINCE THE PORTS + // // HAVE NOT BEEN UNDEFINED YET + // self.simulate_combinational(&[comb_assigns]).expect("something went wrong in evaluating with clause for if statement"); + + // // now we fall through and proceed as normal + // } + + if i.cond_group().is_some() && with_map.get(node).unwrap().entered { with_map.remove(node); node.mutate_into_next(self.env.ctx.as_ref()) } else { + if let Some(entry) = with_map.get_mut(node) { + entry.set_entered() + } + let target = GlobalPortRef::from_local( i.cond_port(), &self.env.cells[node.comp].unwrap_comp().index_bases, @@ -1609,7 +1643,7 @@ impl + Clone> Simulator { /// Evaluate the entire program pub fn run_program(&mut self) -> InterpreterResult<()> { while !self.is_done() { - // self._print_env(); + // self.print_pc(); self.step()? } Ok(()) diff --git a/interp/src/flatten/structures/environment/program_counter.rs b/interp/src/flatten/structures/environment/program_counter.rs index 3cabda5e11..7b1e52f95d 100644 --- a/interp/src/flatten/structures/environment/program_counter.rs +++ b/interp/src/flatten/structures/environment/program_counter.rs @@ -348,6 +348,26 @@ const CONTROL_POINT_PREALLOCATE: usize = 16; /// children would be a lot. pub type ChildCount = u16; +#[derive(Debug, Clone)] +pub struct WithEntry { + pub group: CombGroupIdx, + /// Whether or not a body has been executed. Only used by if statements + pub entered: bool, +} + +impl WithEntry { + pub fn new(group: CombGroupIdx) -> Self { + Self { + group, + entered: false, + } + } + + pub fn set_entered(&mut self) { + self.entered = true; + } +} + /// The program counter for the whole program execution. Wraps over a vector of /// the active leaf statements for each component instance. #[derive(Debug, Default)] @@ -355,8 +375,9 @@ pub(crate) struct ProgramCounter { vec: Vec, par_map: HashMap, continuous_assigns: Vec, - with_map: HashMap, + with_map: HashMap, repeat_map: HashMap, + just_finished_comps: Vec, } // we need a few things from the program counter @@ -364,13 +385,13 @@ pub(crate) struct ProgramCounter { pub type PcFields = ( Vec, HashMap, - HashMap, + HashMap, HashMap, ); pub type PcMaps<'a> = ( &'a mut HashMap, - &'a mut HashMap, + &'a mut HashMap, &'a mut HashMap, ); @@ -382,6 +403,7 @@ impl ProgramCounter { continuous_assigns: Vec::new(), with_map: HashMap::new(), repeat_map: HashMap::new(), + just_finished_comps: Vec::new(), } } @@ -389,6 +411,10 @@ impl ProgramCounter { self.vec.iter() } + pub fn node_slice(&self) -> &[ControlPoint] { + &self.vec + } + pub fn _iter_mut(&mut self) -> impl Iterator { self.vec.iter_mut() } @@ -435,9 +461,21 @@ impl ProgramCounter { &self.continuous_assigns } - pub(crate) fn with_map(&self) -> &HashMap { + pub(crate) fn with_map(&self) -> &HashMap { &self.with_map } + + pub fn set_finshed_comp(&mut self, comp: GlobalCellIdx) { + self.just_finished_comps.push(comp) + } + + pub fn finished_comps(&self) -> &[GlobalCellIdx] { + &self.just_finished_comps + } + + pub fn clear_finished_comps(&mut self) { + self.just_finished_comps.clear() + } } impl<'a> IntoIterator for &'a ProgramCounter { From 836380e3ff2902fa3398aa37763a2926afad1a6a Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 17:06:55 -0400 Subject: [PATCH 46/76] fix thingy --- interp/src/debugger/debugger_core.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index 717dd246fd..91b0151b53 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -369,6 +369,7 @@ impl + Clone> Debugger { while self.interpreter.is_group_running(target) { self.interpreter.step()?; } + self.interpreter.converge()?; }; Ok(()) } From 346f4257482b0ce09ff082980c49f9eb79170515 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 17:35:49 -0400 Subject: [PATCH 47/76] fix print case for cell in main comp --- interp/src/flatten/structures/environment/env.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 86843530c9..0a791473b1 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -868,14 +868,16 @@ impl + Clone> Environment { if name.len() == 1 && &name[0] == ctx.lookup_name(ctx.entry_point) { Ok(Path::Cell(Self::get_root())) } else { - let mut iter = name[0..name.len() - 2].iter(); - if &name[0] == ctx.lookup_name(ctx.entry_point) { - // skip the main name - iter.next(); - } + if name.len() != 1 { + let mut iter = name[0..name.len() - 2].iter(); + if &name[0] == ctx.lookup_name(ctx.entry_point) { + // skip the main name + iter.next(); + } - for name in iter { - current.next_cell(self, name)?; + for name in iter { + current.next_cell(self, name)?; + } } let last = name.last().unwrap(); From aaf490bc6fa3e75323c798161d3ab21d631b5f8d Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 17:36:08 -0400 Subject: [PATCH 48/76] converge when starting --- interp/src/debugger/debugger_core.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index 91b0151b53..e97fdd39d5 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -93,8 +93,9 @@ impl + Clone> Debugger { program_context: C, data_file: &Option, ) -> InterpreterResult { - let interpreter = + let mut interpreter = Simulator::build_simulator(program_context.clone(), data_file)?; + interpreter.converge()?; Ok(Self { interpreter, @@ -339,7 +340,7 @@ impl + Clone> Debugger { match group.lookup_group(self.program_context.as_ref()) { Ok(v) => v, Err(e) => { - println!("Error: {}", owo_colors::OwoColorize::red(&e)); + println!("Error: {}", e.red()); return; } }; @@ -358,7 +359,7 @@ impl + Clone> Debugger { let target = match target.lookup_group(self.program_context.as_ref()) { Ok(v) => v, Err(e) => { - println!("Error: {}", owo_colors::OwoColorize::red(&e)); + println!("Error: {}", e.red()); return Ok(()); } }; From 40ce60c4bc9f988945f8e93d903db59419a2d60e Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 17:36:28 -0400 Subject: [PATCH 49/76] fix breakpoint printing --- interp/src/debugger/commands/core.rs | 2 +- .../src/debugger/debugging_context/context.rs | 21 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index 92e03cc039..784f63763b 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -21,7 +21,7 @@ use crate::{ }; /// Identifier for breakpoints -#[derive(Debug, Eq, Copy, Clone, PartialEq, Hash)] +#[derive(Debug, Eq, Copy, Clone, PartialEq, Hash, PartialOrd, Ord)] pub struct BreakpointIdx(u32); impl Display for BreakpointIdx { diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index 95f14ef7dc..8ad66e75f4 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -67,8 +67,21 @@ impl BreakPoint { } pub fn format(&self, ctx: &Context) -> String { + let parent_comp = ctx + .primary + .components + .keys() + .find(|comp_id| { + ctx.secondary[*comp_id] + .definitions + .groups() + .contains(self.group) + }) + .unwrap(); + let parent_name = ctx.lookup_name(parent_comp); + let group_name = ctx.lookup_name(self.group); - format!("{}: {}", group_name, self.state) + format!("{parent_name}::{group_name}: {}", self.state) } } @@ -672,7 +685,11 @@ impl DebuggingContext { pub fn print_breakpoints(&self, ctx: &Context) { println!("{}Current breakpoints:", SPACING); - for (breakpoint_idx, breakpoint) in self.breakpoints.iter() { + for (breakpoint_idx, breakpoint) in self + .breakpoints + .iter() + .sorted_by(|(a_idx, _), (b_idx, _)| a_idx.cmp(b_idx)) + { println!("{SPACING}({breakpoint_idx}) {}", breakpoint.format(ctx)) } } From ff98daee52638f2e5dff6ba98a174d565358647b Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 17:53:19 -0400 Subject: [PATCH 50/76] fix group running check --- .../src/flatten/structures/environment/env.rs | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 0a791473b1..f67a964ccc 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -447,22 +447,23 @@ impl + Clone> Environment { } pub fn is_group_running(&self, group_idx: GroupIdx) -> bool { - self.pc.iter().any(|point| { - let point = &self.ctx.as_ref().primary[point.control_node_idx]; - match point { - ControlNode::Enable(x) => x.group() == group_idx, - _ => false, - } - }) + self.get_currently_running_groups().any(|x| x == group_idx) } pub fn get_currently_running_groups( &self, ) -> impl Iterator + '_ { self.pc.iter().filter_map(|point| { - let point = &self.ctx.as_ref().primary[point.control_node_idx]; - match point { - ControlNode::Enable(x) => Some(x.group()), + let node = &self.ctx.as_ref().primary[point.control_node_idx]; + match node { + ControlNode::Enable(x) => { + let comp_go = self.get_comp_go(point.comp); + if self.ports[comp_go].as_bool().unwrap_or_default() { + Some(x.group()) + } else { + None + } + } _ => None, } }) From 64d1f0d835bca9f300d12ff5e0b9e4e2c92f4111 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:17:20 -0400 Subject: [PATCH 51/76] traversal fixes --- interp/src/flatten/structures/environment/env.rs | 2 +- interp/src/flatten/structures/environment/traverser.rs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index f67a964ccc..53999ebcbe 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -870,7 +870,7 @@ impl + Clone> Environment { Ok(Path::Cell(Self::get_root())) } else { if name.len() != 1 { - let mut iter = name[0..name.len() - 2].iter(); + let mut iter = name[0..name.len() - 1].iter(); if &name[0] == ctx.lookup_name(ctx.entry_point) { // skip the main name iter.next(); diff --git a/interp/src/flatten/structures/environment/traverser.rs b/interp/src/flatten/structures/environment/traverser.rs index 03acb517af..7f253ba6ff 100644 --- a/interp/src/flatten/structures/environment/traverser.rs +++ b/interp/src/flatten/structures/environment/traverser.rs @@ -30,7 +30,7 @@ impl std::fmt::Debug for TraversalError { std::fmt::Display::fmt(self, f) } } - +#[derive(Debug)] pub struct Traverser { concrete_path: SmallVec<[GlobalCellIdx; 4]>, abstract_path: SmallVec<[CellRef; 2]>, @@ -227,7 +227,11 @@ impl Traverser { let current_comp = *self.concrete_path.last().unwrap(); let current_comp_ledger = - env.cells[current_comp].as_comp().unwrap(); + env.cells[current_comp].as_comp().unwrap_or_else(|| { + // we are in a primitive component so need to go up a level + env.cells[self.concrete_path[self.concrete_path.len() - 2]] + .unwrap_comp() + }); let comp_def = &env.ctx().secondary[current_comp_ledger.comp_id]; // check cells From 5121f66a595bbfae4ff80d19bfaf55b08c146115 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:17:42 -0400 Subject: [PATCH 52/76] ugh we need these convergences for breakpoints to work right, very frustrating. --- interp/src/debugger/debugger_core.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index e97fdd39d5..b331594fe5 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -126,6 +126,8 @@ impl + Clone> Debugger { } fn do_continue(&mut self) -> InterpreterResult<()> { + // TODO griffin: figure out how to skip this convergence + self.interpreter.converge()?; self.debugging_context .set_current_time(self.interpreter.get_currently_running_groups()); @@ -133,6 +135,8 @@ impl + Clone> Debugger { while breakpoints.is_empty() && !self.interpreter.is_done() { self.interpreter.step()?; + // TODO griffin: figure out how to skip this convergence + self.interpreter.converge()?; self.debugging_context .advance_time(self.interpreter.get_currently_running_groups()); From 991beccaca9526934d2bfbe5e8277db4b462ec07 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:19:55 -0400 Subject: [PATCH 53/76] make exit not an error --- interp/src/main.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/interp/src/main.rs b/interp/src/main.rs index 30e90cb22a..d8dbba7613 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -159,7 +159,16 @@ fn main() -> InterpreterResult<()> { Command::Debug(_) => { let debugger = Debugger::new(&i_ctx, &opts.data_file)?; - debugger.main_loop()?; + match debugger.main_loop() { + Ok(_) => {} + Err(e) => { + if let InterpreterError::Exit = *e { + println!("Exiting."); + } else { + return Err(e); + } + } + }; Ok(()) } From 0633fb7d538dd57344af093e56b7f8446c8081dc Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:31:21 -0400 Subject: [PATCH 54/76] all hail clippy --- .../src/debugger/commands/command_parser.rs | 1 - interp/src/debugger/commands/core.rs | 11 +-- interp/src/debugger/debugger_core.rs | 5 +- .../src/debugger/debugging_context/context.rs | 71 ++++++++----------- interp/src/debugger/interactive_errors.rs | 7 -- interp/src/debugger/mod.rs | 1 - interp/src/flatten/setup.rs | 2 +- .../src/flatten/structures/environment/env.rs | 12 ++-- .../structures/environment/traverser.rs | 16 ++--- interp/src/main.rs | 12 ++-- interp/src/serialization/formatting.rs | 9 --- 11 files changed, 53 insertions(+), 94 deletions(-) delete mode 100644 interp/src/debugger/interactive_errors.rs diff --git a/interp/src/debugger/commands/command_parser.rs b/interp/src/debugger/commands/command_parser.rs index 2b129d6493..825b2f4e44 100644 --- a/interp/src/debugger/commands/command_parser.rs +++ b/interp/src/debugger/commands/command_parser.rs @@ -1,7 +1,6 @@ use super::core::{ Command, ParsedBreakPointID, ParsedGroupName, PrintMode, WatchPosition, }; -use calyx_ir::Id; use pest_consume::{match_nodes, Error, Parser}; type ParseResult = std::result::Result>; diff --git a/interp/src/debugger/commands/core.rs b/interp/src/debugger/commands/core.rs index 784f63763b..f467dd5e45 100644 --- a/interp/src/debugger/commands/core.rs +++ b/interp/src/debugger/commands/core.rs @@ -1,4 +1,3 @@ -use calyx_ir::Id; use itertools::{self, Itertools}; use lazy_static::lazy_static; use owo_colors::OwoColorize; @@ -8,13 +7,12 @@ use std::{ }; use crate::{ - debugger::debugging_context::context, flatten::{ flat_ir::prelude::GroupIdx, structures::{ context::Context, environment::{Environment, Path}, - index_trait::{impl_index, IndexRef}, + index_trait::impl_index, }, }, serialization::PrintCode, @@ -89,17 +87,14 @@ impl ParsedGroupName { let comp = if let Some(c) = &self.component { context .lookup_comp_by_name(c.as_ref()) - .map_or(Err(format!("No component named {c}")), Ok)? + .ok_or(format!("No component named {c}"))? } else { context.entry_point }; context .lookup_group_by_name(self.group.as_ref(), comp) - .map_or( - Err(format!("No group named {} in component", self.group)), - |g| Ok(g), - ) + .ok_or(format!("No group named {} in component", self.group)) } } diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index b331594fe5..ffe0855322 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -1,7 +1,6 @@ use super::{ commands::{Command, PrintMode}, debugging_context::context::DebuggingContext, - interactive_errors::DebuggerError, io_utils::Input, source::structures::NewSourceMap, }; @@ -9,8 +8,8 @@ use crate::{ debugger::{source::SourceMap, unwrap_error_message}, errors::{InterpreterError, InterpreterResult}, flatten::{ - flat_ir::prelude::{GlobalCellIdx, GlobalPortIdx, GroupIdx, PortValue}, - setup_simulation, setup_simulation_with_metadata, + flat_ir::prelude::GroupIdx, + setup_simulation_with_metadata, structures::{ context::Context, environment::{Path as ParsePath, PathError, Simulator}, diff --git a/interp/src/debugger/debugging_context/context.rs b/interp/src/debugger/debugging_context/context.rs index 8ad66e75f4..fd8d0bd5e5 100644 --- a/interp/src/debugger/debugging_context/context.rs +++ b/interp/src/debugger/debugging_context/context.rs @@ -1,30 +1,21 @@ +use super::super::{ + commands::{PrintTuple, WatchPosition}, + debugger_core::SPACING, +}; use crate::{ debugger::commands::{BreakpointID, BreakpointIdx, WatchID, WatchpointIdx}, flatten::{ flat_ir::prelude::GroupIdx, structures::{ - context::Context, environment::Environment, - index_trait::impl_index, indexed_map::IndexedMap, + context::Context, environment::Environment, indexed_map::IndexedMap, }, }, }; - -use super::super::{ - commands::{ - GroupName, ParsedBreakPointID, ParsedGroupName, PrintTuple, - WatchPosition, - }, - debugger_core::SPACING, -}; - use ahash::{HashMap, HashMapExt, HashSet, HashSetExt}; -use calyx_ir::Id; use itertools::Itertools; use owo_colors::OwoColorize; use smallvec::{smallvec, SmallVec}; - -use std::rc::Rc; -use std::{fmt::Display, iter}; +use std::fmt::Display; #[derive(Debug, Clone)] enum PointStatus { @@ -93,11 +84,11 @@ pub struct WatchPoint { } impl WatchPoint { - pub fn enable(&mut self) { + pub fn _enable(&mut self) { self.state = PointStatus::Enabled; } - pub fn disable(&mut self) { + pub fn _disable(&mut self) { self.state = PointStatus::Disabled; } @@ -105,11 +96,11 @@ impl WatchPoint { matches!(self.state, PointStatus::Disabled) } - pub fn is_enabled(&self) -> bool { + pub fn _is_enabled(&self) -> bool { matches!(self.state, PointStatus::Enabled) } - pub fn group(&self) -> GroupIdx { + pub fn _group(&self) -> GroupIdx { self.group } @@ -272,8 +263,8 @@ impl WatchPointIndices { fn get_before(&self) -> Option<&[WatchpointIdx]> { match self { - Self::Before(idx) => Some(&idx), - Self::Both { after, .. } => Some(&after), + Self::Before(idx) => Some(idx), + Self::Both { after, .. } => Some(after), Self::After(_) => None, } } @@ -281,12 +272,12 @@ impl WatchPointIndices { fn get_after(&self) -> Option<&[WatchpointIdx]> { match self { Self::Before(_) => None, - Self::After(idx) => Some(&idx), - Self::Both { before, .. } => Some(&before), + Self::After(idx) => Some(idx), + Self::Both { before, .. } => Some(before), } } - fn iter(&self) -> Box + '_> { + fn _iter(&self) -> Box + '_> { match self { Self::Before(idx) => Box::new(idx.iter()), Self::After(idx) => Box::new(idx.iter()), @@ -356,14 +347,14 @@ impl WatchpointMap { self.group_idx_map.get(&group) } - fn get_by_group_mut( + fn _get_by_group_mut( &mut self, group: GroupIdx, ) -> Option<&mut WatchPointIndices> { self.group_idx_map.get_mut(&group) } - fn get_by_idx_mut( + fn _get_by_idx_mut( &mut self, idx: WatchpointIdx, ) -> Option<&mut WatchPoint> { @@ -417,13 +408,13 @@ impl WatchpointMap { } } - fn iter_before( + fn _iter_before( &self, ) -> impl Iterator { self.watchpoints_before.iter() } - fn iter_after( + fn _iter_after( &self, ) -> impl Iterator { self.watchpoints_after.iter() @@ -550,36 +541,36 @@ impl DebuggingContext { self.watchpoints.delete_by_idx(target) } - fn act_watchpoint(&mut self, target: WatchID, action: PointAction) { + fn _act_watchpoint(&mut self, target: WatchID, action: PointAction) { fn act(target: &mut WatchPoint, action: PointAction) { match action { PointAction::Enable => { - target.enable(); + target._enable(); } PointAction::Disable => { - target.disable(); + target._disable(); } } } match target { WatchID::Name(name) => { - if let Some(points) = self.watchpoints.get_by_group_mut(name) { + if let Some(points) = self.watchpoints._get_by_group_mut(name) { // mutability trickery let points_actual = std::mem::replace( points, WatchPointIndices::Before(SmallVec::new()), ); - for point_idx in points_actual.iter() { + for point_idx in points_actual._iter() { if let Some(point) = - self.watchpoints.get_by_idx_mut(*point_idx) + self.watchpoints._get_by_idx_mut(*point_idx) { act(point, action); } } - *self.watchpoints.get_by_group_mut(name).unwrap() = + *self.watchpoints._get_by_group_mut(name).unwrap() = points_actual; } else { println!( @@ -588,7 +579,7 @@ impl DebuggingContext { } } WatchID::Number(num) => { - if let Some(point) = self.watchpoints.get_by_idx_mut(num) { + if let Some(point) = self.watchpoints._get_by_idx_mut(num) { act(point, action); } else { println!( @@ -600,12 +591,12 @@ impl DebuggingContext { } } - pub fn enable_watchpoint(&mut self, target: WatchID) { - self.act_watchpoint(target, PointAction::Enable) + pub fn _enable_watchpoint(&mut self, target: WatchID) { + self._act_watchpoint(target, PointAction::Enable) } - pub fn disable_watchpoint(&mut self, target: WatchID) { - self.act_watchpoint(target, PointAction::Disable) + pub fn _disable_watchpoint(&mut self, target: WatchID) { + self._act_watchpoint(target, PointAction::Disable) } pub fn hit_breakpoints(&self) -> impl Iterator + '_ { diff --git a/interp/src/debugger/interactive_errors.rs b/interp/src/debugger/interactive_errors.rs deleted file mode 100644 index 9d1dbf1e58..0000000000 --- a/interp/src/debugger/interactive_errors.rs +++ /dev/null @@ -1,7 +0,0 @@ -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum DebuggerError { - #[error("cannot find {0}")] - CannotFind(String), -} diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index eac0e1ee87..432141d641 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -1,7 +1,6 @@ pub mod commands; mod debugger_core; mod debugging_context; -mod interactive_errors; mod io_utils; mod macros; pub mod source; diff --git a/interp/src/flatten/setup.rs b/interp/src/flatten/setup.rs index 90faf63147..73e84ae73d 100644 --- a/interp/src/flatten/setup.rs +++ b/interp/src/flatten/setup.rs @@ -28,7 +28,7 @@ fn do_setup( .metadata .as_ref() .map(|metadata| { - crate::debugger::source::new_parser::parse_metadata(&metadata) + crate::debugger::source::new_parser::parse_metadata(metadata) }) .unwrap_or_else(|| { Err(crate::errors::InterpreterError::MissingMetaData.into()) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 53999ebcbe..4d27cac5ca 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -4,7 +4,7 @@ use super::{ }, assignments::{GroupInterfacePorts, ScheduledAssignments}, program_counter::{PcMaps, ProgramCounter, WithEntry}, - traverser::{Path, PathResolution, TraversalError}, + traverser::{Path, TraversalError}, }; use crate::{ errors::{BoxedInterpreterError, InterpreterError, InterpreterResult}, @@ -14,10 +14,10 @@ use crate::{ prelude::{ AssignedValue, AssignmentIdx, BaseIndices, CellDefinitionRef::{Local, Ref}, - CellRef, CombGroupIdx, ComponentIdx, ControlNode, - GlobalCellIdx, GlobalCellRef, GlobalPortIdx, GlobalPortRef, - GlobalRefCellIdx, GlobalRefPortIdx, GroupIdx, GuardIdx, - Identifier, If, Invoke, PortRef, PortValue, While, + CellRef, ComponentIdx, ControlNode, GlobalCellIdx, + GlobalCellRef, GlobalPortIdx, GlobalPortRef, GlobalRefCellIdx, + GlobalRefPortIdx, GroupIdx, GuardIdx, Identifier, If, Invoke, + PortRef, PortValue, While, }, wires::guards::Guard, }, @@ -38,8 +38,8 @@ use ahash::HashSet; use ahash::HashSetExt; use itertools::Itertools; use slog::warn; +use std::fmt::Debug; use std::fmt::Write; -use std::{fmt::Debug, iter::once}; pub type PortMap = IndexedMap; diff --git a/interp/src/flatten/structures/environment/traverser.rs b/interp/src/flatten/structures/environment/traverser.rs index 7f253ba6ff..16b1cbb8ef 100644 --- a/interp/src/flatten/structures/environment/traverser.rs +++ b/interp/src/flatten/structures/environment/traverser.rs @@ -1,12 +1,8 @@ -use crate::{ - errors::InterpreterResult, - flatten::{ - flat_ir::prelude::{ - CellDefinitionIdx, CellRef, GlobalCellIdx, GlobalPortIdx, - GlobalRefCellIdx, GlobalRefPortIdx, PortRef, RefCellDefinitionIdx, - }, - structures::context::Context, +use crate::flatten::{ + flat_ir::prelude::{ + CellRef, GlobalCellIdx, GlobalPortIdx, GlobalRefCellIdx, PortRef, }, + structures::context::Context, }; use smallvec::{smallvec, SmallVec}; use thiserror::Error; @@ -383,8 +379,8 @@ impl Path { match self { Path::Cell(c) => env.get_full_name(c), Path::Port(p) => env.get_full_name(p), - Path::AbstractCell(c) => todo!("ref cells not supported yet"), - Path::AbstractPort { cell, port } => { + Path::AbstractCell(_) => todo!("ref cells not supported yet"), + Path::AbstractPort { .. } => { todo!("ref ports not supported yet") } } diff --git a/interp/src/main.rs b/interp/src/main.rs index d8dbba7613..d8b50f3958 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -1,21 +1,17 @@ use argh::FromArgs; -use calyx_frontend as frontend; -use calyx_ir as ir; -use calyx_opt::pass_manager::PassManager; + use calyx_utils::OutputFile; use interp::{ configuration, - debugger::{source::SourceMap, Debugger}, + debugger::Debugger, errors::{InterpreterError, InterpreterResult}, - flatten::structures::environment::{Environment, Simulator}, - serialization::DataDump, + flatten::structures::environment::Simulator, }; -use rustyline::error::ReadlineError; + use slog::warn; use std::{ io::stdout, path::{Path, PathBuf}, - rc::Rc, }; #[derive(FromArgs)] diff --git a/interp/src/serialization/formatting.rs b/interp/src/serialization/formatting.rs index 246952e8e9..345afd7701 100644 --- a/interp/src/serialization/formatting.rs +++ b/interp/src/serialization/formatting.rs @@ -22,15 +22,6 @@ impl Shape { matches!(self, Shape::D1(_)) } - pub(crate) fn dim_str(&self) -> String { - match self { - Shape::D1(_) => String::from("1D"), - Shape::D2(_, _) => String::from("2D"), - Shape::D3(_, _, _) => String::from("3D"), - Shape::D4(_, _, _, _) => String::from("4D"), - } - } - /// returns the total number of entries in the memory, i.e. it's size based /// on the dimensions of it. pub fn size(&self) -> usize { From 2d54db60acec1834e89bc7c943af2845dac06ce1 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:35:29 -0400 Subject: [PATCH 55/76] that converge was unnecessary --- interp/src/debugger/debugger_core.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index ffe0855322..7c857d56df 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -125,8 +125,6 @@ impl + Clone> Debugger { } fn do_continue(&mut self) -> InterpreterResult<()> { - // TODO griffin: figure out how to skip this convergence - self.interpreter.converge()?; self.debugging_context .set_current_time(self.interpreter.get_currently_running_groups()); From 0eade0bafc3e5c7c686abb86c0da95a40d50504c Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:40:22 -0400 Subject: [PATCH 56/76] throw structures into the void --- interp/src/debugger/mod.rs | 1 - interp/src/debugger/structures.rs | 0 2 files changed, 1 deletion(-) delete mode 100644 interp/src/debugger/structures.rs diff --git a/interp/src/debugger/mod.rs b/interp/src/debugger/mod.rs index 432141d641..6392eded25 100644 --- a/interp/src/debugger/mod.rs +++ b/interp/src/debugger/mod.rs @@ -4,7 +4,6 @@ mod debugging_context; mod io_utils; mod macros; pub mod source; -pub mod structures; pub use debugger_core::Debugger; pub use debugger_core::OwnedDebugger; diff --git a/interp/src/debugger/structures.rs b/interp/src/debugger/structures.rs deleted file mode 100644 index e69de29bb2..0000000000 From 7050a31d46de22698280520de16786302b2fb0f8 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:42:14 -0400 Subject: [PATCH 57/76] fix the fud2 snapshots --- fud2/tests/snapshots/tests__test@calyx_debug.snap | 2 +- fud2/tests/snapshots/tests__test@calyx_interp_dat.snap | 2 +- fud2/tests/snapshots/tests__test@plan_cider.snap | 2 +- fud2/tests/snapshots/tests__test@plan_debug.snap | 2 +- fud2/tests/snapshots/tests__test@plan_interp.snap | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fud2/tests/snapshots/tests__test@calyx_debug.snap b/fud2/tests/snapshots/tests__test@calyx_debug.snap index 8c65bdb7e6..4bb81f4ff9 100644 --- a/fud2/tests/snapshots/tests__test@calyx_debug.snap +++ b/fud2/tests/snapshots/tests__test@calyx_debug.snap @@ -47,7 +47,7 @@ rule interp-to-dat command = $python interp-dat.py --from-interp $in $sim_data > $out build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider - command = $cider-exe -l $calyx-base --data data.dump $in flat > $out + command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp command = $cider-converter --to cider $in > $out rule interp-to-dump diff --git a/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap b/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap index 713d53f60d..85ee7c0737 100644 --- a/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap +++ b/fud2/tests/snapshots/tests__test@calyx_interp_dat.snap @@ -47,7 +47,7 @@ rule interp-to-dat command = $python interp-dat.py --from-interp $in $sim_data > $out build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider - command = $cider-exe -l $calyx-base --data data.dump $in flat > $out + command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp command = $cider-converter --to cider $in > $out rule interp-to-dump diff --git a/fud2/tests/snapshots/tests__test@plan_cider.snap b/fud2/tests/snapshots/tests__test@plan_cider.snap index 055ff2fac7..6a85a69fc0 100644 --- a/fud2/tests/snapshots/tests__test@plan_cider.snap +++ b/fud2/tests/snapshots/tests__test@plan_cider.snap @@ -45,7 +45,7 @@ rule interp-to-dat command = $python interp-dat.py --from-interp $in $sim_data > $out build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider - command = $cider-exe -l $calyx-base --data data.dump $in flat > $out + command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp command = $cider-converter --to cider $in > $out rule interp-to-dump diff --git a/fud2/tests/snapshots/tests__test@plan_debug.snap b/fud2/tests/snapshots/tests__test@plan_debug.snap index 13f7f949b1..2e162e7f1c 100644 --- a/fud2/tests/snapshots/tests__test@plan_debug.snap +++ b/fud2/tests/snapshots/tests__test@plan_debug.snap @@ -47,7 +47,7 @@ rule interp-to-dat command = $python interp-dat.py --from-interp $in $sim_data > $out build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider - command = $cider-exe -l $calyx-base --data data.dump $in flat > $out + command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp command = $cider-converter --to cider $in > $out rule interp-to-dump diff --git a/fud2/tests/snapshots/tests__test@plan_interp.snap b/fud2/tests/snapshots/tests__test@plan_interp.snap index d0dcaeaa16..7dfe65bfd6 100644 --- a/fud2/tests/snapshots/tests__test@plan_interp.snap +++ b/fud2/tests/snapshots/tests__test@plan_interp.snap @@ -47,7 +47,7 @@ rule interp-to-dat command = $python interp-dat.py --from-interp $in $sim_data > $out build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider - command = $cider-exe -l $calyx-base --data data.dump $in flat > $out + command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp command = $cider-converter --to cider $in > $out rule interp-to-dump From c560483fc58f7470f661353903cd757f872cd516 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 18:50:34 -0400 Subject: [PATCH 58/76] cleanup the giant comment blocks --- .../src/flatten/structures/environment/env.rs | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/interp/src/flatten/structures/environment/env.rs b/interp/src/flatten/structures/environment/env.rs index 4d27cac5ca..2d6ae90e82 100644 --- a/interp/src/flatten/structures/environment/env.rs +++ b/interp/src/flatten/structures/environment/env.rs @@ -1536,21 +1536,6 @@ impl + Clone> Simulator { with_map: &mut HashMap, node: &mut ControlPoint, ) -> bool { - // if w.cond_group().is_some() { - // let comb_group = with_map - // .entry(node.clone()) - // .or_insert(w.cond_group().unwrap()); - // let comb_assigns = ScheduledAssignments::new( - // node.comp, - // self.env.ctx.as_ref().primary[*comb_group].assignments, - // None, - // ); - - // // NOTE THIS MIGHT INTRODUCE A BUG SINCE THE PORTS - // // HAVE NOT BEEN UNDEFINED YET - // self.simulate_combinational(&[comb_assigns]).expect("something went wrong in evaluating with clause for while statement"); - // } - let target = GlobalPortRef::from_local( w.cond_port(), &self.env.cells[node.comp].unwrap_comp().index_bases, @@ -1587,26 +1572,6 @@ impl + Clone> Simulator { node: &mut ControlPoint, i: &If, ) -> bool { - // // this is bad but it works for now, what a headache - // let contains_node = with_map.contains_key(node); - // if i.cond_group().is_some() && !contains_node { - // let comb_group = i.cond_group().unwrap(); - // let comb_assigns = ScheduledAssignments::new( - // node.comp, - // self.env.ctx.as_ref().primary[comb_group].assignments, - // None, - // ); - - // with_map.insert(node.clone(), comb_group); - - // // TODO griffin: Sort out a way to make this error less terrible - // // NOTE THIS MIGHT INTRODUCE A BUG SINCE THE PORTS - // // HAVE NOT BEEN UNDEFINED YET - // self.simulate_combinational(&[comb_assigns]).expect("something went wrong in evaluating with clause for if statement"); - - // // now we fall through and proceed as normal - // } - if i.cond_group().is_some() && with_map.get(node).unwrap().entered { with_map.remove(node); node.mutate_into_next(self.env.ctx.as_ref()) From 3583c5e92a656f10af4d1354e4f93c1db898ff1a Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 19:20:08 -0400 Subject: [PATCH 59/76] update the debugger path and remove old interp --- fud2/src/lib.rs | 55 +++++++------------------------------------------ 1 file changed, 7 insertions(+), 48 deletions(-) diff --git a/fud2/src/lib.rs b/fud2/src/lib.rs index b219a21c36..dcef0adf96 100644 --- a/fud2/src/lib.rs +++ b/fud2/src/lib.rs @@ -512,8 +512,8 @@ pub fn build_driver(bld: &mut DriverBuilder) { ); // Interpreter. - let debug = bld.state("debug", &[]); // A pseudo-state. - // A pseudo-state for cider input + let debug = bld.state("cider-debug", &[]); // A pseudo-state. + // A pseudo-state for cider input let cider_state = bld.state("cider", &[]); let cider_setup = bld.setup("Cider interpreter", |e| { @@ -528,30 +528,11 @@ pub fn build_driver(bld: &mut DriverBuilder) { "$calyx-base/target/debug/cider-data-converter", )?; e.rule( - "cider", - "$cider-exe -l $calyx-base --raw --data data.json $in > $out", - )?; - e.rule( - "cider-debug", - "$cider-exe -l $calyx-base --data data.json $in debug || true", + "run-cider-debug", + "$cider-exe -l $calyx-base --data data.dump $in debug || true", )?; e.arg("pool", "console")?; - // TODO Can we reduce the duplication around and `$python`? - e.rsrc("interp-dat.py")?; - e.config_var_or("python", "python", "python3")?; - e.rule("dat-to-interp", "$python interp-dat.py --to-interp $in")?; - e.rule( - "interp-to-dat", - "$python interp-dat.py --from-interp $in $sim_data > $out", - )?; - e.build_cmd( - &["data.json"], - "dat-to-interp", - &["$sim_data"], - &["interp-dat.py"], - )?; - e.rule( "run-cider", "$cider-exe -l $calyx-base --data data.dump $in > $out", @@ -584,28 +565,6 @@ pub fn build_driver(bld: &mut DriverBuilder) { }, ); - bld.op( - "interp", - &[ - sim_setup, - standalone_testbench_setup, - calyx_setup, - cider_setup, - ], - calyx, - dat, - |e, input, output| { - let out_file = "interp_out.json"; - e.build_cmd(&[out_file], "cider", &[input[0]], &["data.json"])?; - e.build_cmd( - &[output[0]], - "interp-to-dat", - &[out_file], - &["$sim_data", "interp-dat.py"], - )?; - Ok(()) - }, - ); bld.op( "cider", &[sim_setup, calyx_setup, cider_setup], @@ -629,7 +588,7 @@ pub fn build_driver(bld: &mut DriverBuilder) { }, ); bld.op( - "debug", + "cider-debug", &[ sim_setup, standalone_testbench_setup, @@ -641,9 +600,9 @@ pub fn build_driver(bld: &mut DriverBuilder) { |e, input, output| { e.build_cmd( &[output[0]], - "cider-debug", + "run-cider-debug", &[input[0]], - &["data.json"], + &["data.dump"], )?; Ok(()) }, From 3db99f5718f007c8deaac946f003d321b65fa47d Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Fri, 12 Jul 2024 19:29:23 -0400 Subject: [PATCH 60/76] unnecessarily fancy print at the beginning --- interp/src/debugger/debugger_core.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/interp/src/debugger/debugger_core.rs b/interp/src/debugger/debugger_core.rs index 7c857d56df..67d33be5c3 100644 --- a/interp/src/debugger/debugger_core.rs +++ b/interp/src/debugger/debugger_core.rs @@ -175,7 +175,14 @@ impl + Clone> Debugger { pub fn main_loop(mut self) -> InterpreterResult<()> { let mut input_stream = Input::new()?; - println!("== Calyx Interactive Debugger =="); + println!( + "==== {}: The {}alyx {}nterpreter and {}bugge{} ====", + "Cider".bold(), + "C".underline(), + "I".underline(), + "De".underline(), + "r".underline() + ); while !self.interpreter.is_done() { let comm = input_stream.next_command(); From da31738c8ed0862659c3f6c9d56a830a1194c224 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 10:23:49 -0400 Subject: [PATCH 61/76] migrate test suite --- .../cider2-tests/complex/unsigned-div.expect | 8 - .../complex/unsigned-dot-product.expect | 63 ----- interp/cider2-tests/control/if.expect | 5 - interp/cider2-tests/control/if_reg.expect | 8 - interp/cider2-tests/control/reg_seq.expect | 8 - interp/cider2-tests/invoke/invoke.expect | 14 -- interp/cider2-tests/invoke/k3.expect | 8 - interp/cider2-tests/par-to-seq/par_mem.expect | 11 - interp/cider2-tests/par-to-seq/par_reg.expect | 11 - .../primitives/add-overflow.expect | 8 - interp/cider2-tests/primitives/binary.expect | 35 --- .../primitives/flickering_go.expect | 14 -- interp/cider2-tests/primitives/mem.expect | 8 - interp/cider2-tests/primitives/mem2.expect | 25 -- interp/cider2-tests/primitives/reg.expect | 8 - interp/cider2-tests/primitives/slice.expect | 14 -- interp/cider2-tests/primitives/sqrt.expect | 5 - .../unit/assign-order-does-not-matter.expect | 5 - .../unit/combinational-chain.expect | 5 - ...egister-writes-visible-inside-group.expect | 17 -- .../uninitialized-port-returns-zero.expect | 5 - interp/runt.toml | 200 --------------- .../benchmarks/ntt-32.expect | 0 .../benchmarks/ntt-32.futil | 0 .../benchmarks/ntt-32.futil.data | 0 .../benchmarks/ntt-64.expect | 0 .../benchmarks/ntt-64.futil | 0 .../benchmarks/ntt-64.futil.data | 0 .../polybench/linear-algebra-2mm.expect | 0 .../polybench/linear-algebra-2mm.fuse | 0 .../polybench/linear-algebra-2mm.fuse.data | 0 .../polybench/linear-algebra-3mm.expect | 0 .../polybench/linear-algebra-3mm.fuse | 0 .../polybench/linear-algebra-3mm.fuse.data | 0 .../polybench/linear-algebra-atax.expect | 0 .../polybench/linear-algebra-atax.fuse | 0 .../polybench/linear-algebra-atax.fuse.data | 0 .../polybench/linear-algebra-bicg.expect | 0 .../polybench/linear-algebra-bicg.fuse | 0 .../polybench/linear-algebra-bicg.fuse.data | 0 .../polybench/linear-algebra-cholesky.expect | 0 .../polybench/linear-algebra-cholesky.fuse | 0 .../linear-algebra-cholesky.fuse.data | 0 .../polybench/linear-algebra-doitgen.expect | 0 .../polybench/linear-algebra-doitgen.fuse | 0 .../linear-algebra-doitgen.fuse.data | 0 .../polybench/linear-algebra-durbin.expect | 0 .../polybench/linear-algebra-durbin.fuse | 0 .../polybench/linear-algebra-durbin.fuse.data | 0 .../polybench/linear-algebra-gemm.expect | 0 .../polybench/linear-algebra-gemm.fuse | 0 .../polybench/linear-algebra-gemm.fuse.data | 0 .../polybench/linear-algebra-gemver.expect | 0 .../polybench/linear-algebra-gemver.fuse | 0 .../polybench/linear-algebra-gemver.fuse.data | 0 .../polybench/linear-algebra-gesummv.expect | 0 .../polybench/linear-algebra-gesummv.fuse | 0 .../linear-algebra-gesummv.fuse.data | 0 .../linear-algebra-gramschmidt.expect | 0 .../polybench/linear-algebra-gramschmidt.fuse | 0 .../linear-algebra-gramschmidt.fuse.data | 0 .../polybench/linear-algebra-lu.expect | 0 .../polybench/linear-algebra-lu.fuse | 0 .../polybench/linear-algebra-lu.fuse.data | 0 .../polybench/linear-algebra-ludcmp.expect | 0 .../polybench/linear-algebra-ludcmp.fuse | 0 .../polybench/linear-algebra-ludcmp.fuse.data | 0 .../polybench/linear-algebra-mvt.expect | 0 .../polybench/linear-algebra-mvt.fuse | 0 .../polybench/linear-algebra-mvt.fuse.data | 0 .../polybench/linear-algebra-symm.expect | 0 .../polybench/linear-algebra-symm.fuse | 0 .../polybench/linear-algebra-symm.fuse.data | 0 .../polybench/linear-algebra-syr2k.expect | 0 .../polybench/linear-algebra-syr2k.fuse | 0 .../polybench/linear-algebra-syr2k.fuse.data | 0 .../polybench/linear-algebra-syrk.expect | 0 .../polybench/linear-algebra-syrk.fuse | 0 .../polybench/linear-algebra-syrk.fuse.data | 0 .../polybench/linear-algebra-trisolv.expect | 0 .../polybench/linear-algebra-trisolv.fuse | 0 .../linear-algebra-trisolv.fuse.data | 0 .../polybench/linear-algebra-trmm.expect | 0 .../polybench/linear-algebra-trmm.fuse | 0 .../polybench/linear-algebra-trmm.fuse.data | 0 .../benchmarks/tcam-32.expect | 0 .../benchmarks/tcam-32.futil | 0 .../benchmarks/tcam-32.futil.data | 0 .../benchmarks/tcam-64.expect | 0 .../benchmarks/tcam-64.futil | 0 .../benchmarks/tcam-64.futil.data | 0 interp/tests/complex/unsigned-div.expect | 55 +--- .../tests/complex/unsigned-dot-product.expect | 237 +++++------------- interp/tests/control/if.expect | 8 +- interp/tests/control/if_reg.expect | 10 +- interp/tests/control/invoke/invoke.expect | 26 +- interp/tests/control/invoke/k3.expect | 14 +- .../control/iter_mult.expect | 0 .../control/{iteration => }/iter_mult.futil | 0 .../tests/control/iteration/iter_mult.expect | 9 - interp/tests/control/iteration/while.expect | 7 - interp/tests/control/par_mem.expect | 20 +- interp/tests/control/par_reg.expect | 14 +- interp/tests/control/reg_seq.expect | 10 +- .../control/while.expect | 0 .../tests/control/{iteration => }/while.futil | 0 .../multi-comp/my_add.expect | 0 .../multi-comp/my_add.futil | 0 .../multi-comp/my_add_invoke.expect | 0 .../multi-comp/my_add_invoke.futil | 0 .../multi-comp/my_add_invoke_ref.expect | 0 .../multi-comp/my_add_invoke_ref.futil | 0 .../par-to-seq}/par_mem.expect | 0 .../par-to-seq}/par_reg.expect | 0 interp/tests/primitives/add-overflow.expect | 10 +- interp/tests/primitives/binary.expect | 46 +++- interp/tests/primitives/flickering_go.expect | 24 +- interp/tests/primitives/mem.expect | 12 +- interp/tests/primitives/mem2.expect | 46 ++-- interp/tests/primitives/reg.expect | 10 +- interp/tests/primitives/slice.expect | 18 +- interp/tests/primitives/sqrt.expect | 6 +- interp/{cider2-tests => tests}/runt.toml | 26 +- .../unit/assign-order-does-not-matter.expect | 6 +- interp/tests/unit/combinational-chain.expect | 6 +- ...egister-writes-visible-inside-group.expect | 22 +- .../uninitialized-port-returns-zero.expect | 10 +- 127 files changed, 255 insertions(+), 882 deletions(-) delete mode 100644 interp/cider2-tests/complex/unsigned-div.expect delete mode 100644 interp/cider2-tests/complex/unsigned-dot-product.expect delete mode 100644 interp/cider2-tests/control/if.expect delete mode 100644 interp/cider2-tests/control/if_reg.expect delete mode 100644 interp/cider2-tests/control/reg_seq.expect delete mode 100644 interp/cider2-tests/invoke/invoke.expect delete mode 100644 interp/cider2-tests/invoke/k3.expect delete mode 100644 interp/cider2-tests/par-to-seq/par_mem.expect delete mode 100644 interp/cider2-tests/par-to-seq/par_reg.expect delete mode 100644 interp/cider2-tests/primitives/add-overflow.expect delete mode 100644 interp/cider2-tests/primitives/binary.expect delete mode 100644 interp/cider2-tests/primitives/flickering_go.expect delete mode 100644 interp/cider2-tests/primitives/mem.expect delete mode 100644 interp/cider2-tests/primitives/mem2.expect delete mode 100644 interp/cider2-tests/primitives/reg.expect delete mode 100644 interp/cider2-tests/primitives/slice.expect delete mode 100644 interp/cider2-tests/primitives/sqrt.expect delete mode 100644 interp/cider2-tests/unit/assign-order-does-not-matter.expect delete mode 100644 interp/cider2-tests/unit/combinational-chain.expect delete mode 100644 interp/cider2-tests/unit/register-writes-visible-inside-group.expect delete mode 100644 interp/cider2-tests/unit/uninitialized-port-returns-zero.expect delete mode 100644 interp/runt.toml rename interp/{cider2-tests => tests}/benchmarks/ntt-32.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/ntt-32.futil (100%) rename interp/{cider2-tests => tests}/benchmarks/ntt-32.futil.data (100%) rename interp/{cider2-tests => tests}/benchmarks/ntt-64.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/ntt-64.futil (100%) rename interp/{cider2-tests => tests}/benchmarks/ntt-64.futil.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-2mm.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-2mm.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-2mm.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-3mm.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-3mm.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-3mm.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-atax.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-atax.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-atax.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-bicg.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-bicg.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-bicg.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-cholesky.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-cholesky.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-cholesky.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-doitgen.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-doitgen.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-doitgen.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-durbin.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-durbin.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-durbin.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gemm.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gemm.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gemm.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gemver.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gemver.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gemver.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gesummv.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gesummv.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gesummv.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gramschmidt.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gramschmidt.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-gramschmidt.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-lu.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-lu.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-lu.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-ludcmp.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-ludcmp.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-ludcmp.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-mvt.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-mvt.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-mvt.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-symm.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-symm.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-symm.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-syr2k.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-syr2k.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-syr2k.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-syrk.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-syrk.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-syrk.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-trisolv.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-trisolv.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-trisolv.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-trmm.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-trmm.fuse (100%) rename interp/{cider2-tests => tests}/benchmarks/polybench/linear-algebra-trmm.fuse.data (100%) rename interp/{cider2-tests => tests}/benchmarks/tcam-32.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/tcam-32.futil (100%) rename interp/{cider2-tests => tests}/benchmarks/tcam-32.futil.data (100%) rename interp/{cider2-tests => tests}/benchmarks/tcam-64.expect (100%) rename interp/{cider2-tests => tests}/benchmarks/tcam-64.futil (100%) rename interp/{cider2-tests => tests}/benchmarks/tcam-64.futil.data (100%) rename interp/{cider2-tests => tests}/control/iter_mult.expect (100%) rename interp/tests/control/{iteration => }/iter_mult.futil (100%) delete mode 100644 interp/tests/control/iteration/iter_mult.expect delete mode 100644 interp/tests/control/iteration/while.expect rename interp/{cider2-tests => tests}/control/while.expect (100%) rename interp/tests/control/{iteration => }/while.futil (100%) rename interp/{cider2-tests => tests}/multi-comp/my_add.expect (100%) rename interp/{cider2-tests => tests}/multi-comp/my_add.futil (100%) rename interp/{cider2-tests => tests}/multi-comp/my_add_invoke.expect (100%) rename interp/{cider2-tests => tests}/multi-comp/my_add_invoke.futil (100%) rename interp/{cider2-tests => tests}/multi-comp/my_add_invoke_ref.expect (100%) rename interp/{cider2-tests => tests}/multi-comp/my_add_invoke_ref.futil (100%) rename interp/{cider2-tests/control => tests/par-to-seq}/par_mem.expect (100%) rename interp/{cider2-tests/control => tests/par-to-seq}/par_reg.expect (100%) rename interp/{cider2-tests => tests}/runt.toml (90%) diff --git a/interp/cider2-tests/complex/unsigned-div.expect b/interp/cider2-tests/complex/unsigned-div.expect deleted file mode 100644 index 6ed76fa238..0000000000 --- a/interp/cider2-tests/complex/unsigned-div.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "reg_q": [ - 11 - ], - "reg_r": [ - 1 - ] -} diff --git a/interp/cider2-tests/complex/unsigned-dot-product.expect b/interp/cider2-tests/complex/unsigned-dot-product.expect deleted file mode 100644 index 8149168761..0000000000 --- a/interp/cider2-tests/complex/unsigned-dot-product.expect +++ /dev/null @@ -1,63 +0,0 @@ -{ - "counter": [ - 4 - ], - "mem0": [ - [ - 12, - 0, - 0, - 0 - ], - [ - 10, - 0, - 0, - 0 - ], - [ - 20, - 0, - 0, - 0 - ], - [ - 34, - 0, - 0, - 0 - ] - ], - "mem1": [ - [ - 16, - 0, - 0, - 0 - ], - [ - 32, - 0, - 0, - 0 - ], - [ - 8, - 0, - 0, - 0 - ], - [ - 24, - 0, - 0, - 0 - ] - ], - "r_2": [ - 1376 - ], - "t": [ - 1488 - ] -} diff --git a/interp/cider2-tests/control/if.expect b/interp/cider2-tests/control/if.expect deleted file mode 100644 index 5c5b33733b..0000000000 --- a/interp/cider2-tests/control/if.expect +++ /dev/null @@ -1,5 +0,0 @@ -{ - "mem": [ - 4 - ] -} diff --git a/interp/cider2-tests/control/if_reg.expect b/interp/cider2-tests/control/if_reg.expect deleted file mode 100644 index e2312a5410..0000000000 --- a/interp/cider2-tests/control/if_reg.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "reg0": [ - 0 - ], - "reg1": [ - 10 - ] -} diff --git a/interp/cider2-tests/control/reg_seq.expect b/interp/cider2-tests/control/reg_seq.expect deleted file mode 100644 index 5ef34e01c7..0000000000 --- a/interp/cider2-tests/control/reg_seq.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "reg0": [ - 9 - ], - "reg1": [ - 400 - ] -} diff --git a/interp/cider2-tests/invoke/invoke.expect b/interp/cider2-tests/invoke/invoke.expect deleted file mode 100644 index 2cfc4e347f..0000000000 --- a/interp/cider2-tests/invoke/invoke.expect +++ /dev/null @@ -1,14 +0,0 @@ -{ - "a0": [ - 1, - 8, - 27, - 64, - 125, - 216, - 343, - 512, - 729, - 1000 - ] -} diff --git a/interp/cider2-tests/invoke/k3.expect b/interp/cider2-tests/invoke/k3.expect deleted file mode 100644 index 0ea86fbe0f..0000000000 --- a/interp/cider2-tests/invoke/k3.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "depth_output": [ - 1 - ], - "path_ids1": [ - 1 - ] -} diff --git a/interp/cider2-tests/par-to-seq/par_mem.expect b/interp/cider2-tests/par-to-seq/par_mem.expect deleted file mode 100644 index a6cf3b8413..0000000000 --- a/interp/cider2-tests/par-to-seq/par_mem.expect +++ /dev/null @@ -1,11 +0,0 @@ -{ - "a": [ - 1 - ], - "b": [ - 1 - ], - "c": [ - 1 - ] -} diff --git a/interp/cider2-tests/par-to-seq/par_reg.expect b/interp/cider2-tests/par-to-seq/par_reg.expect deleted file mode 100644 index a6cf3b8413..0000000000 --- a/interp/cider2-tests/par-to-seq/par_reg.expect +++ /dev/null @@ -1,11 +0,0 @@ -{ - "a": [ - 1 - ], - "b": [ - 1 - ], - "c": [ - 1 - ] -} diff --git a/interp/cider2-tests/primitives/add-overflow.expect b/interp/cider2-tests/primitives/add-overflow.expect deleted file mode 100644 index 2fb87194b2..0000000000 --- a/interp/cider2-tests/primitives/add-overflow.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "reg0": [ - 7 - ], - "reg1": [ - 7 - ] -} diff --git a/interp/cider2-tests/primitives/binary.expect b/interp/cider2-tests/primitives/binary.expect deleted file mode 100644 index 324cce15e1..0000000000 --- a/interp/cider2-tests/primitives/binary.expect +++ /dev/null @@ -1,35 +0,0 @@ -{ - "add_reg": [ - 409 - ], - "and_reg": [ - 8 - ], - "eq_reg": [ - 1 - ], - "ge_reg": [ - 1 - ], - "gt_reg": [ - 0 - ], - "le_reg": [ - 1 - ], - "lt_reg": [ - 0 - ], - "neq_reg": [ - 0 - ], - "or_reg": [ - 15 - ], - "sub_reg": [ - 391 - ], - "xor_reg": [ - 7 - ] -} diff --git a/interp/cider2-tests/primitives/flickering_go.expect b/interp/cider2-tests/primitives/flickering_go.expect deleted file mode 100644 index 85121c76ba..0000000000 --- a/interp/cider2-tests/primitives/flickering_go.expect +++ /dev/null @@ -1,14 +0,0 @@ -{ - "mult_reg0": [ - 0 - ], - "mult_reg1": [ - 32 - ], - "reg0": [ - 0 - ], - "reg1": [ - 12 - ] -} diff --git a/interp/cider2-tests/primitives/mem.expect b/interp/cider2-tests/primitives/mem.expect deleted file mode 100644 index abfa90a324..0000000000 --- a/interp/cider2-tests/primitives/mem.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "mem": [ - 9 - ], - "reg0": [ - 9 - ] -} diff --git a/interp/cider2-tests/primitives/mem2.expect b/interp/cider2-tests/primitives/mem2.expect deleted file mode 100644 index e308d35684..0000000000 --- a/interp/cider2-tests/primitives/mem2.expect +++ /dev/null @@ -1,25 +0,0 @@ -{ - "mem0": [ - 0, - 0, - 0, - 2, - 1, - 0, - 0, - 0 - ], - "mem1": [ - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0 - ], - "reg0": [ - 1 - ] -} diff --git a/interp/cider2-tests/primitives/reg.expect b/interp/cider2-tests/primitives/reg.expect deleted file mode 100644 index 1faa958e80..0000000000 --- a/interp/cider2-tests/primitives/reg.expect +++ /dev/null @@ -1,8 +0,0 @@ -{ - "reg0": [ - 157 - ], - "reg1": [ - 157 - ] -} diff --git a/interp/cider2-tests/primitives/slice.expect b/interp/cider2-tests/primitives/slice.expect deleted file mode 100644 index b5175916b8..0000000000 --- a/interp/cider2-tests/primitives/slice.expect +++ /dev/null @@ -1,14 +0,0 @@ -{ - "reg0": [ - 0 - ], - "reg1": [ - 1 - ], - "reg14": [ - 14 - ], - "reg15": [ - 15 - ] -} diff --git a/interp/cider2-tests/primitives/sqrt.expect b/interp/cider2-tests/primitives/sqrt.expect deleted file mode 100644 index 4e1612127e..0000000000 --- a/interp/cider2-tests/primitives/sqrt.expect +++ /dev/null @@ -1,5 +0,0 @@ -{ - "result": [ - 20 - ] -} diff --git a/interp/cider2-tests/unit/assign-order-does-not-matter.expect b/interp/cider2-tests/unit/assign-order-does-not-matter.expect deleted file mode 100644 index c972355f3c..0000000000 --- a/interp/cider2-tests/unit/assign-order-does-not-matter.expect +++ /dev/null @@ -1,5 +0,0 @@ -{ - "reg0": [ - 409 - ] -} diff --git a/interp/cider2-tests/unit/combinational-chain.expect b/interp/cider2-tests/unit/combinational-chain.expect deleted file mode 100644 index 1bd139841b..0000000000 --- a/interp/cider2-tests/unit/combinational-chain.expect +++ /dev/null @@ -1,5 +0,0 @@ -{ - "reg1": [ - 6 - ] -} diff --git a/interp/cider2-tests/unit/register-writes-visible-inside-group.expect b/interp/cider2-tests/unit/register-writes-visible-inside-group.expect deleted file mode 100644 index a09a957d38..0000000000 --- a/interp/cider2-tests/unit/register-writes-visible-inside-group.expect +++ /dev/null @@ -1,17 +0,0 @@ -{ - "fsm": [ - 4 - ], - "reg0": [ - 9 - ], - "reg1": [ - 9 - ], - "reg2": [ - 9 - ], - "reg3": [ - 9 - ] -} diff --git a/interp/cider2-tests/unit/uninitialized-port-returns-zero.expect b/interp/cider2-tests/unit/uninitialized-port-returns-zero.expect deleted file mode 100644 index c647c0bf11..0000000000 --- a/interp/cider2-tests/unit/uninitialized-port-returns-zero.expect +++ /dev/null @@ -1,5 +0,0 @@ ----STDERR--- -Error: Attempted to write an undefined value to register or memory named "main.reg0" -thread 'main' panicked at interp/src/serialization/data_dump.rs:160:48: -called `Result::unwrap()` on an `Err` value: Error { kind: UnexpectedEof, message: "failed to fill whole buffer" } -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace diff --git a/interp/runt.toml b/interp/runt.toml deleted file mode 100644 index 705c6c10f0..0000000000 --- a/interp/runt.toml +++ /dev/null @@ -1,200 +0,0 @@ -ver = "0.4.1" - -# Check basic functionality of the interpreter -[[tests]] -name = "unit" -paths = ["tests/unit/*.futil"] -cmd = """ - ../target/debug/cider {} | jq .memories --sort-keys -""" -timeout = 3 - -[[tests]] -name = "errors" -paths = ["tests/errors/*.futil"] - -cmd = """ -../target/debug/cider {} -""" -timeout = 3 - -[[tests]] -name = "complex" -paths = ["tests/complex/*.futil"] - -cmd = """ -../target/debug/cider {} | jq . --sort-keys -""" -timeout = 3 - -[[tests]] -name = "primitives" -paths = ["tests/primitives/*.futil"] -cmd = """ -../target/debug/cider {} -q | jq .memories --sort-keys -""" -timeout = 3 - -[[tests]] -name = "par to seq" -paths = ["tests/control/par_reg.futil", "tests/control/par_mem.futil"] -cmd = """ -../target/debug/calyx {} -p par-to-seq -l ../ | ../target/debug/cider | jq .memories --sort-keys -""" -timeout = 3 - -[[tests]] -name = "control" -paths = [ - "tests/control/*.futil", - "tests/control/iteration/*.futil", - "tests/control/static/*.futil", -] -cmd = """ -../target/debug/cider {} -q | jq .memories --sort-keys -""" -timeout = 3 - -[[tests]] -name = "invoke" -paths = ["tests/control/invoke/*.futil"] -cmd = """ -fud e {} --from calyx --to interpreter-out -s interpreter.flags " -q" -s verilog.data {}.data -q | jq .memories --sort-keys -""" - -[[tests]] -name = "invoke comp" -paths = ["tests/control/invoke/*.futil"] -cmd = """ -fud e {} --from calyx --to interpreter-out -s calyx.flags "-p compile-invoke" -s interpreter.flags " -q" -s verilog.data {}.data -q | jq .memories --sort-keys -""" - -[[tests]] -name = "fully structural" -paths = [ - "tests/control/*.futil", - # Disabled iteration tests due to bug - # "tests/control/iteration/*.futil" -] -cmd = """ -../target/debug/calyx {} -d pre-opt -d post-opt -p simplify-with-control -l ../ | ../target/debug/cider | jq .memories --sort-keys -""" -expect_dir = "tests/lowered/" -timeout = 3 - -[[tests]] -name = "fully structural static" -paths = ["tests/control/static*.futil"] -cmd = """ -../target/debug/calyx {} -d pre-opt -d post-opt -l ../ | ../target/debug/cider | jq .memories --sort-keys -""" -expect_dir = "tests/lowered/" -timeout = 3 - -[[tests]] -name = "correctness dynamic" -paths = ["../tests/correctness/*.futil"] -cmd = """ -fud exec --from calyx --to jq \ - --through interpreter-out \ - -s verilog.data {}.data \ - -s interpreter.flags " --raw" \ - -s jq.expr ".main" \ - -s jq.flags "--sort-keys " \ - {} -q -""" - -[[tests]] -name = "correctness ref cells" -paths = ["../tests/correctness/ref-cells/*.futil"] -cmd = """ -fud exec --from calyx --to jq \ - --through interpreter-out \ - -s calyx.flags "-p compile-invoke" \ - -s verilog.data {}.data \ - -s interpreter.flags " --raw" \ - -s jq.expr ".main" \ - -s jq.flags "--sort-keys " \ - {} -q -""" - -[[tests]] -name = "numeric types correctness and parsing" -paths = [ - "../tests/correctness/numeric-types/parsing/*.futil", - "../tests/correctness/numeric-types/bitnum/*.futil", - "../tests/correctness/numeric-types/fixed-point/*.futil", -] -cmd = """ -fud exec --from calyx --to jq \ - --through interpreter-out \ - -s interpreter.flags "--raw " \ - -s verilog.data {}.data \ - -s jq.expr ".main" \ - -s jq.flags "--sort-keys " \ - {} -q -""" - -[[tests]] -name = "[frontend] tcam testing" -paths = ["../tests/correctness/tcam/*.futil"] -cmd = """ -fud exec --from calyx --to jq \ - --through interpreter-out \ - -s interpreter.flags "--raw " \ - -s verilog.data {}.data \ - -s jq.expr ".main" \ - -s jq.flags "--sort-keys " \ - {} -q -""" - -# [[tests]] -# name = "[frontend] systolic array correctness" -# paths = ["../tests/correctness/systolic/*.systolic"] -# cmd = """ -# fud e --from systolic --to jq \ -# --through interpreter-out \ -# -s interpreter.flags "--raw " \ -# -s verilog.data {}.data \ -# -s jq.expr ".main" \ -# {} -q -# """ - -[[tests]] -name = "[frontend] NTT pipeline correctness" -paths = ["../tests/correctness/ntt-pipeline/*.txt"] -cmd = """ -fud e --from ntt --to jq \ - --through interpreter-out \ - -s interpreter.flags "--raw " \ - -s verilog.data {}.data \ - -s jq.expr ".main" \ - -s jq.flags "--sort-keys " \ - {} -q -""" -expect_dir = "tests/ntt-results/" - - -[[tests]] -name = "[frontend] mrxl correctness" -paths = ["../frontends/mrxl/test/*.mrxl"] -cmd = """ -fud e -q {} --from mrxl --to jq \ - --through interpreter-out \ - -s interpreter.flags "--raw " \ - -s verilog.data {}.data \ - -s jq.flags "--sort-keys " \ - -s jq.expr ".main" -""" - -[[tests]] -name = "[frontend] relay correctness" -paths = ["../tests/correctness/relay/*.relay"] -cmd = """ -fud e -q {} --from relay --to jq \ - --through interpreter-out \ - -s interpreter.flags "--raw " \ - -s verilog.data {}.data \ - -s jq.flags "--sort-keys " \ - -s jq.expr ".main" -""" diff --git a/interp/cider2-tests/benchmarks/ntt-32.expect b/interp/tests/benchmarks/ntt-32.expect similarity index 100% rename from interp/cider2-tests/benchmarks/ntt-32.expect rename to interp/tests/benchmarks/ntt-32.expect diff --git a/interp/cider2-tests/benchmarks/ntt-32.futil b/interp/tests/benchmarks/ntt-32.futil similarity index 100% rename from interp/cider2-tests/benchmarks/ntt-32.futil rename to interp/tests/benchmarks/ntt-32.futil diff --git a/interp/cider2-tests/benchmarks/ntt-32.futil.data b/interp/tests/benchmarks/ntt-32.futil.data similarity index 100% rename from interp/cider2-tests/benchmarks/ntt-32.futil.data rename to interp/tests/benchmarks/ntt-32.futil.data diff --git a/interp/cider2-tests/benchmarks/ntt-64.expect b/interp/tests/benchmarks/ntt-64.expect similarity index 100% rename from interp/cider2-tests/benchmarks/ntt-64.expect rename to interp/tests/benchmarks/ntt-64.expect diff --git a/interp/cider2-tests/benchmarks/ntt-64.futil b/interp/tests/benchmarks/ntt-64.futil similarity index 100% rename from interp/cider2-tests/benchmarks/ntt-64.futil rename to interp/tests/benchmarks/ntt-64.futil diff --git a/interp/cider2-tests/benchmarks/ntt-64.futil.data b/interp/tests/benchmarks/ntt-64.futil.data similarity index 100% rename from interp/cider2-tests/benchmarks/ntt-64.futil.data rename to interp/tests/benchmarks/ntt-64.futil.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-2mm.expect b/interp/tests/benchmarks/polybench/linear-algebra-2mm.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-2mm.expect rename to interp/tests/benchmarks/polybench/linear-algebra-2mm.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-2mm.fuse b/interp/tests/benchmarks/polybench/linear-algebra-2mm.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-2mm.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-2mm.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-2mm.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-2mm.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-2mm.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-2mm.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-3mm.expect b/interp/tests/benchmarks/polybench/linear-algebra-3mm.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-3mm.expect rename to interp/tests/benchmarks/polybench/linear-algebra-3mm.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-3mm.fuse b/interp/tests/benchmarks/polybench/linear-algebra-3mm.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-3mm.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-3mm.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-3mm.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-3mm.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-3mm.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-3mm.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-atax.expect b/interp/tests/benchmarks/polybench/linear-algebra-atax.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-atax.expect rename to interp/tests/benchmarks/polybench/linear-algebra-atax.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-atax.fuse b/interp/tests/benchmarks/polybench/linear-algebra-atax.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-atax.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-atax.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-atax.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-atax.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-atax.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-atax.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-bicg.expect b/interp/tests/benchmarks/polybench/linear-algebra-bicg.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-bicg.expect rename to interp/tests/benchmarks/polybench/linear-algebra-bicg.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-bicg.fuse b/interp/tests/benchmarks/polybench/linear-algebra-bicg.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-bicg.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-bicg.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-bicg.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-bicg.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-bicg.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-bicg.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-cholesky.expect b/interp/tests/benchmarks/polybench/linear-algebra-cholesky.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-cholesky.expect rename to interp/tests/benchmarks/polybench/linear-algebra-cholesky.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-cholesky.fuse b/interp/tests/benchmarks/polybench/linear-algebra-cholesky.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-cholesky.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-cholesky.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-cholesky.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-cholesky.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-cholesky.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-cholesky.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-doitgen.expect b/interp/tests/benchmarks/polybench/linear-algebra-doitgen.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-doitgen.expect rename to interp/tests/benchmarks/polybench/linear-algebra-doitgen.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-doitgen.fuse b/interp/tests/benchmarks/polybench/linear-algebra-doitgen.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-doitgen.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-doitgen.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-doitgen.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-doitgen.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-doitgen.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-doitgen.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-durbin.expect b/interp/tests/benchmarks/polybench/linear-algebra-durbin.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-durbin.expect rename to interp/tests/benchmarks/polybench/linear-algebra-durbin.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-durbin.fuse b/interp/tests/benchmarks/polybench/linear-algebra-durbin.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-durbin.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-durbin.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-durbin.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-durbin.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-durbin.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-durbin.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gemm.expect b/interp/tests/benchmarks/polybench/linear-algebra-gemm.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gemm.expect rename to interp/tests/benchmarks/polybench/linear-algebra-gemm.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gemm.fuse b/interp/tests/benchmarks/polybench/linear-algebra-gemm.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gemm.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-gemm.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gemm.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-gemm.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gemm.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-gemm.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gemver.expect b/interp/tests/benchmarks/polybench/linear-algebra-gemver.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gemver.expect rename to interp/tests/benchmarks/polybench/linear-algebra-gemver.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gemver.fuse b/interp/tests/benchmarks/polybench/linear-algebra-gemver.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gemver.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-gemver.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gemver.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-gemver.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gemver.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-gemver.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gesummv.expect b/interp/tests/benchmarks/polybench/linear-algebra-gesummv.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gesummv.expect rename to interp/tests/benchmarks/polybench/linear-algebra-gesummv.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gesummv.fuse b/interp/tests/benchmarks/polybench/linear-algebra-gesummv.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gesummv.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-gesummv.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gesummv.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-gesummv.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gesummv.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-gesummv.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gramschmidt.expect b/interp/tests/benchmarks/polybench/linear-algebra-gramschmidt.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gramschmidt.expect rename to interp/tests/benchmarks/polybench/linear-algebra-gramschmidt.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse b/interp/tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-gramschmidt.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-lu.expect b/interp/tests/benchmarks/polybench/linear-algebra-lu.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-lu.expect rename to interp/tests/benchmarks/polybench/linear-algebra-lu.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-lu.fuse b/interp/tests/benchmarks/polybench/linear-algebra-lu.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-lu.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-lu.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-lu.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-lu.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-lu.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-lu.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-ludcmp.expect b/interp/tests/benchmarks/polybench/linear-algebra-ludcmp.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-ludcmp.expect rename to interp/tests/benchmarks/polybench/linear-algebra-ludcmp.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-ludcmp.fuse b/interp/tests/benchmarks/polybench/linear-algebra-ludcmp.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-ludcmp.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-ludcmp.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-ludcmp.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-ludcmp.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-ludcmp.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-ludcmp.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-mvt.expect b/interp/tests/benchmarks/polybench/linear-algebra-mvt.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-mvt.expect rename to interp/tests/benchmarks/polybench/linear-algebra-mvt.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-mvt.fuse b/interp/tests/benchmarks/polybench/linear-algebra-mvt.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-mvt.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-mvt.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-mvt.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-mvt.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-mvt.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-mvt.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-symm.expect b/interp/tests/benchmarks/polybench/linear-algebra-symm.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-symm.expect rename to interp/tests/benchmarks/polybench/linear-algebra-symm.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-symm.fuse b/interp/tests/benchmarks/polybench/linear-algebra-symm.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-symm.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-symm.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-symm.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-symm.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-symm.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-symm.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-syr2k.expect b/interp/tests/benchmarks/polybench/linear-algebra-syr2k.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-syr2k.expect rename to interp/tests/benchmarks/polybench/linear-algebra-syr2k.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-syr2k.fuse b/interp/tests/benchmarks/polybench/linear-algebra-syr2k.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-syr2k.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-syr2k.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-syr2k.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-syr2k.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-syr2k.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-syr2k.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-syrk.expect b/interp/tests/benchmarks/polybench/linear-algebra-syrk.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-syrk.expect rename to interp/tests/benchmarks/polybench/linear-algebra-syrk.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-syrk.fuse b/interp/tests/benchmarks/polybench/linear-algebra-syrk.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-syrk.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-syrk.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-syrk.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-syrk.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-syrk.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-syrk.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-trisolv.expect b/interp/tests/benchmarks/polybench/linear-algebra-trisolv.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-trisolv.expect rename to interp/tests/benchmarks/polybench/linear-algebra-trisolv.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-trisolv.fuse b/interp/tests/benchmarks/polybench/linear-algebra-trisolv.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-trisolv.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-trisolv.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-trisolv.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-trisolv.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-trisolv.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-trisolv.fuse.data diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-trmm.expect b/interp/tests/benchmarks/polybench/linear-algebra-trmm.expect similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-trmm.expect rename to interp/tests/benchmarks/polybench/linear-algebra-trmm.expect diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-trmm.fuse b/interp/tests/benchmarks/polybench/linear-algebra-trmm.fuse similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-trmm.fuse rename to interp/tests/benchmarks/polybench/linear-algebra-trmm.fuse diff --git a/interp/cider2-tests/benchmarks/polybench/linear-algebra-trmm.fuse.data b/interp/tests/benchmarks/polybench/linear-algebra-trmm.fuse.data similarity index 100% rename from interp/cider2-tests/benchmarks/polybench/linear-algebra-trmm.fuse.data rename to interp/tests/benchmarks/polybench/linear-algebra-trmm.fuse.data diff --git a/interp/cider2-tests/benchmarks/tcam-32.expect b/interp/tests/benchmarks/tcam-32.expect similarity index 100% rename from interp/cider2-tests/benchmarks/tcam-32.expect rename to interp/tests/benchmarks/tcam-32.expect diff --git a/interp/cider2-tests/benchmarks/tcam-32.futil b/interp/tests/benchmarks/tcam-32.futil similarity index 100% rename from interp/cider2-tests/benchmarks/tcam-32.futil rename to interp/tests/benchmarks/tcam-32.futil diff --git a/interp/cider2-tests/benchmarks/tcam-32.futil.data b/interp/tests/benchmarks/tcam-32.futil.data similarity index 100% rename from interp/cider2-tests/benchmarks/tcam-32.futil.data rename to interp/tests/benchmarks/tcam-32.futil.data diff --git a/interp/cider2-tests/benchmarks/tcam-64.expect b/interp/tests/benchmarks/tcam-64.expect similarity index 100% rename from interp/cider2-tests/benchmarks/tcam-64.expect rename to interp/tests/benchmarks/tcam-64.expect diff --git a/interp/cider2-tests/benchmarks/tcam-64.futil b/interp/tests/benchmarks/tcam-64.futil similarity index 100% rename from interp/cider2-tests/benchmarks/tcam-64.futil rename to interp/tests/benchmarks/tcam-64.futil diff --git a/interp/cider2-tests/benchmarks/tcam-64.futil.data b/interp/tests/benchmarks/tcam-64.futil.data similarity index 100% rename from interp/cider2-tests/benchmarks/tcam-64.futil.data rename to interp/tests/benchmarks/tcam-64.futil.data diff --git a/interp/tests/complex/unsigned-div.expect b/interp/tests/complex/unsigned-div.expect index b02dabfbf1..6ed76fa238 100644 --- a/interp/tests/complex/unsigned-div.expect +++ b/interp/tests/complex/unsigned-div.expect @@ -1,51 +1,8 @@ { - "memories": { - "main": { - "div": [ - 11, - 1 - ], - "reg_q": 11, - "reg_r": 1 - } - }, - "ports": { - "main": { - "_1_1": { - "out": 1 - }, - "_56_32": { - "out": 56 - }, - "_5_32": { - "out": 5 - }, - "div": { - "clk": 0, - "done": 0, - "go": 0, - "left": 0, - "out_quotient": 11, - "out_remainder": 1, - "reset": 0, - "right": 0 - }, - "reg_q": { - "clk": 0, - "done": 0, - "in": 0, - "out": 11, - "reset": 0, - "write_en": 0 - }, - "reg_r": { - "clk": 0, - "done": 0, - "in": 0, - "out": 1, - "reset": 0, - "write_en": 0 - } - } - } + "reg_q": [ + 11 + ], + "reg_r": [ + 1 + ] } diff --git a/interp/tests/complex/unsigned-dot-product.expect b/interp/tests/complex/unsigned-dot-product.expect index 3ae10b8b65..8149168761 100644 --- a/interp/tests/complex/unsigned-dot-product.expect +++ b/interp/tests/complex/unsigned-dot-product.expect @@ -1,178 +1,63 @@ { - "memories": { - "main": { - "counter": 4, - "mem0": [ - [ - 12, - 0, - 0, - 0 - ], - [ - 10, - 0, - 0, - 0 - ], - [ - 20, - 0, - 0, - 0 - ], - [ - 34, - 0, - 0, - 0 - ] - ], - "mem1": [ - [ - 16, - 0, - 0, - 0 - ], - [ - 32, - 0, - 0, - 0 - ], - [ - 8, - 0, - 0, - 0 - ], - [ - 24, - 0, - 0, - 0 - ] - ], - "mult": [ - 816 - ], - "r_2": 1376, - "t": 1488 - } - }, - "ports": { - "main": { - "_0_3": { - "out": 0 - }, - "_10_32": { - "out": 10 - }, - "_12_32": { - "out": 12 - }, - "_16_32": { - "out": 16 - }, - "_1_1": { - "out": 1 - }, - "_1_3": { - "out": 1 - }, - "_20_32": { - "out": 20 - }, - "_24_32": { - "out": 24 - }, - "_2_3": { - "out": 2 - }, - "_32_32": { - "out": 32 - }, - "_34_32": { - "out": 34 - }, - "_3_3": { - "out": 3 - }, - "_4_3": { - "out": 4 - }, - "_8_32": { - "out": 8 - }, - "add0": { - "left": 0, - "out": 0, - "right": 0 - }, - "add1": { - "left": 0, - "out": 0, - "right": 0 - }, - "counter": { - "clk": 0, - "done": 0, - "in": 0, - "out": 4, - "reset": 0, - "write_en": 0 - }, - "lt0": { - "left": 0, - "out": 0, - "right": 0 - }, - "mem0": { - "addr0": 0, - "addr1": 0, - "clk": 0, - "done": 0, - "read_data": 0, - "reset": 0, - "write_data": 0, - "write_en": 0 - }, - "mem1": { - "addr0": 0, - "addr1": 0, - "clk": 0, - "done": 0, - "read_data": 0, - "reset": 0, - "write_data": 0, - "write_en": 0 - }, - "mult": { - "clk": 0, - "done": 0, - "go": 0, - "left": 0, - "out": 816, - "reset": 0, - "right": 0 - }, - "r_2": { - "clk": 0, - "done": 0, - "in": 0, - "out": 1376, - "reset": 0, - "write_en": 0 - }, - "t": { - "clk": 0, - "done": 0, - "in": 0, - "out": 1488, - "reset": 0, - "write_en": 0 - } - } - } + "counter": [ + 4 + ], + "mem0": [ + [ + 12, + 0, + 0, + 0 + ], + [ + 10, + 0, + 0, + 0 + ], + [ + 20, + 0, + 0, + 0 + ], + [ + 34, + 0, + 0, + 0 + ] + ], + "mem1": [ + [ + 16, + 0, + 0, + 0 + ], + [ + 32, + 0, + 0, + 0 + ], + [ + 8, + 0, + 0, + 0 + ], + [ + 24, + 0, + 0, + 0 + ] + ], + "r_2": [ + 1376 + ], + "t": [ + 1488 + ] } diff --git a/interp/tests/control/if.expect b/interp/tests/control/if.expect index 00a5d5935e..5c5b33733b 100644 --- a/interp/tests/control/if.expect +++ b/interp/tests/control/if.expect @@ -1,7 +1,5 @@ { - "main": { - "mem": [ - 4 - ] - } + "mem": [ + 4 + ] } diff --git a/interp/tests/control/if_reg.expect b/interp/tests/control/if_reg.expect index f25f781ac3..e2312a5410 100644 --- a/interp/tests/control/if_reg.expect +++ b/interp/tests/control/if_reg.expect @@ -1,6 +1,8 @@ { - "main": { - "reg0": 0, - "reg1": 10 - } + "reg0": [ + 0 + ], + "reg1": [ + 10 + ] } diff --git a/interp/tests/control/invoke/invoke.expect b/interp/tests/control/invoke/invoke.expect index ca0d4c53e8..2cfc4e347f 100644 --- a/interp/tests/control/invoke/invoke.expect +++ b/interp/tests/control/invoke/invoke.expect @@ -1,16 +1,14 @@ { - "main": { - "a0": [ - 1, - 8, - 27, - 64, - 125, - 216, - 343, - 512, - 729, - 1000 - ] - } + "a0": [ + 1, + 8, + 27, + 64, + 125, + 216, + 343, + 512, + 729, + 1000 + ] } diff --git a/interp/tests/control/invoke/k3.expect b/interp/tests/control/invoke/k3.expect index 171227374d..0ea86fbe0f 100644 --- a/interp/tests/control/invoke/k3.expect +++ b/interp/tests/control/invoke/k3.expect @@ -1,10 +1,8 @@ { - "main": { - "depth_output": [ - 1 - ], - "path_ids1": [ - 1 - ] - } + "depth_output": [ + 1 + ], + "path_ids1": [ + 1 + ] } diff --git a/interp/cider2-tests/control/iter_mult.expect b/interp/tests/control/iter_mult.expect similarity index 100% rename from interp/cider2-tests/control/iter_mult.expect rename to interp/tests/control/iter_mult.expect diff --git a/interp/tests/control/iteration/iter_mult.futil b/interp/tests/control/iter_mult.futil similarity index 100% rename from interp/tests/control/iteration/iter_mult.futil rename to interp/tests/control/iter_mult.futil diff --git a/interp/tests/control/iteration/iter_mult.expect b/interp/tests/control/iteration/iter_mult.expect deleted file mode 100644 index b4ad766925..0000000000 --- a/interp/tests/control/iteration/iter_mult.expect +++ /dev/null @@ -1,9 +0,0 @@ -{ - "main": { - "a": 8, - "c": 0, - "i": 4, - "m": 11, - "q": 15 - } -} diff --git a/interp/tests/control/iteration/while.expect b/interp/tests/control/iteration/while.expect deleted file mode 100644 index d8c178f7eb..0000000000 --- a/interp/tests/control/iteration/while.expect +++ /dev/null @@ -1,7 +0,0 @@ -{ - "main": { - "i": [ - 8 - ] - } -} diff --git a/interp/tests/control/par_mem.expect b/interp/tests/control/par_mem.expect index 79242fb457..a6cf3b8413 100644 --- a/interp/tests/control/par_mem.expect +++ b/interp/tests/control/par_mem.expect @@ -1,13 +1,11 @@ { - "main": { - "a": [ - 1 - ], - "b": [ - 1 - ], - "c": [ - 1 - ] - } + "a": [ + 1 + ], + "b": [ + 1 + ], + "c": [ + 1 + ] } diff --git a/interp/tests/control/par_reg.expect b/interp/tests/control/par_reg.expect index 58e4167359..a6cf3b8413 100644 --- a/interp/tests/control/par_reg.expect +++ b/interp/tests/control/par_reg.expect @@ -1,7 +1,11 @@ { - "main": { - "a": 1, - "b": 1, - "c": 1 - } + "a": [ + 1 + ], + "b": [ + 1 + ], + "c": [ + 1 + ] } diff --git a/interp/tests/control/reg_seq.expect b/interp/tests/control/reg_seq.expect index ff722201c6..5ef34e01c7 100644 --- a/interp/tests/control/reg_seq.expect +++ b/interp/tests/control/reg_seq.expect @@ -1,6 +1,8 @@ { - "main": { - "reg0": 9, - "reg1": 400 - } + "reg0": [ + 9 + ], + "reg1": [ + 400 + ] } diff --git a/interp/cider2-tests/control/while.expect b/interp/tests/control/while.expect similarity index 100% rename from interp/cider2-tests/control/while.expect rename to interp/tests/control/while.expect diff --git a/interp/tests/control/iteration/while.futil b/interp/tests/control/while.futil similarity index 100% rename from interp/tests/control/iteration/while.futil rename to interp/tests/control/while.futil diff --git a/interp/cider2-tests/multi-comp/my_add.expect b/interp/tests/multi-comp/my_add.expect similarity index 100% rename from interp/cider2-tests/multi-comp/my_add.expect rename to interp/tests/multi-comp/my_add.expect diff --git a/interp/cider2-tests/multi-comp/my_add.futil b/interp/tests/multi-comp/my_add.futil similarity index 100% rename from interp/cider2-tests/multi-comp/my_add.futil rename to interp/tests/multi-comp/my_add.futil diff --git a/interp/cider2-tests/multi-comp/my_add_invoke.expect b/interp/tests/multi-comp/my_add_invoke.expect similarity index 100% rename from interp/cider2-tests/multi-comp/my_add_invoke.expect rename to interp/tests/multi-comp/my_add_invoke.expect diff --git a/interp/cider2-tests/multi-comp/my_add_invoke.futil b/interp/tests/multi-comp/my_add_invoke.futil similarity index 100% rename from interp/cider2-tests/multi-comp/my_add_invoke.futil rename to interp/tests/multi-comp/my_add_invoke.futil diff --git a/interp/cider2-tests/multi-comp/my_add_invoke_ref.expect b/interp/tests/multi-comp/my_add_invoke_ref.expect similarity index 100% rename from interp/cider2-tests/multi-comp/my_add_invoke_ref.expect rename to interp/tests/multi-comp/my_add_invoke_ref.expect diff --git a/interp/cider2-tests/multi-comp/my_add_invoke_ref.futil b/interp/tests/multi-comp/my_add_invoke_ref.futil similarity index 100% rename from interp/cider2-tests/multi-comp/my_add_invoke_ref.futil rename to interp/tests/multi-comp/my_add_invoke_ref.futil diff --git a/interp/cider2-tests/control/par_mem.expect b/interp/tests/par-to-seq/par_mem.expect similarity index 100% rename from interp/cider2-tests/control/par_mem.expect rename to interp/tests/par-to-seq/par_mem.expect diff --git a/interp/cider2-tests/control/par_reg.expect b/interp/tests/par-to-seq/par_reg.expect similarity index 100% rename from interp/cider2-tests/control/par_reg.expect rename to interp/tests/par-to-seq/par_reg.expect diff --git a/interp/tests/primitives/add-overflow.expect b/interp/tests/primitives/add-overflow.expect index e8192f806c..2fb87194b2 100644 --- a/interp/tests/primitives/add-overflow.expect +++ b/interp/tests/primitives/add-overflow.expect @@ -1,6 +1,8 @@ { - "main": { - "reg0": 7, - "reg1": 7 - } + "reg0": [ + 7 + ], + "reg1": [ + 7 + ] } diff --git a/interp/tests/primitives/binary.expect b/interp/tests/primitives/binary.expect index f00f99dc15..324cce15e1 100644 --- a/interp/tests/primitives/binary.expect +++ b/interp/tests/primitives/binary.expect @@ -1,15 +1,35 @@ { - "main": { - "add_reg": 409, - "and_reg": 8, - "eq_reg": 1, - "ge_reg": 1, - "gt_reg": 0, - "le_reg": 1, - "lt_reg": 0, - "neq_reg": 0, - "or_reg": 15, - "sub_reg": 391, - "xor_reg": 7 - } + "add_reg": [ + 409 + ], + "and_reg": [ + 8 + ], + "eq_reg": [ + 1 + ], + "ge_reg": [ + 1 + ], + "gt_reg": [ + 0 + ], + "le_reg": [ + 1 + ], + "lt_reg": [ + 0 + ], + "neq_reg": [ + 0 + ], + "or_reg": [ + 15 + ], + "sub_reg": [ + 391 + ], + "xor_reg": [ + 7 + ] } diff --git a/interp/tests/primitives/flickering_go.expect b/interp/tests/primitives/flickering_go.expect index fdd5448278..85121c76ba 100644 --- a/interp/tests/primitives/flickering_go.expect +++ b/interp/tests/primitives/flickering_go.expect @@ -1,14 +1,14 @@ { - "main": { - "mult0": [ - 0 - ], - "mult1": [ - 32 - ], - "mult_reg0": 0, - "mult_reg1": 32, - "reg0": 0, - "reg1": 12 - } + "mult_reg0": [ + 0 + ], + "mult_reg1": [ + 32 + ], + "reg0": [ + 0 + ], + "reg1": [ + 12 + ] } diff --git a/interp/tests/primitives/mem.expect b/interp/tests/primitives/mem.expect index 3bfdd3b004..abfa90a324 100644 --- a/interp/tests/primitives/mem.expect +++ b/interp/tests/primitives/mem.expect @@ -1,8 +1,8 @@ { - "main": { - "mem": [ - 9 - ], - "reg0": 9 - } + "mem": [ + 9 + ], + "reg0": [ + 9 + ] } diff --git a/interp/tests/primitives/mem2.expect b/interp/tests/primitives/mem2.expect index 7a7fc41542..e308d35684 100644 --- a/interp/tests/primitives/mem2.expect +++ b/interp/tests/primitives/mem2.expect @@ -1,25 +1,25 @@ { - "main": { - "mem0": [ - 0, - 0, - 0, - 2, - 1, - 0, - 0, - 0 - ], - "mem1": [ - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0 - ], - "reg0": 1 - } + "mem0": [ + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0 + ], + "mem1": [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + "reg0": [ + 1 + ] } diff --git a/interp/tests/primitives/reg.expect b/interp/tests/primitives/reg.expect index f6ceb11aab..1faa958e80 100644 --- a/interp/tests/primitives/reg.expect +++ b/interp/tests/primitives/reg.expect @@ -1,6 +1,8 @@ { - "main": { - "reg0": 157, - "reg1": 157 - } + "reg0": [ + 157 + ], + "reg1": [ + 157 + ] } diff --git a/interp/tests/primitives/slice.expect b/interp/tests/primitives/slice.expect index 7023f4a35c..b5175916b8 100644 --- a/interp/tests/primitives/slice.expect +++ b/interp/tests/primitives/slice.expect @@ -1,8 +1,14 @@ { - "main": { - "reg0": 0, - "reg1": 1, - "reg14": 14, - "reg15": 15 - } + "reg0": [ + 0 + ], + "reg1": [ + 1 + ], + "reg14": [ + 14 + ], + "reg15": [ + 15 + ] } diff --git a/interp/tests/primitives/sqrt.expect b/interp/tests/primitives/sqrt.expect index 9b804c759a..4e1612127e 100644 --- a/interp/tests/primitives/sqrt.expect +++ b/interp/tests/primitives/sqrt.expect @@ -1,5 +1,5 @@ { - "main": { - "result": 20 - } + "result": [ + 20 + ] } diff --git a/interp/cider2-tests/runt.toml b/interp/tests/runt.toml similarity index 90% rename from interp/cider2-tests/runt.toml rename to interp/tests/runt.toml index 613379ab2d..d0924d6c0b 100644 --- a/interp/cider2-tests/runt.toml +++ b/interp/tests/runt.toml @@ -3,7 +3,7 @@ ver = "0.4.1" # Check basic functionality of the interpreter [[tests]] name = "unit" -paths = ["../tests/unit/*.futil"] +paths = ["unit/*.futil"] cmd = """ ../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ @@ -29,7 +29,7 @@ timeout = 10 [[tests]] name = "complex" -paths = ["../tests/complex/*.futil"] +paths = ["complex/*.futil"] cmd = """ ../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys @@ -39,7 +39,7 @@ expect_dir = "complex" [[tests]] name = "primitives" -paths = ["../tests/primitives/*.futil"] +paths = ["primitives/*.futil"] cmd = """ ../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ @@ -48,7 +48,7 @@ expect_dir = "primitives" [[tests]] name = "par to seq" -paths = ["../tests/control/par_reg.futil", "../tests/control/par_mem.futil"] +paths = ["control/par_reg.futil", "control/par_mem.futil"] cmd = """ ../../target/debug/calyx {} -p par-to-seq -l ../../ | ../../target/debug/cider -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ @@ -57,7 +57,7 @@ expect_dir = "par-to-seq" [[tests]] name = "control" -paths = ["../tests/control/*.futil", "../tests/control/iteration/*.futil"] +paths = ["control/*.futil", "control/iteration/*.futil"] cmd = """ ../../target/debug/cider {} -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ @@ -66,28 +66,22 @@ expect_dir = "control" [[tests]] name = "invoke" -paths = ["../tests/control/invoke/*.futil"] +paths = ["control/invoke/*.futil"] cmd = """ fud2 {} --from calyx --to dat --through cider -s sim.data={}.data -s calyx.args="--log off" | jq --sort-keys """ timeout = 10 -expect_dir = "invoke" [[tests]] -name = "invoke comp" -paths = ["../tests/control/invoke/*.futil"] +name = "invoke compiled" +paths = ["control/invoke/*.futil"] cmd = """ fud2 {} --from calyx --to dat --through cider -s calyx.flags=" -p compile-invoke" -s sim.data={}.data -s calyx.args="--log off" | jq --sort-keys """ -expect_dir = "invoke" [[tests]] name = "fully structural" -paths = [ - "../tests/control/*.futil", - # Disabled iteration tests due to bug - "../tests/control/iteration/*.futil", -] +paths = ["control/*.futil", "control/iteration/*.futil"] cmd = """ ../../target/debug/calyx {} -d pre-opt -d post-opt -p simplify-with-control -l ../../ --log off | ../../target/debug/cider -l ../../ --dump-registers | ../../target/debug/cider-data-converter --to json | jq --sort-keys """ @@ -187,7 +181,7 @@ fud2 --from dahlia --to dat \ # [[tests]] # name = "[frontend] systolic array correctness" -# paths = ["../tests/correctness/systolic/*.systolic"] +# paths = ["correctness/systolic/*.systolic"] # cmd = """ # fud e --from systolic --to jq \ # --through interpreter-out \ diff --git a/interp/tests/unit/assign-order-does-not-matter.expect b/interp/tests/unit/assign-order-does-not-matter.expect index 2d23a457c7..c972355f3c 100644 --- a/interp/tests/unit/assign-order-does-not-matter.expect +++ b/interp/tests/unit/assign-order-does-not-matter.expect @@ -1,5 +1,5 @@ { - "main": { - "reg0": 409 - } + "reg0": [ + 409 + ] } diff --git a/interp/tests/unit/combinational-chain.expect b/interp/tests/unit/combinational-chain.expect index d767cd4f1e..1bd139841b 100644 --- a/interp/tests/unit/combinational-chain.expect +++ b/interp/tests/unit/combinational-chain.expect @@ -1,5 +1,5 @@ { - "main": { - "reg1": 6 - } + "reg1": [ + 6 + ] } diff --git a/interp/tests/unit/register-writes-visible-inside-group.expect b/interp/tests/unit/register-writes-visible-inside-group.expect index c74a3bdb2d..a09a957d38 100644 --- a/interp/tests/unit/register-writes-visible-inside-group.expect +++ b/interp/tests/unit/register-writes-visible-inside-group.expect @@ -1,9 +1,17 @@ { - "main": { - "fsm": 4, - "reg0": 9, - "reg1": 9, - "reg2": 9, - "reg3": 9 - } + "fsm": [ + 4 + ], + "reg0": [ + 9 + ], + "reg1": [ + 9 + ], + "reg2": [ + 9 + ], + "reg3": [ + 9 + ] } diff --git a/interp/tests/unit/uninitialized-port-returns-zero.expect b/interp/tests/unit/uninitialized-port-returns-zero.expect index 311c00c586..c647c0bf11 100644 --- a/interp/tests/unit/uninitialized-port-returns-zero.expect +++ b/interp/tests/unit/uninitialized-port-returns-zero.expect @@ -1,5 +1,5 @@ -{ - "main": { - "reg0": 3 - } -} +---STDERR--- +Error: Attempted to write an undefined value to register or memory named "main.reg0" +thread 'main' panicked at interp/src/serialization/data_dump.rs:160:48: +called `Result::unwrap()` on an `Err` value: Error { kind: UnexpectedEof, message: "failed to fill whole buffer" } +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace From d4d607d51e6cdb0f0eeccd9234891fb99b7b65b3 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 10:49:48 -0400 Subject: [PATCH 62/76] remove random markdown file --- interp/todos.md | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 interp/todos.md diff --git a/interp/todos.md b/interp/todos.md deleted file mode 100644 index 7970411a5a..0000000000 --- a/interp/todos.md +++ /dev/null @@ -1,23 +0,0 @@ -# TODOs - -What it means to "interpret" a program -- Groups vs. components vs. control -How to deal with undefined behavior - -## Group -- Issues with clock cycles and updating data correctly prevent multi-clock cycle groups from being interpreted correctly -- Lift environment out of group level -- Signature: (Group, component, initial environment) -> Environment -- For now, ignoring if 2 groups dependent on each other in parallel -- We need to be able to call a component interpreter if we come across a component while interpreting a group - -## Control -- Use the group interpreter (without it necessarily being completely correct) -- Par and seq -- If and while sequences - -## Component - -# Stuff to do -1. Remove update queue from environment, eventually figure out scheduling mechanism when interpreting a control -2. Go over/meet about how to handle interpreting a control From 4a3f9218662d8df11342663c5e64bf2b62208588 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 10:56:58 -0400 Subject: [PATCH 63/76] add a big gross runt command to the thing --- .github/workflows/rust.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 1c4dfefb66..6ec06ace2b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,7 +27,7 @@ jobs: - name: Check calyx build run: ./target/debug/calyx --version - name: validate playground config - run: node web/validate-data.js + run: node web/validate-data.js # Get the hash of the Dockerfile hash: @@ -123,7 +123,7 @@ jobs: working-directory: /home/calyx run: | # Run the remaining tests - runt interp -x 'relay' -d -o fail + runt -x '(numeric types correctness and parsing)|(tcam testing)|(../../tests/correctness/pipelined-mac.futil)|(../../tests/correctness/std-bit-slice.futil)' -d -o fail - name: Source code tests uses: actions-rs/cargo@v1 @@ -187,7 +187,7 @@ jobs: working-directory: /home/calyx run: | runt -i 'cocotb' -d -o fail -j 1 --max-futures 1 - + - name: Runt tests working-directory: /home/calyx run: | From 70e60827a8f161214ada60e2df9e236bc97163fc Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 11:18:55 -0400 Subject: [PATCH 64/76] fix the directory --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 6ec06ace2b..27f1d57a28 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -120,7 +120,7 @@ jobs: fud c stages.interpreter.exec /home/calyx/target/debug/cider - name: Runt tests - working-directory: /home/calyx + working-directory: /home/calyx/interp/tests run: | # Run the remaining tests runt -x '(numeric types correctness and parsing)|(tcam testing)|(../../tests/correctness/pipelined-mac.futil)|(../../tests/correctness/std-bit-slice.futil)' -d -o fail From ed5d3f16fb894bd82b2de6022015fd4a1cc3a420 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 11:24:16 -0400 Subject: [PATCH 65/76] excise interpreter from python --- fud/fud/main.py | 13 -- fud/fud/stages/interpreter.py | 358 ---------------------------------- 2 files changed, 371 deletions(-) delete mode 100644 fud/fud/stages/interpreter.py diff --git a/fud/fud/main.py b/fud/fud/main.py index 5b89d86bcb..87424c163c 100644 --- a/fud/fud/main.py +++ b/fud/fud/main.py @@ -11,7 +11,6 @@ from .stages import ( dahlia, futil, - interpreter, relay, systolic, vcdump, @@ -101,13 +100,6 @@ def register_stages(registry): "Generate the XML metadata for Xilinx", ) ) - registry.register( - futil.CalyxStage( - "interpreter", - "-p none", - "Compile Calyx for interpretation with CIDR", - ) - ) registry.register( futil.CalyxStage( "resources", @@ -150,11 +142,6 @@ def register_stages(registry): registry.register(xilinx.XilinxStage()) registry.register(xilinx.HwExecutionStage()) - # Interpreter - registry.register(interpreter.InterpreterStage("", "", "Run the interpreter")) - registry.register(interpreter.InterpreterStage.debugger("", "", "Run the debugger")) - registry.register(interpreter.InterpreterStage.data_converter()) - def register_external_stages(cfg, registry): """ diff --git a/fud/fud/stages/interpreter.py b/fud/fud/stages/interpreter.py deleted file mode 100644 index 9eca39b999..0000000000 --- a/fud/fud/stages/interpreter.py +++ /dev/null @@ -1,358 +0,0 @@ -import base64 -from fud.stages import Stage, SourceType, Source -from pathlib import Path -import simplejson as sjson -import numpy as np -from calyx.numeric_types import FixedPoint, Bitnum, InvalidNumericType -from fud.stages.verilator.json_to_dat import parse_fp_widths, float_to_fixed -from fud.utils import shell, TmpDir, unwrap_or, transparent_shell -from fud import config as cfg -from enum import Enum, auto - - -class EvalType(Enum): - INTERPRETER = auto() - DEBUGGER = auto() - DATA_CONVERTER = auto() - - -# A local constant used only within this file largely for organizational -# purposes and to avoid magic strings -_FILE_NAME = "data.json" -_DEBUGGER_TARGET = "debugger" - - -class InterpreterStage(Stage): - name = "interpreter" - eval_type = EvalType.INTERPRETER - - @classmethod - def data_converter(cls): - self = cls( - flags="", - debugger_flags="", - desc=( - "convert data files for the interpreter use. ", - "Meant for internal interp dev use.", - ), - output_type=SourceType.Path, - output_name="interpreter-data", - ) - self.eval_type = EvalType.DATA_CONVERTER - return self - - @classmethod - def debugger(cls, interp_flags, debug_flags, desc): - self = cls( - interp_flags, - debug_flags, - desc, - output_name=_DEBUGGER_TARGET, - output_type=SourceType.Terminal, - ) - self.eval_type = EvalType.DEBUGGER - self._no_spinner = True - return self - - def __init__( - self, - flags, - debugger_flags, - desc, - output_type=SourceType.Stream, - output_name="interpreter-out", - ): - super().__init__( - src_state="interpreter", - target_state=output_name, - input_type=SourceType.Stream, - output_type=output_type, - description=desc, - ) - - self.flags = flags - self.debugger_flags = debugger_flags - - def _is_debugger(self): - """ - Am I a debugger? - """ - return self.eval_type == EvalType.DEBUGGER - - def _is_data_converter(self): - """ - Am I the data_converter - """ - return self.eval_type == EvalType.DATA_CONVERTER - - def _define_steps(self, input_data, builder, config): - script = config["stages", self.name, "exec"] - data_path_exists: bool = config["stages", "verilog", "data"] or config.get( - ["stages", "mrxl", "data"] - ) - - cmd = [ - script, - self.flags, - unwrap_or(config["stages", self.name, "flags"], ""), - "-l", - config["global", cfg.ROOT], - "--data" if data_path_exists else "", - "{data_file}" if data_path_exists else "", - "{target}", - ] - - if self._is_debugger(): - cmd += [ - "debug", - self.debugger_flags, - unwrap_or(config["stages", "debugger", "flags"], ""), - ] - - cmd = " ".join(cmd) - - @builder.step() - def mktmp() -> SourceType.Directory: - """ - Make temporary directory to store Verilator build files. - """ - return TmpDir() - - @builder.step( - description="Dynamically retrieve the value of stages.verilog.data" - ) - def get_verilog_data() -> SourceType.Path: - data_path = config.get(["stages", "verilog", "data"]) - path = Path(data_path) if data_path else None - return Source(path, SourceType.Path) - - @builder.step() - def convert_json_to_interp_json( - tmpdir: SourceType.Directory, json_path: SourceType.Path - ): - """ - Creates a data file to initialze the interpreter memories - """ - round_float_to_fixed = config["stages", self.name, "round_float_to_fixed"] - convert_to_json( - tmpdir.name, - sjson.load(open(json_path.data), use_decimal=True), - round_float_to_fixed, - ) - - @builder.step() - def output_data( - tmpdir: SourceType.Directory, - ) -> SourceType.Path: - """ - Output converted data for the interpreter-data target - """ - path = Path(tmpdir.name) / _FILE_NAME - return path - - @builder.step(description=cmd) - def interpret( - target: SourceType.Path, tmpdir: SourceType.Directory - ) -> SourceType.Stream: - """ - Invoke the interpreter - """ - - command = cmd.format( - data_file=Path(tmpdir.name) / _FILE_NAME, target=str(target) - ) - - return shell(command) - - @builder.step(description=cmd) - def debug( - target: SourceType.Path, tmpdir: SourceType.Directory - ) -> SourceType.Terminal: - """ - Invoke the debugger - """ - command = cmd.format( - data_file=Path(tmpdir.name) / _FILE_NAME, target=str(target) - ) - transparent_shell(command) - - @builder.step() - def parse_output( - output: SourceType.Stream, - json_path: SourceType.Path, - tmpdir: SourceType.Directory, - ) -> SourceType.Stream: - """ - Parses a raw interpreter output - """ - - out_path = Path(tmpdir.name) / "output.json" - output = parse_from_json(output, json_path.data) - - with out_path.open("w") as f: - sjson.dump(output, f, indent=2, sort_keys=True, use_decimal=True) - - return out_path.open("rb") - - # schedule - tmpdir = mktmp() - data_path = get_verilog_data() - - if data_path_exists: - convert_json_to_interp_json(tmpdir, data_path) - - if self._is_data_converter(): - if data_path_exists: - return output_data(tmpdir) - else: - raise ValueError("verilog.data must be provided") - - if self._is_debugger(): - debug(input_data, tmpdir) - else: - result = interpret(input_data, tmpdir) - - if "--raw" in cmd: - return parse_output(result, data_path, tmpdir) - else: - return result - - -def convert_to_json(output_dir, data, round_float_to_fixed): - output_dir = Path(output_dir) - shape = {} - output_json = {} - for k, item in data.items(): - arr = np.array(item["data"], str) - format = item["format"] - - numeric_type = format["numeric_type"] - is_signed = format["is_signed"] - shape[k] = {"is_signed": is_signed} - - if numeric_type not in {"bitnum", "fixed_point"}: - raise InvalidNumericType('Fud only supports "fixed_point" and "bitnum".') - - is_fp = numeric_type == "fixed_point" - if is_fp: - width, int_width = parse_fp_widths(format) - shape[k]["int_width"] = int_width - else: - width = format["width"] - - shape[k]["width"] = width - - def convert(x): - if not is_fp: - return Bitnum(x, **shape[k]).base_64_encode() - - try: - return FixedPoint(x, **shape[k]).base_64_encode() - except InvalidNumericType as error: - if round_float_to_fixed: - # Only round if it is not already representable. - fractional_width = width - int_width - x = float_to_fixed(float(x), fractional_width) - x = str(x) - return FixedPoint(x, **shape[k]).base_64_encode() - else: - raise error - - output_json[k] = [convert(x) for x in arr.flatten()] - out_path = output_dir / _FILE_NAME - - with out_path.open("w") as f: - sjson.dump(output_json, f, indent=2, use_decimal=True) - - -def parse_from_json(output_data_str, original_data_file_path): - if original_data_file_path is not None: - with original_data_file_path.open("r") as f: - orig = sjson.load(f) - else: - orig = None - - output_data = sjson.load(output_data_str) - - output_data = output_data["memories"] - - def parse_entry(target, format_details): - numeric_type, is_signed, (width, int_width, frac_width) = ( - format_details - if format_details is not None - else ("bitnum", False, (None, None, None)) - ) - - if isinstance(target, list): - return [ - parse_entry( - x, - (numeric_type, is_signed, (width, int_width, frac_width)), - ) - for x in target - ] - elif isinstance(target, str): - num = base64.standard_b64decode(target) - int_rep = int.from_bytes(num, "little", signed=False) - - if is_signed and int_rep > 0 and (int_rep & (1 << (width - 1))): - int_rep = -(2 ** (width - 1)) + (int_rep ^ (1 << (width - 1))) - - if numeric_type == "bitnum": - return int_rep - elif numeric_type == "fixed_point": - bin_str = bin(int.from_bytes(num, "little", signed=False)) - bin_len = len(bin_str[2:]) - if bin_len < width: - bin_str = "0b" + ("0" * (width - bin_len)) + bin_str[2:] - - assert len(bin_str) == width + 2 - - fp = FixedPoint( - bin_str, - width, - int_width, - is_signed, - ) - return fp.str_value() - else: - return False, f"got {numeric_type}" - - processed_output_data = dict() - - for component, inner_dict in output_data.items(): - inner_dict_output = dict() - for key, target in inner_dict.items(): - if orig is not None: - if key not in orig: - continue - width = orig[key]["format"].get("width") - width = ( - width - if width is not None - else orig[key]["format"]["frac_width"] - + orig[key]["format"]["int_width"] - ) - int_width = orig[key]["format"].get("int_width") - frac_width = orig[key]["format"].get("frac_width") - - if int_width is None and frac_width is None: - pass - elif int_width is None: - int_width = width - frac_width - elif frac_width is None: - frac_width = width - int_width - - format_details = ( - orig[key]["format"]["numeric_type"], - orig[key]["format"]["is_signed"], - (width, int_width, frac_width), - ) - assert format_details[2][0] is not None - else: - format_details = None - - inner_dict_output[key] = parse_entry(target, format_details) - processed_output_data[component] = inner_dict_output - - return processed_output_data From d89f4bd495bfa59d77ff5b2ce469eda8827a3eea Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 11:24:46 -0400 Subject: [PATCH 66/76] random lint in the python fud --- fud/fud/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fud/fud/main.py b/fud/fud/main.py index 87424c163c..a8d5cd2d52 100644 --- a/fud/fud/main.py +++ b/fud/fud/main.py @@ -153,7 +153,7 @@ def register_external_stages(cfg, registry): """ # No externals to load. - if not ["externals"] in cfg: + if ["externals"] not in cfg: return for ext, location in cfg[["externals"]].items(): From 520b29d15aac6c0cc65ddd8ca1869419bcd925ba Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 11:35:44 -0400 Subject: [PATCH 67/76] Tweak some descriptions for the help command --- interp/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interp/src/main.rs b/interp/src/main.rs index d8b50f3958..4530a8a956 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -79,12 +79,12 @@ enum Command { #[derive(FromArgs)] #[argh(subcommand, name = "interpret")] -/// tests the flattened interpreter +/// [default] Run the given program directly and output the resulting memory dump struct CommandInterpret {} #[derive(FromArgs)] #[argh(subcommand, name = "debug")] -/// Interpret the given program with the interactive debugger +/// Open the program in the interactive debugger struct CommandDebug {} // #[inline] From c16c1128564d497ac07023f42dae8c6ea2bf3731 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 12:03:58 -0400 Subject: [PATCH 68/76] tweak the rhai files --- fud2/scripts/cider.rhai | 100 ++++++++++++---------------------------- 1 file changed, 30 insertions(+), 70 deletions(-) diff --git a/fud2/scripts/cider.rhai b/fud2/scripts/cider.rhai index 85ad6e23c5..0aa8a2da42 100644 --- a/fud2/scripts/cider.rhai +++ b/fud2/scripts/cider.rhai @@ -2,58 +2,39 @@ import "rtl_sim" as sim; import "testbench" as tb; import "calyx" as c; -let dbg = state("debug", []); +let dbg = state("cider-debug", []); let cider_state = state("cider", []); fn cider_setup(e) { - e.config_var_or( - "cider-exe", - "cider.exe", - "$calyx-base/target/debug/cider", - ); - e.config_var_or( - "cider-converter", - "cider-converter.exe", - "$calyx-base/target/debug/cider-data-converter", - ); - e.rule( - "cider", - "$cider-exe -l $calyx-base --raw --data data.json $in > $out", - ); - e.rule( - "cider-debug", - "$cider-exe -l $calyx-base --data data.json $in debug || true", - ); - e.arg("pool", "console"); + e.config_var_or( + "cider-exe", + "cider.exe", + "$calyx-base/target/debug/cider", + ); + e.config_var_or( + "cider-converter", + "cider-converter.exe", + "$calyx-base/target/debug/cider-data-converter", + ); + e.rule( + "run-cider-debug", + "$cider-exe -l $calyx-base --data data.dump $in debug || true", + ); + e.arg("pool", "console"); - // TODO Can we reduce the duplication around and `$python`? - e.rsrc("interp-dat.py"); - e.config_var_or("python", "python", "python3"); - e.rule("dat-to-interp", "$python interp-dat.py --to-interp $in"); - e.rule( - "interp-to-dat", - "$python interp-dat.py --from-interp $in $sim_data > $out", - ); - e.build_cmd( - ["data.json"], - "dat-to-interp", - ["$sim_data"], - ["interp-dat.py"], - ); + e.rule( + "run-cider", + "$cider-exe -l $calyx-base --data data.dump $in > $out", + ); - e.rule( - "run-cider", - "$cider-exe -l $calyx-base --data data.dump $in > $out", - ); - - e.rule("dump-to-interp", "$cider-converter --to cider $in > $out"); - e.rule("interp-to-dump", "$cider-converter --to json $in > $out"); - e.build_cmd( - ["data.dump"], - "dump-to-interp", - ["$sim_data"], - ["$cider-converter"], - ); + e.rule("dump-to-interp", "$cider-converter --to cider $in > $out"); + e.rule("interp-to-dump", "$cider-converter --to json $in > $out"); + e.build_cmd( + ["data.dump"], + "dump-to-interp", + ["$sim_data"], + ["$cider-converter"], + ); } op( @@ -71,27 +52,6 @@ op( }, ); -op( - "interp", - [ - sim::sim_setup, - tb::standalone_setup, - c::calyx_setup, - cider_setup, - ], - c::calyx_state, - sim::dat, - |e, input, output| { - let out_file = "interp_out.json"; - e.build_cmd([out_file], "cider", [input], ["data.json"]); - e.build_cmd( - [output], - "interp-to-dat", - [out_file], - ["$sim_data", "interp-dat.py"], - ); - }, -); op( "cider", @@ -123,9 +83,9 @@ op( c::calyx_setup, cider_setup, ], - c::calyx_state, + cider_state, dbg, |e, input, output| { - e.build_cmd([output], "cider-debug", [input], ["data.json"]); + e.build_cmd([output], "run-cider-debug", [input], ["data.dump"]); }, ); From 0a70ea624e9e48dd5fbf900308725c4caaf40d77 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 14:54:00 -0400 Subject: [PATCH 69/76] update the docs and add a dummy data file --- docs/running-calyx/interpreter.md | 85 ++++++++++++++++++++++-------- interp/tests/control/if.futil.data | 1 + 2 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 interp/tests/control/if.futil.data diff --git a/docs/running-calyx/interpreter.md b/docs/running-calyx/interpreter.md index 0440a79bad..26c40885f7 100644 --- a/docs/running-calyx/interpreter.md +++ b/docs/running-calyx/interpreter.md @@ -1,12 +1,13 @@ -# The Calyx Interpreter +# Cider: The Calyx Interpreter & Debugger -The experimental Calyx interpreter resides in the `interp/` directory of the +Cider resides in the `interp/` directory of the repository. -The interpreter supports all Calyx programs—from high-level programs that +Cider supports all Calyx programs—from high-level programs that make heavy use of control operators, to fully lowered Calyx programs. (RTL simulation, in contrast, only supports execution of fully lowered programs.) -There are two ways to use the interpreter: you can directly invoke it, or you can use [fud][]. +There are two ways to use the interpreter: you can directly invoke it, or you +can use [fud2][]. The latter is generally recommended. ## Basic Use @@ -14,40 +15,80 @@ To run an example program, try: cd interp && cargo run tests/control/if.futil +You should see something like: + + Z{"top_level":"main","memories":[{"name":"mem","width":32,"size":1,"dimensions":{"D1":1}}]}% + + +This output contains some header information and the raw binary data of the +memories in the program and as such is not human readable. A separate tool, +`cider-data-converter` is used to parse this dump into a human readable json and +vice versa. Once you've compiled it, either by running `cargo build` in +`tools/cider-data-converter` or by running `cargo build --all`, you can run: + + cargo run tests/control/if.futil | ../target/debug/cider-data-converter --to json + +which should produce +```json +{ + "mem": [ + 4 + ] +} +``` + + + You can see the available command-line options by typing `cargo run -- --help`. ## Interpreting via fud -The interpreter is available as a stage in [fud][], which lets you provide standard JSON data files as input and easily execute passes on the input Calyx program before interpretation. - -You'll want to build the interpreter first: +The interpreter is available as a stage in [fud2][], which lets you provide +standard JSON data files as input and easily execute passes on the input Calyx +program before interpretation. - cd interp && cargo build && cd .. +You'll want to build the interpreter and compiler first: -Now register the interpreter as a fud stage: + cargo build && \ + cd interp && cargo build && \ + cd ../tools/cider-data-converter && cargo build && cd ../../ - fud config stages.interpreter.exec /target/debug/cider +or just run -Here's how to run a Calyx program: + cargo build --all - fud e --to interpreter-out interp/tests/control/if.futil +Once you've installed and [configured](./fud2/index.md#configuration) `fud2` you +can run the same program by invoking -To provide input data, set the `verilog.data` variable, like so: + fud2 tests/control/if.futil --to dat --through cider -s sim.data=tests/control/if.futil.data - fud e --to interpreter-out \ - -s verilog.data tests/correctness/while.futil.data \ - tests/correctness/while.futil +Data is provided in the standard Calyx json and `fud2` will automatically handle +marshalling it to and from Cider's binary format, outputting the expected +result. Note that `fud2` _requires_ a provided data file, so in cases where you +do not initialize memory you will still need to provide the initial state of the +memories. Such files can be generated via the +[data gen tool](../tools/data-gen.md) or you can invoke Cider directly to bypass +this constraint. By default, fud will not transform the Calyx code before feeding it to the interpreter. To run passes before the interpreter, use the `calyx.flags` variable in conjunction with the `-p` flag. For example, to fully lower the Calyx program before interpreting it: - fud e --to interpreter-out \ - -s calyx.flags '-p all' \ - interp/tests/control/if.futil + fud2 --to dat --through cider \ + -s calyx.flags='-p all' \ + -s sim.data=tests/control/if.futil.data \ + tests/control/if.futil + +## Cider outputs +By default, Cider's output memory dump will only contain the `@external` +memories on the entrypoint component. If you want to see other memories in the +main component, the flag `--all-memories` will force Cider to serialize all +memories. For prototyping, it can occasionally be useful to serialize registers +as well, this can be done by passing the flag `--dump-registers` which will +cause Cider to serialize all registers in the main component as single entry +memories. + -In particular, the interpreter does not currently support [`ref` cells][ref-cells]. -To run the interpreter on a program that uses these, you must first compile them away by running the `compile-invoke` pass. -[fud]: fud/index.md +[fud2]: ./fud2/index.md [ref-cells]: ../lang/memories-by-reference.md#the-easy-way-ref-cells diff --git a/interp/tests/control/if.futil.data b/interp/tests/control/if.futil.data new file mode 100644 index 0000000000..0ed5616eb0 --- /dev/null +++ b/interp/tests/control/if.futil.data @@ -0,0 +1 @@ +{"mem":{"data":[0],"format":{"is_signed":false,"numeric_type":"bitnum","width":32}}} From 48806db2e3f74c0b44017a6aee8d1b720cec82fe Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 14:56:51 -0400 Subject: [PATCH 70/76] enable doctests and remove unused macro --- interp/Cargo.toml | 5 - interp/src/macros.rs | 340 ------------------------------------------- 2 files changed, 345 deletions(-) diff --git a/interp/Cargo.toml b/interp/Cargo.toml index a9ed9cd2da..e7d37a9e69 100644 --- a/interp/Cargo.toml +++ b/interp/Cargo.toml @@ -5,8 +5,6 @@ authors = ["The Calyx authors"] edition = "2021" rust-version = "1.73" -[lib] -doctest = false # Don't run doc tests [[bin]] name = "cider" @@ -14,9 +12,6 @@ path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[features] -change-based-sim = [] -default = ["change-based-sim"] [dependencies] smallvec = { workspace = true, features = ["union", "const_generics"] } diff --git a/interp/src/macros.rs b/interp/src/macros.rs index b1b879a9ae..0b2f45489f 100644 --- a/interp/src/macros.rs +++ b/interp/src/macros.rs @@ -1,343 +1,3 @@ -/// Define a primitive -/// -/// ``` -/// # use interp::comb_primitive; -/// # use interp::values::Value; -/// # use interp::primitives::Primitive; -/// comb_primitive!(StdAdd[width](left: width, right: width) -> (out: width) { -/// let left_64 = left.as_u64(); -/// let right_64 = right.as_u64(); -/// let init_val = left_64 + right_64; -/// let bitwidth = left.width(); -/// Ok(Value::from(init_val, bitwidth)) -/// }); -/// -/// ``` -/// The macro implements the [Primitive](crate::primitives::Primitive) trait -/// for the struct as well as `StdAdd::new(bindings: ir::Params)` and -/// `StdAdd::from_constants(ports)` -/// -/// TODO(rachit): $out_width is never used. (TODO: Griffin) fix the copy-paste -#[macro_export] -macro_rules! comb_primitive { - ($name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!(LOG; NAME; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - - (FLAG : $flag:ident; LOG: $log:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!($flag; $log; NAME; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - (LOG: $log:ident; FLAG : $flag:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!($flag; $log; NAME; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - (FLAG : $flag:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!($flag; LOG; NAME; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - (FLAG : $flag:ident; NAME : $full_name:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!($flag; LOG; $full_name; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - - (LOG : $log:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!($log; NAME; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - (NAME : $full_name:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - comb_primitive!(LOG; $full_name; $name[$( $param ),+]($( $port : $width ),+) -> ($($out : $out_width),+ ) $execute); - }; - - ($log:ident; $full_name:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - #[derive(Clone, Debug)] - #[allow(non_snake_case)] - pub struct $name { - $($param: u64),+, - name: calyx_ir::Id, - logger: $crate::logging::Logger, - } - - impl Default for $name { - fn default() -> Self { - Self { - name: "".into(), - logger: $crate::logging::new_sublogger(""), - $($param: 0),+, - } - } - } - - - impl $name { - pub fn new(params: &calyx_ir::Binding, name: calyx_ir::Id) -> Self { - let mut base = Self::default(); - for (param, value) in params { - match param.as_ref() { - $( $crate::in_fix!($param) => base.$param = *value ),+, - p => unreachable!("Unknown parameter: {}", p), - } - } - base.logger = $crate::logging::new_sublogger(&name); - base.name = name; - base - } - - #[allow(non_snake_case)] - pub fn from_constants($( $param: u64 ),+, name: calyx_ir::Id) -> Self { - $name { - $($param),+, - logger: $crate::logging::new_sublogger(&name), - name - } - } - } - - impl $crate::primitives::Named for $name { - fn get_full_name(&self) -> &calyx_ir::Id { - &self.name - } - } - - - impl $crate::primitives::Primitive for $name { - - //null-op; comb don't use do_tick() - fn do_tick(&mut self) -> $crate::errors::InterpreterResult>{ - Ok(vec![]) - } - - fn is_comb(&self) -> bool { true } - - fn validate( - &self, - inputs: &[(calyx_ir::Id, &$crate::values::Value)] - ) { - for (id, v) in inputs { - match id.as_ref() { - $( $crate::in_fix!($port) => assert_eq!(v.len() as u64, self.$width) ),+, - p => unreachable!("Unknown port: {}", p), - } - } - } - - #[allow(non_snake_case,unused)] - fn execute( - &mut self, - inputs: &[(calyx_ir::Id, &$crate::values::Value)], - ) -> $crate::errors::InterpreterResult> { - - #[derive(Default)] - struct Ports<'a> { - $( $port: Option<&'a $crate::values::Value> ),+ - } - - let mut base = Ports::default(); - - for (id, v) in inputs { - match id.as_ref() { - $( $crate::in_fix!($port) => base.$port = Some(v) ),+, - p => unreachable!("Unknown port: {}", p), - } - } - - let exec_func = |$($param: u64),+, $( $port: &Value ),+, $log: &$crate::logging::Logger, $full_name:&calyx_ir::Id| -> $crate::errors::InterpreterResult { - $execute - }; - - #[allow(unused_parens)] - let ($( $out ),+) = exec_func( - $(self.$param),+, - $( base - .$port - .expect(&format!("No value for port: {}", $crate::in_fix!($port)).to_string()) ),+, - &self.logger, - $crate::primitives::Named::get_full_name(self), - )?; - - return Ok(vec![ - $( ($crate::in_fix!($out).into(), $out) ),+ - ]) - - } - - // Combinational components cannot be reset - fn reset( - &mut self, - inputs: &[(calyx_ir::Id, &$crate::values::Value)], - ) -> $crate::errors::InterpreterResult> { - self.execute(inputs) - } - - } - }; - - ($flag: ident; $log:ident; $full_name:ident; $name:ident[ - $( $param:ident ),+ - ]( $( $port:ident : $width:ident ),+ ) -> - ( $( $out:ident : $out_width:ident ),+ ) $execute:block - ) => { - #[derive(Clone, Debug)] - #[allow(non_snake_case)] - pub struct $name { - $($param: u64),+, - name: calyx_ir::Id, - logger: $crate::logging::Logger, - $flag: bool - } - - impl Default for $name { - fn default() -> Self { - Self { - name: "".into(), - logger: $crate::logging::new_sublogger(""), - $flag: false, - $($param: 0),+, - } - } - } - - - impl $name { - pub fn new(params: &calyx_ir::Binding, name: calyx_ir::Id, $flag: bool) -> Self { - let mut base = Self::default(); - for (param, value) in params { - match param.as_ref() { - $( $crate::in_fix!($param) => base.$param = *value ),+, - p => unreachable!("Unknown parameter: {}", p), - } - } - base.logger = $crate::logging::new_sublogger(&name); - base.name = name; - base.$flag = $flag; - base - } - - #[allow(non_snake_case)] - pub fn from_constants($( $param: u64 ),+, name: calyx_ir::Id, $flag: bool) -> Self { - $name { - $($param),+, - logger: $crate::logging::new_sublogger(&name), - name, - $flag - } - } - } - - impl $crate::primitives::Named for $name { - fn get_full_name(&self) -> &calyx_ir::Id { - &self.name - } - } - - - impl $crate::primitives::Primitive for $name { - - //null-op; comb don't use do_tick() - fn do_tick(&mut self) -> $crate::errors::InterpreterResult>{ - Ok(vec![]) - } - - fn is_comb(&self) -> bool { true } - - fn validate( - &self, - inputs: &[(calyx_ir::Id, &$crate::values::Value)] - ) { - for (id, v) in inputs { - match id.as_ref() { - $( $crate::in_fix!($port) => assert_eq!(v.len() as u64, self.$width) ),+, - p => unreachable!("Unknown port: {}", p), - } - } - } - - #[allow(non_snake_case,unused)] - fn execute( - &mut self, - inputs: &[(calyx_ir::Id, &$crate::values::Value)], - ) -> $crate::errors::InterpreterResult> { - - #[derive(Default)] - struct Ports<'a> { - $( $port: Option<&'a $crate::values::Value> ),+ - } - - let mut base = Ports::default(); - - for (id, v) in inputs { - match id.as_ref() { - $( $crate::in_fix!($port) => base.$port = Some(v) ),+, - p => unreachable!("Unknown port: {}", p), - } - } - - let exec_func = |$($param: u64),+, $( $port: &Value ),+, $log: &$crate::logging::Logger, $full_name:&calyx_ir::Id, $flag: bool| -> $crate::errors::InterpreterResult { - $execute - }; - - #[allow(unused_parens)] - let ($( $out ),+) = exec_func( - $(self.$param),+, - $( base - .$port - .expect(&format!("No value for port: {}", $crate::in_fix!($port)).to_string()) ),+, - &self.logger, - $crate::primitives::Named::get_full_name(self), - self.$flag - )?; - - return Ok(vec![ - $( ($crate::in_fix!($out).into(), $out) ),+ - ]) - - } - - // Combinational components cannot be reset - fn reset( - &mut self, - inputs: &[(calyx_ir::Id, &$crate::values::Value)], - ) -> $crate::errors::InterpreterResult> { - self.execute(inputs) - } - - } - }; -} - #[macro_export] /// Internal macro used to homogenize representation for raw identifiers in /// port names. From 3d620d2236a09f11e7d974b480fc30fdd93badaf Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 14:57:07 -0400 Subject: [PATCH 71/76] remove note about features --- interp/README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/interp/README.md b/interp/README.md index bad4913b3b..9be51f412a 100644 --- a/interp/README.md +++ b/interp/README.md @@ -1,20 +1,7 @@ # Cider: Calyx Interpreter and Debugger - ## Usage For instructions and examples on using the interpreter functionality, see [this page](https://docs.calyxir.org/interpreter.html) on the docs. For examples of using the interactive debugging mode see [the docs](https://docs.calyxir.org/debug/cider.html). - -## Compilation Options -By default cargo will compile cider with the `change-based-sim` feature enabled -which is a slightly more optimized version of the core simulation algorithm. You -can compile Cider with the naive simulation algorithm by disabling the default -feature: -``` -cargo build --no-default-features -``` - -The release build of Cider is notably faster however since it uses rust's LTO -the compilation time takes a few minutes. From ec39d7ee1f93fe32f24ca6b872a41931f231b7d0 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 15:13:11 -0400 Subject: [PATCH 72/76] Add the undef primitive --- interp/src/flatten/flat_ir/cell_prototype.rs | 9 +++++++++ interp/src/flatten/primitives/builder.rs | 1 + interp/src/flatten/primitives/combinational.rs | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/interp/src/flatten/flat_ir/cell_prototype.rs b/interp/src/flatten/flat_ir/cell_prototype.rs index dce481e579..1097fe8c77 100644 --- a/interp/src/flatten/flat_ir/cell_prototype.rs +++ b/interp/src/flatten/flat_ir/cell_prototype.rs @@ -59,6 +59,7 @@ pub enum PrimType1 { UnsynSMult, UnsynSDiv, UnsynSMod, + Undef, } /// An enum for encoding FP primitives operator types @@ -654,6 +655,14 @@ impl CellPrototype { } } + "undef" => { + get_params![params; width: "WIDTH"]; + Self::SingleWidth { + op: PrimType1::Undef, + width: width.try_into().unwrap(), + } + } + _ => CellPrototype::Unknown( name.to_string(), param_binding.clone(), diff --git a/interp/src/flatten/primitives/builder.rs b/interp/src/flatten/primitives/builder.rs index 2b93755c32..5c1b1c5a4b 100644 --- a/interp/src/flatten/primitives/builder.rs +++ b/interp/src/flatten/primitives/builder.rs @@ -96,6 +96,7 @@ pub fn build_primitive( PrimType1::UnsynSMod => { Box::new(StdUnsynSmod::new(base_port, *width)) } + PrimType1::Undef => Box::new(StdUndef::new(base_port, *width)), }, CellPrototype::FixedPoint { op: _, diff --git a/interp/src/flatten/primitives/combinational.rs b/interp/src/flatten/primitives/combinational.rs index 5158fecc4f..5e824032e8 100644 --- a/interp/src/flatten/primitives/combinational.rs +++ b/interp/src/flatten/primitives/combinational.rs @@ -42,7 +42,7 @@ impl Primitive for StdConst { } fn has_comb(&self) -> bool { - false + true } fn has_stateful(&self) -> bool { @@ -548,3 +548,18 @@ comb_primitive!(StdUnsynSmod[WIDTH](left [0], right [1]) -> (out [2]) { &left.as_signed(), &right.as_signed()), WIDTH))) }); + +pub struct StdUndef(GlobalPortIdx); + +impl StdUndef { + pub fn new(base_port: GlobalPortIdx, _width: u32) -> Self { + Self(base_port) + } +} + +impl Primitive for StdUndef { + fn exec_comb(&self, port_map: &mut PortMap) -> UpdateResult { + port_map.write_undef(self.0)?; + Ok(UpdateStatus::Unchanged) + } +} From c098ef33c4226a5344222d90e9075fa989a038db Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 15:18:14 -0400 Subject: [PATCH 73/76] fix snapshot tests again --- fud2/tests/snapshots/tests__list_ops.snap | 9 ++------- fud2/tests/snapshots/tests__list_states.snap | 2 +- fud2/tests/snapshots/tests__test@plan_cider.snap | 13 ++----------- fud2/tests/snapshots/tests__test@plan_debug.snap | 15 +++------------ 4 files changed, 8 insertions(+), 31 deletions(-) diff --git a/fud2/tests/snapshots/tests__list_ops.snap b/fud2/tests/snapshots/tests__list_ops.snap index d780efc2e9..ed1652224d 100644 --- a/fud2/tests/snapshots/tests__list_ops.snap +++ b/fud2/tests/snapshots/tests__list_ops.snap @@ -49,8 +49,8 @@ source: fud2/tests/tests.rs ), ( "debug", - "calyx", - "debug", + "cider", + "cider-debug", ), ( "firrtl", @@ -87,11 +87,6 @@ source: fud2/tests/tests.rs "verilog-refmem-noverify", "sim", ), - ( - "interp", - "calyx", - "dat", - ), ( "mrxl-to-calyx", "mrxl", diff --git a/fud2/tests/snapshots/tests__list_states.snap b/fud2/tests/snapshots/tests__list_states.snap index d7f6f169a6..8872d6c337 100644 --- a/fud2/tests/snapshots/tests__list_states.snap +++ b/fud2/tests/snapshots/tests__list_states.snap @@ -4,10 +4,10 @@ source: fud2/tests/tests.rs [ "calyx", "cider", + "cider-debug", "cocotb-axi", "dahlia", "dat", - "debug", "firrtl", "firrtl-with-primitives", "mrxl", diff --git a/fud2/tests/snapshots/tests__test@plan_cider.snap b/fud2/tests/snapshots/tests__test@plan_cider.snap index 6a85a69fc0..1fab96e136 100644 --- a/fud2/tests/snapshots/tests__test@plan_cider.snap +++ b/fud2/tests/snapshots/tests__test@plan_cider.snap @@ -32,18 +32,9 @@ rule calyx-with-flags cider-exe = $calyx-base/target/debug/cider cider-converter = $calyx-base/target/debug/cider-data-converter -rule cider - command = $cider-exe -l $calyx-base --raw --data data.json $in > $out -rule cider-debug - command = $cider-exe -l $calyx-base --data data.json $in debug || true +rule run-cider-debug + command = $cider-exe -l $calyx-base --data data.dump $in debug || true pool = console -build interp-dat.py: get-rsrc -python = python3 -rule dat-to-interp - command = $python interp-dat.py --to-interp $in -rule interp-to-dat - command = $python interp-dat.py --from-interp $in $sim_data > $out -build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp diff --git a/fud2/tests/snapshots/tests__test@plan_debug.snap b/fud2/tests/snapshots/tests__test@plan_debug.snap index 2e162e7f1c..1949c09626 100644 --- a/fud2/tests/snapshots/tests__test@plan_debug.snap +++ b/fud2/tests/snapshots/tests__test@plan_debug.snap @@ -34,18 +34,9 @@ rule calyx-with-flags cider-exe = $calyx-base/target/debug/cider cider-converter = $calyx-base/target/debug/cider-data-converter -rule cider - command = $cider-exe -l $calyx-base --raw --data data.json $in > $out -rule cider-debug - command = $cider-exe -l $calyx-base --data data.json $in debug || true +rule run-cider-debug + command = $cider-exe -l $calyx-base --data data.dump $in debug || true pool = console -build interp-dat.py: get-rsrc -python = python3 -rule dat-to-interp - command = $python interp-dat.py --to-interp $in -rule interp-to-dat - command = $python interp-dat.py --from-interp $in $sim_data > $out -build data.json: dat-to-interp $sim_data | interp-dat.py rule run-cider command = $cider-exe -l $calyx-base --data data.dump $in > $out rule dump-to-interp @@ -54,6 +45,6 @@ rule interp-to-dump command = $cider-converter --to json $in > $out build data.dump: dump-to-interp $sim_data | $cider-converter -build /output.ext: cider-debug /input.ext | data.json +build /output.ext: run-cider-debug /input.ext | data.dump default /output.ext From ec9758b724e57a971d471f3c910ceb8924299c12 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 15:22:06 -0400 Subject: [PATCH 74/76] exclude the polybench tests for the time being, even though they work --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 27f1d57a28..f971fe8283 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -123,7 +123,7 @@ jobs: working-directory: /home/calyx/interp/tests run: | # Run the remaining tests - runt -x '(numeric types correctness and parsing)|(tcam testing)|(../../tests/correctness/pipelined-mac.futil)|(../../tests/correctness/std-bit-slice.futil)' -d -o fail + runt -x '(numeric types correctness and parsing)|(tcam testing)|(../../tests/correctness/pipelined-mac.futil)|(../../tests/correctness/std-bit-slice.futil)|(polybench)' -d -o fail - name: Source code tests uses: actions-rs/cargo@v1 From 42d97665a655458229b8a40b7e80133f9f4cdcfd Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 15:27:25 -0400 Subject: [PATCH 75/76] unbreak the fud2 tests again --- .../tests__test@calyx_cider-debug.snap | 51 +++++++++++++++++++ .../tests__test@calyx_cider_dat.snap | 50 ++++++++++++++++++ fud2/tests/tests.rs | 4 +- 3 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 fud2/tests/snapshots/tests__test@calyx_cider-debug.snap create mode 100644 fud2/tests/snapshots/tests__test@calyx_cider_dat.snap diff --git a/fud2/tests/snapshots/tests__test@calyx_cider-debug.snap b/fud2/tests/snapshots/tests__test@calyx_cider-debug.snap new file mode 100644 index 0000000000..9d362b9380 --- /dev/null +++ b/fud2/tests/snapshots/tests__test@calyx_cider-debug.snap @@ -0,0 +1,51 @@ +--- +source: fud2/tests/tests.rs +description: "emit request: calyx -> cider-debug" +--- +build-tool = fud2 +rule get-rsrc + command = $build-tool get-rsrc $out + +python = python3 +build json-dat.py: get-rsrc +rule hex-data + command = $python json-dat.py --from-json $in $out +rule json-data + command = $python json-dat.py --to-json $out $in +sim_data = /test/data.json +datadir = sim_data +build $datadir: hex-data $sim_data | json-dat.py +rule sim-run + command = ./$bin +DATA=$datadir +CYCLE_LIMIT=$cycle-limit $args > $out +cycle-limit = 500000000 + +calyx-base = /test/calyx +calyx-exe = $calyx-base/target/debug/calyx +args = +rule calyx + command = $calyx-exe -l $calyx-base -b $backend $args $in > $out +rule calyx-pass + command = $calyx-exe -l $calyx-base -p $pass $args $in > $out +flags = -p none +rule calyx-with-flags + command = $calyx-exe -l $calyx-base $flags $args $in > $out + +build tb.sv: get-rsrc + +cider-exe = $calyx-base/target/debug/cider +cider-converter = $calyx-base/target/debug/cider-data-converter +rule run-cider-debug + command = $cider-exe -l $calyx-base --data data.dump $in debug || true + pool = console +rule run-cider + command = $cider-exe -l $calyx-base --data data.dump $in > $out +rule dump-to-interp + command = $cider-converter --to cider $in > $out +rule interp-to-dump + command = $cider-converter --to json $in > $out +build data.dump: dump-to-interp $sim_data | $cider-converter + +build cider-input.futil: calyx-with-flags _from_stdin_calyx.futil +build _to_stdout_cider-debug: run-cider-debug pseudo_cider | data.dump + +default _to_stdout_cider-debug diff --git a/fud2/tests/snapshots/tests__test@calyx_cider_dat.snap b/fud2/tests/snapshots/tests__test@calyx_cider_dat.snap new file mode 100644 index 0000000000..8892d93e6c --- /dev/null +++ b/fud2/tests/snapshots/tests__test@calyx_cider_dat.snap @@ -0,0 +1,50 @@ +--- +source: fud2/tests/tests.rs +description: "emit request: calyx -> dat through cider" +--- +build-tool = fud2 +rule get-rsrc + command = $build-tool get-rsrc $out + +python = python3 +build json-dat.py: get-rsrc +rule hex-data + command = $python json-dat.py --from-json $in $out +rule json-data + command = $python json-dat.py --to-json $out $in +sim_data = /test/data.json +datadir = sim_data +build $datadir: hex-data $sim_data | json-dat.py +rule sim-run + command = ./$bin +DATA=$datadir +CYCLE_LIMIT=$cycle-limit $args > $out +cycle-limit = 500000000 + +calyx-base = /test/calyx +calyx-exe = $calyx-base/target/debug/calyx +args = +rule calyx + command = $calyx-exe -l $calyx-base -b $backend $args $in > $out +rule calyx-pass + command = $calyx-exe -l $calyx-base -p $pass $args $in > $out +flags = -p none +rule calyx-with-flags + command = $calyx-exe -l $calyx-base $flags $args $in > $out + +cider-exe = $calyx-base/target/debug/cider +cider-converter = $calyx-base/target/debug/cider-data-converter +rule run-cider-debug + command = $cider-exe -l $calyx-base --data data.dump $in debug || true + pool = console +rule run-cider + command = $cider-exe -l $calyx-base --data data.dump $in > $out +rule dump-to-interp + command = $cider-converter --to cider $in > $out +rule interp-to-dump + command = $cider-converter --to json $in > $out +build data.dump: dump-to-interp $sim_data | $cider-converter + +build cider-input.futil: calyx-with-flags _from_stdin_calyx.futil +build interp_out.dump: run-cider cider-input.futil | data.dump +build _to_stdout_dat.json: interp-to-dump interp_out.dump | $sim_data $cider-converter + +default _to_stdout_dat.json diff --git a/fud2/tests/tests.rs b/fud2/tests/tests.rs index 126f9345a6..3c641b66c3 100644 --- a/fud2/tests/tests.rs +++ b/fud2/tests/tests.rs @@ -221,8 +221,8 @@ fn sim_tests() { #[test] fn cider_tests() { let driver = test_driver(); - request(&driver, "calyx", "dat", &["interp"]).test(&driver); - request(&driver, "calyx", "debug", &[]).test(&driver); + request(&driver, "calyx", "dat", &["cider"]).test(&driver); + request(&driver, "calyx", "cider-debug", &[]).test(&driver); } #[test] From cff1cfc5bf8be1c3ca1a1e5d302fbf3c5002de78 Mon Sep 17 00:00:00 2001 From: Griffin Berlstein Date: Mon, 15 Jul 2024 15:35:24 -0400 Subject: [PATCH 76/76] cleanup --- interp/src/main.rs | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/interp/src/main.rs b/interp/src/main.rs index 4530a8a956..f70f5524e1 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -87,31 +87,6 @@ struct CommandInterpret {} /// Open the program in the interactive debugger struct CommandDebug {} -// #[inline] -// fn print_res( -// res: InterpreterResult, -// raw: bool, -// ) -> InterpreterResult<()> { -// match res { -// Ok(env) => { -// if raw { -// env.print_env_raw() -// } else { -// env.print_env() -// }; -// Ok(()) -// } -// Err(e) => match *e { -// InterpreterError::Exit -// | InterpreterError::ReadlineError(ReadlineError::Eof) => { -// println!("Exiting."); -// Ok(()) -// } -// _ => Err(e), -// }, -// } -// } - /// Interpret a group from a Calyx program fn main() -> InterpreterResult<()> { let opts: Opts = argh::from_env();