QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#222870#7618. Pattern Searchucup-team296#AC ✓71ms6064kbRust28.2kb2023-10-21 19:22:122023-10-21 19:22:13

Judging History

你现在查看的是最新测评结果

  • [2023-10-21 19:22:13]
  • 评测
  • 测评结果:AC
  • 用时:71ms
  • 内存:6064kb
  • [2023-10-21 19:22:12]
  • 提交

answer

// 
pub mod solution {

use crate::collections::min_max::MinimMaxim;
use crate::io::input::Input;
use crate::io::output::Output;
use crate::numbers::num_utils::UpperDiv;
use crate::string::str::StrReader;

type PreCalc = ();

fn solve(input: &mut Input, out: &mut Output, _test_case: usize, _data: &PreCalc) {
    let s = input.read_str();
    let t = input.read_str();

    let mut qt = vec![0; 26];
    for c in t.iter() {
        qt[c as usize - 'a' as usize] += 1;
    }
    let mut qs = vec![0; 26];
    for c in s.iter() {
        qs[c as usize - 'a' as usize] += 1;
    }
    for i in 0..26 {
        if qt[i] > qs[i] {
            out.print_line(0);
            return;
        }
    }
    if t.len() == 1 {
        for i in 0..26 {
            if qt[i] > 0 {
                out.print_line(qs[i]);
                return;
            }
        }
    }
    for i in (2..=t.len()).rev() {
        let mut ok = true;
        for j in 0..26 {
            if qt[j] == 0 {
                continue;
            }
            let rem = (i - qt[j] % i) % i;
            if rem > qt[j].upper_div(i) {
                ok = false;
                break;
            }
        }
        if ok {
            let mut ans = None;
            for j in 0..26 {
                if qt[j] == 0 {
                    continue;
                }
                let cur = qt[j].upper_div(i);
                ans.minim((qs[j] - qt[j]) / cur + 1);
            }
            out.print_line(ans);
            return;
        }
    }
    unreachable!();
}

pub(crate) fn run(mut input: Input, mut output: Output) -> bool {
    let pre_calc = ();

    #[allow(dead_code)]
    enum TestType {
        Single,
        MultiNumber,
        MultiEof,
    }
    let test_type = TestType::MultiNumber;
    match test_type {
        TestType::Single => solve(&mut input, &mut output, 1, &pre_calc),
        TestType::MultiNumber => {
            let t = input.read();
            for i in 1..=t {
                solve(&mut input, &mut output, i, &pre_calc);
            }
        }
        TestType::MultiEof => {
            let mut i = 1;
            while input.peek().is_some() {
                solve(&mut input, &mut output, i, &pre_calc);
                i += 1;
            }
        }
    }
    output.flush();
    input.skip_whitespace();
    input.peek().is_none()
}

}
pub mod collections {
pub mod iter_ext {
pub mod collect {
pub trait IterCollect<T>: Iterator<Item = T> + Sized {
    fn collect_vec(self) -> Vec<T> {
        self.collect()
    }
}

impl<T, I: Iterator<Item = T> + Sized> IterCollect<T> for I {}
}
}
pub mod min_max {
pub trait MinimMaxim<Rhs = Self>: PartialOrd + Sized {
    fn minim(&mut self, other: Rhs) -> bool;

    fn maxim(&mut self, other: Rhs) -> bool;
}

impl<T: PartialOrd> MinimMaxim for T {
    fn minim(&mut self, other: Self) -> bool {
        if other < *self {
            *self = other;
            true
        } else {
            false
        }
    }

    fn maxim(&mut self, other: Self) -> bool {
        if other > *self {
            *self = other;
            true
        } else {
            false
        }
    }
}

impl<T: PartialOrd> MinimMaxim<T> for Option<T> {
    fn minim(&mut self, other: T) -> bool {
        match self {
            None => {
                *self = Some(other);
                true
            }
            Some(v) => v.minim(other),
        }
    }

    fn maxim(&mut self, other: T) -> bool {
        match self {
            None => {
                *self = Some(other);
                true
            }
            Some(v) => v.maxim(other),
        }
    }
}
}
pub mod vec_ext {
pub mod default {
pub fn default_vec<T: Default>(len: usize) -> Vec<T> {
    let mut v = Vec::with_capacity(len);
    for _ in 0..len {
        v.push(T::default());
    }
    v
}
}
}
}
pub mod io {
pub mod input {
use crate::collections::vec_ext::default::default_vec;
use std::io::Read;

pub struct Input<'s> {
    input: &'s mut dyn Read,
    buf: Vec<u8>,
    at: usize,
    buf_read: usize,
}

macro_rules! read_impl {
    ($t: ty, $read_name: ident, $read_vec_name: ident) => {
        pub fn $read_name(&mut self) -> $t {
            self.read()
        }

        pub fn $read_vec_name(&mut self, len: usize) -> Vec<$t> {
            self.read_vec(len)
        }
    };

    ($t: ty, $read_name: ident, $read_vec_name: ident, $read_pair_vec_name: ident) => {
        read_impl!($t, $read_name, $read_vec_name);

        pub fn $read_pair_vec_name(&mut self, len: usize) -> Vec<($t, $t)> {
            self.read_vec(len)
        }
    };
}

impl<'s> Input<'s> {
    const DEFAULT_BUF_SIZE: usize = 4096;

    pub fn new(input: &'s mut dyn Read) -> Self {
        Self {
            input,
            buf: default_vec(Self::DEFAULT_BUF_SIZE),
            at: 0,
            buf_read: 0,
        }
    }

    pub fn new_with_size(input: &'s mut dyn Read, buf_size: usize) -> Self {
        Self {
            input,
            buf: default_vec(buf_size),
            at: 0,
            buf_read: 0,
        }
    }

    pub fn get(&mut self) -> Option<u8> {
        if self.refill_buffer() {
            let res = self.buf[self.at];
            self.at += 1;
            if res == b'\r' {
                if self.refill_buffer() && self.buf[self.at] == b'\n' {
                    self.at += 1;
                }
                return Some(b'\n');
            }
            Some(res)
        } else {
            None
        }
    }

    pub fn peek(&mut self) -> Option<u8> {
        if self.refill_buffer() {
            let res = self.buf[self.at];
            Some(if res == b'\r' { b'\n' } else { res })
        } else {
            None
        }
    }

    pub fn skip_whitespace(&mut self) {
        while let Some(b) = self.peek() {
            if !char::from(b).is_whitespace() {
                return;
            }
            self.get();
        }
    }

    pub fn next_token(&mut self) -> Option<Vec<u8>> {
        self.skip_whitespace();
        let mut res = Vec::new();
        while let Some(c) = self.get() {
            if char::from(c).is_whitespace() {
                break;
            }
            res.push(c);
        }
        if res.is_empty() {
            None
        } else {
            Some(res)
        }
    }

    //noinspection RsSelfConvention
    pub fn is_exhausted(&mut self) -> bool {
        self.peek().is_none()
    }

    pub fn read<T: Readable>(&mut self) -> T {
        T::read(self)
    }

    pub fn read_vec<T: Readable>(&mut self, size: usize) -> Vec<T> {
        let mut res = Vec::with_capacity(size);
        for _ in 0..size {
            res.push(self.read());
        }
        res
    }

    pub fn read_char(&mut self) -> char {
        self.skip_whitespace();
        self.get().unwrap().into()
    }

    read_impl!(u32, read_unsigned, read_unsigned_vec);
    read_impl!(u64, read_u64, read_u64_vec);
    read_impl!(usize, read_size, read_size_vec, read_size_pair_vec);
    read_impl!(i32, read_int, read_int_vec, read_int_pair_vec);
    read_impl!(i64, read_long, read_long_vec, read_long_pair_vec);
    read_impl!(i128, read_i128, read_i128_vec);

    fn refill_buffer(&mut self) -> bool {
        if self.at == self.buf_read {
            self.at = 0;
            self.buf_read = self.input.read(&mut self.buf).unwrap();
            self.buf_read != 0
        } else {
            true
        }
    }
}

pub trait Readable {
    fn read(input: &mut Input) -> Self;
}

impl Readable for char {
    fn read(input: &mut Input) -> Self {
        input.read_char()
    }
}

impl<T: Readable> Readable for Vec<T> {
    fn read(input: &mut Input) -> Self {
        let size = input.read();
        input.read_vec(size)
    }
}

macro_rules! read_integer {
    ($($t:ident)+) => {$(
        impl Readable for $t {
            fn read(input: &mut Input) -> Self {
                input.skip_whitespace();
                let mut c = input.get().unwrap();
                let sgn = match c {
                    b'-' => {
                        c = input.get().unwrap();
                        true
                    }
                    b'+' => {
                        c = input.get().unwrap();
                        false
                    }
                    _ => false,
                };
                let mut res = 0;
                loop {
                    assert!(c.is_ascii_digit());
                    res *= 10;
                    let d = (c - b'0') as $t;
                    if sgn {
                        res -= d;
                    } else {
                        res += d;
                    }
                    match input.get() {
                        None => break,
                        Some(ch) => {
                            if ch.is_ascii_whitespace() {
                                break;
                            } else {
                                c = ch;
                            }
                        }
                    }
                }
                res
            }
        }
    )+};
}

read_integer!(i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize);

macro_rules! tuple_readable {
    ($($name:ident)+) => {
        impl<$($name: Readable), +> Readable for ($($name,)+) {
            fn read(input: &mut Input) -> Self {
                ($($name::read(input),)+)
            }
        }
    }
}

tuple_readable! {T}
tuple_readable! {T U}
tuple_readable! {T U V}
tuple_readable! {T U V X}
tuple_readable! {T U V X Y}
tuple_readable! {T U V X Y Z}
tuple_readable! {T U V X Y Z A}
tuple_readable! {T U V X Y Z A B}
tuple_readable! {T U V X Y Z A B C}
tuple_readable! {T U V X Y Z A B C D}
tuple_readable! {T U V X Y Z A B C D E}
tuple_readable! {T U V X Y Z A B C D E F}

impl Read for Input<'_> {
    fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
        if self.at == self.buf_read {
            self.input.read(buf)
        } else {
            let mut i = 0;
            while i < buf.len() && self.at < self.buf_read {
                buf[i] = self.buf[self.at];
                i += 1;
                self.at += 1;
            }
            Ok(i)
        }
    }
}
}
pub mod output {
use crate::collections::vec_ext::default::default_vec;
use std::io::{stdout, Stdout, Write};

#[derive(Copy, Clone)]
pub enum BoolOutput {
    YesNo,
    YesNoCaps,
    PossibleImpossible,
    Custom(&'static str, &'static str),
}

impl BoolOutput {
    pub fn output(&self, output: &mut Output, val: bool) {
        (if val { self.yes() } else { self.no() }).write(output);
    }

    fn yes(&self) -> &str {
        match self {
            BoolOutput::YesNo => "Yes",
            BoolOutput::YesNoCaps => "YES",
            BoolOutput::PossibleImpossible => "Possible",
            BoolOutput::Custom(yes, _) => yes,
        }
    }

    fn no(&self) -> &str {
        match self {
            BoolOutput::YesNo => "No",
            BoolOutput::YesNoCaps => "NO",
            BoolOutput::PossibleImpossible => "Impossible",
            BoolOutput::Custom(_, no) => no,
        }
    }
}

pub struct Output<'s> {
    output: &'s mut dyn Write,
    buf: Vec<u8>,
    at: usize,
    auto_flush: bool,
    bool_output: BoolOutput,
}

impl<'s> Output<'s> {
    const DEFAULT_BUF_SIZE: usize = 4096;

    pub fn new(output: &'s mut dyn Write) -> Self {
        Self {
            output,
            buf: default_vec(Self::DEFAULT_BUF_SIZE),
            at: 0,
            auto_flush: false,
            bool_output: BoolOutput::YesNoCaps,
        }
    }

    pub fn new_with_auto_flush(output: &'s mut dyn Write) -> Self {
        Self {
            output,
            buf: default_vec(Self::DEFAULT_BUF_SIZE),
            at: 0,
            auto_flush: true,
            bool_output: BoolOutput::YesNoCaps,
        }
    }

    pub fn flush(&mut self) {
        if self.at != 0 {
            self.output.write_all(&self.buf[..self.at]).unwrap();
            self.output.flush().unwrap();
            self.at = 0;
        }
    }

    pub fn print<T: Writable>(&mut self, s: T) {
        s.write(self);
    }

    pub fn print_line<T: Writable>(&mut self, s: T) {
        self.print(s);
        self.put(b'\n');
    }

    pub fn put(&mut self, b: u8) {
        self.buf[self.at] = b;
        self.at += 1;
        if self.at == self.buf.len() {
            self.flush();
        }
    }

    pub fn maybe_flush(&mut self) {
        if self.auto_flush {
            self.flush();
        }
    }

    pub fn print_per_line<T: Writable>(&mut self, arg: &[T]) {
        for i in arg {
            i.write(self);
            self.put(b'\n');
        }
    }

    pub fn print_iter<T: Writable, I: Iterator<Item = T>>(&mut self, iter: I) {
        let mut first = true;
        for e in iter {
            if first {
                first = false;
            } else {
                self.put(b' ');
            }
            e.write(self);
        }
    }

    pub fn print_iter_ref<'a, T: 'a + Writable, I: Iterator<Item = &'a T>>(&mut self, iter: I) {
        let mut first = true;
        for e in iter {
            if first {
                first = false;
            } else {
                self.put(b' ');
            }
            e.write(self);
        }
    }

    pub fn set_bool_output(&mut self, bool_output: BoolOutput) {
        self.bool_output = bool_output;
    }
}

impl Write for Output<'_> {
    fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
        let mut start = 0usize;
        let mut rem = buf.len();
        while rem > 0 {
            let len = (self.buf.len() - self.at).min(rem);
            self.buf[self.at..self.at + len].copy_from_slice(&buf[start..start + len]);
            self.at += len;
            if self.at == self.buf.len() {
                self.flush();
            }
            start += len;
            rem -= len;
        }
        self.maybe_flush();
        Ok(buf.len())
    }

    fn flush(&mut self) -> std::io::Result<()> {
        self.flush();
        Ok(())
    }
}

pub trait Writable {
    fn write(&self, output: &mut Output);
}

impl Writable for &str {
    fn write(&self, output: &mut Output) {
        output.write_all(self.as_bytes()).unwrap();
    }
}

impl Writable for String {
    fn write(&self, output: &mut Output) {
        output.write_all(self.as_bytes()).unwrap();
    }
}

impl Writable for char {
    fn write(&self, output: &mut Output) {
        output.put(*self as u8);
    }
}

impl<T: Writable> Writable for [T] {
    fn write(&self, output: &mut Output) {
        output.print_iter_ref(self.iter());
    }
}

impl<T: Writable, const N: usize> Writable for [T; N] {
    fn write(&self, output: &mut Output) {
        output.print_iter_ref(self.iter());
    }
}

impl<T: Writable> Writable for &T {
    fn write(&self, output: &mut Output) {
        T::write(self, output)
    }
}

impl<T: Writable> Writable for Vec<T> {
    fn write(&self, output: &mut Output) {
        self.as_slice().write(output);
    }
}

impl Writable for () {
    fn write(&self, _output: &mut Output) {}
}

macro_rules! write_to_string {
    ($($t:ident)+) => {$(
        impl Writable for $t {
            fn write(&self, output: &mut Output) {
                self.to_string().write(output);
            }
        }
    )+};
}

write_to_string!(u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize);

macro_rules! tuple_writable {
    ($name0:ident $($name:ident: $id:tt )*) => {
        impl<$name0: Writable, $($name: Writable,)*> Writable for ($name0, $($name,)*) {
            fn write(&self, out: &mut Output) {
                self.0.write(out);
                $(
                out.put(b' ');
                self.$id.write(out);
                )*
            }
        }
    }
}

tuple_writable! {T}
tuple_writable! {T U:1}
tuple_writable! {T U:1 V:2}
tuple_writable! {T U:1 V:2 X:3}
tuple_writable! {T U:1 V:2 X:3 Y:4}
tuple_writable! {T U:1 V:2 X:3 Y:4 Z:5}
tuple_writable! {T U:1 V:2 X:3 Y:4 Z:5 A:6}
tuple_writable! {T U:1 V:2 X:3 Y:4 Z:5 A:6 B:7}

impl<T: Writable> Writable for Option<T> {
    fn write(&self, output: &mut Output) {
        match self {
            None => (-1).write(output),
            Some(t) => t.write(output),
        }
    }
}

impl Writable for bool {
    fn write(&self, output: &mut Output) {
        let bool_output = output.bool_output;
        bool_output.output(output, *self)
    }
}

static mut ERR: Option<Stdout> = None;
pub fn err() -> Output<'static> {
    unsafe {
        if ERR.is_none() {
            ERR = Some(stdout());
        }
        Output::new_with_auto_flush(ERR.as_mut().unwrap())
    }
}
}
}
pub mod numbers {
pub mod num_traits {
pub mod add_sub {
use std::ops::{Add, AddAssign, Sub, SubAssign};

pub trait Addable: Add<Output = Self> + AddAssign + Copy {}
impl<T: Add<Output = Self> + AddAssign + Copy> Addable for T {}

pub trait AddSub: Addable + Sub<Output = Self> + SubAssign {}
impl<T: Addable + Sub<Output = Self> + SubAssign> AddSub for T {}
}
pub mod as_index {
pub trait AsIndex {
    fn from_index(idx: usize) -> Self;
    fn to_index(self) -> usize;
}

macro_rules! from_index_impl {
    ($($t: ident)+) => {$(
        impl AsIndex for $t {
            fn from_index(idx: usize) -> Self {
                idx as $t
            }

            fn to_index(self) -> usize {
                self as usize
            }
        }
    )+};
}

from_index_impl!(i128 i64 i32 i16 i8 isize u128 u64 u32 u16 u8 usize);
}
pub mod mul_div_rem {
use std::ops::{Div, DivAssign, Mul, MulAssign, Rem, RemAssign};

pub trait Multable: Mul<Output = Self> + MulAssign + Copy {}
impl<T: Mul<Output = Self> + MulAssign + Copy> Multable for T {}

pub trait MulDiv: Multable + Div<Output = Self> + DivAssign {}
impl<T: Multable + Div<Output = Self> + DivAssign> MulDiv for T {}

pub trait MulDivRem: MulDiv + Rem<Output = Self> + RemAssign {}
impl<T: MulDiv + Rem<Output = Self> + RemAssign> MulDivRem for T {}
}
pub mod zero_one {
pub trait ZeroOne {
    fn zero() -> Self;
    fn one() -> Self;
}

macro_rules! zero_one_integer_impl {
    ($($t: ident)+) => {$(
        impl ZeroOne for $t {
            fn zero() -> Self {
                0
            }

            fn one() -> Self {
                1
            }
        }
    )+};
}

zero_one_integer_impl!(i128 i64 i32 i16 i8 isize u128 u64 u32 u16 u8 usize);
}
}
pub mod num_utils {
use crate::numbers::num_traits::add_sub::AddSub;
use crate::numbers::num_traits::as_index::AsIndex;
use crate::numbers::num_traits::mul_div_rem::Multable;
use crate::numbers::num_traits::zero_one::ZeroOne;
use std::ops::{Add, Div};

pub fn factorials<T: ZeroOne + Multable + AsIndex>(len: usize) -> Vec<T> {
    let mut res = Vec::new();
    if len > 0 {
        res.push(T::one());
    }
    while res.len() < len {
        res.push((*res.last().unwrap()) * T::from_index(res.len()));
    }
    res
}

pub fn powers<T: ZeroOne + Multable + AsIndex>(base: T, len: usize) -> Vec<T> {
    let mut res = Vec::new();
    if len > 0 {
        res.push(T::one());
    }
    while res.len() < len {
        res.push((*res.last().unwrap()) * base);
    }
    res
}

pub fn factorial<T: ZeroOne + Multable + AsIndex>(n: usize) -> T {
    let mut res = T::one();
    for i in 1..=n {
        res *= T::from_index(i);
    }
    res
}

pub trait PartialSums<T> {
    fn partial_sums(&self) -> Vec<T>;
}

impl<T: ZeroOne + Add<Output = T> + Copy> PartialSums<T> for [T] {
    fn partial_sums(&self) -> Vec<T> {
        let mut res = Vec::with_capacity(self.len() + 1);
        res.push(T::zero());
        for i in self.iter() {
            res.push(*res.last().unwrap() + *i);
        }
        res
    }
}

pub trait UpperDiv {
    fn upper_div(self, other: Self) -> Self;
}

impl<T: Div<Output = T> + AddSub + ZeroOne + Copy> UpperDiv for T {
    fn upper_div(self, other: Self) -> Self {
        (self + other - Self::one()) / other
    }
}
}
}
pub mod string {
pub mod str {
use crate::collections::iter_ext::collect::IterCollect;
use crate::io::input::{Input, Readable};
use crate::io::output::{Output, Writable};
use std::cmp::Ordering;
use std::fmt::{Display, Formatter};
use std::hash::{Hash, Hasher};
use std::iter::{Copied, FromIterator};
use std::marker::PhantomData;
use std::ops::{Add, AddAssign, Deref, DerefMut, Index, IndexMut};
use std::slice::{Iter, IterMut, SliceIndex};
use std::vec::IntoIter;

pub enum Str<'s> {
    Extendable(Vec<u8>, PhantomData<&'s [u8]>),
    Owned(Box<[u8]>, PhantomData<&'s [u8]>),
    Ref(&'s [u8]),
}

impl Default for Str<'static> {
    fn default() -> Self {
        Self::new()
    }
}

impl Str<'static> {
    pub fn new() -> Self {
        Str::Extendable(Vec::new(), PhantomData)
    }

    pub fn with_capacity(cap: usize) -> Self {
        Str::Extendable(Vec::with_capacity(cap), PhantomData)
    }
}

impl<'s> Str<'s> {
    pub fn push(&mut self, c: u8) {
        self.transform_to_extendable();
        self.as_extendable().push(c)
    }

    pub fn as_slice(&self) -> &[u8] {
        match self {
            Str::Extendable(s, _) => s.as_ref(),
            Str::Owned(s, _) => s.as_ref(),
            Str::Ref(s) => s,
        }
    }

    pub fn len(&self) -> usize {
        self.as_slice().len()
    }

    pub fn is_empty(&self) -> bool {
        self.len() == 0
    }

    pub fn iter(&self) -> Copied<Iter<u8>> {
        match self {
            Str::Extendable(v, _) => v.iter(),
            Str::Owned(v, _) => v.iter(),
            Str::Ref(v) => v.iter(),
        }
        .copied()
    }

    pub fn iter_mut(&mut self) -> IterMut<u8> {
        self.transform_to_owned();
        self.as_mut_slice().iter_mut()
    }

    pub fn sort(&mut self) {
        self.transform_to_owned();
        self.as_mut_slice().sort_unstable();
    }

    pub fn into_owned(mut self) -> Str<'static> {
        self.transform_to_owned();
        match self {
            Str::Extendable(v, _) => Str::Extendable(v, PhantomData),
            Str::Owned(v, _) => Str::Owned(v, PhantomData),
            _ => unreachable!(),
        }
    }

    fn transform_to_extendable(&mut self) {
        match self {
            Str::Extendable(_, _) => {}
            Str::Owned(_, _) => {
                let mut fake = Str::new();
                std::mem::swap(self, &mut fake);
                if let Str::Owned(s, _) = fake {
                    *self = Str::Extendable(s.to_vec(), PhantomData)
                }
            }
            Str::Ref(s) => *self = Str::Extendable(s.to_vec(), PhantomData),
        }
    }

    fn as_extendable(&mut self) -> &mut Vec<u8> {
        match self {
            Str::Extendable(s, _) => s,
            _ => panic!("unreachable"),
        }
    }

    fn transform_to_owned(&mut self) {
        if let Str::Ref(s) = self {
            *self = Str::Owned(s.to_vec().into_boxed_slice(), PhantomData)
        }
    }

    pub fn as_mut_slice(&mut self) -> &mut [u8] {
        match self {
            Str::Extendable(s, _) => s.as_mut_slice(),
            Str::Owned(s, _) => s.as_mut(),
            _ => panic!("unreachable"),
        }
    }

    pub fn into_string(self) -> String {
        match self {
            Str::Extendable(v, _) => unsafe { String::from_utf8_unchecked(v) },
            Str::Owned(v, _) => unsafe { String::from_utf8_unchecked(v.into_vec()) },
            Str::Ref(v) => String::from_utf8_lossy(v).into_owned(),
        }
    }

    pub fn reverse(&mut self) {
        self.as_mut_slice().reverse();
    }

    pub fn trim(&self) -> &[u8] {
        let mut start = 0;
        let mut end = self.len();
        while start < end && (self[start] as char).is_whitespace() {
            start += 1;
        }
        while start < end && (self[end - 1] as char).is_whitespace() {
            end -= 1;
        }
        &self[start..end]
    }
}

impl<'s> IntoIterator for Str<'s> {
    type Item = u8;
    type IntoIter = IntoIter<u8>;

    #[allow(clippy::unnecessary_to_owned)]
    fn into_iter(self) -> Self::IntoIter {
        match self {
            Str::Extendable(v, _) => v.into_iter(),
            Str::Owned(v, _) => v.into_vec().into_iter(),
            Str::Ref(v) => v.to_vec().into_iter(),
        }
    }
}

impl From<String> for Str<'static> {
    fn from(s: String) -> Self {
        Str::Extendable(s.into(), PhantomData)
    }
}

impl<'s> From<&'s str> for Str<'s> {
    fn from(s: &'s str) -> Self {
        Str::Ref(s.as_bytes())
    }
}

impl From<Vec<u8>> for Str<'static> {
    fn from(s: Vec<u8>) -> Self {
        Str::Extendable(s, PhantomData)
    }
}

impl<'s> From<&'s [u8]> for Str<'s> {
    fn from(s: &'s [u8]) -> Self {
        Str::Ref(s)
    }
}

impl<'s> From<&'s String> for Str<'s> {
    fn from(s: &'s String) -> Self {
        Str::Ref(s.as_bytes())
    }
}

impl<'s> From<&'s Vec<u8>> for Str<'s> {
    fn from(s: &'s Vec<u8>) -> Self {
        Str::Ref(s.as_slice())
    }
}

impl From<u8> for Str<'static> {
    fn from(c: u8) -> Self {
        Str::Owned(Box::new([c]), PhantomData)
    }
}

impl<R: SliceIndex<[u8]>> Index<R> for Str<'_> {
    type Output = R::Output;

    fn index(&self, index: R) -> &Self::Output {
        self.as_slice().index(index)
    }
}

impl<R: SliceIndex<[u8]>> IndexMut<R> for Str<'_> {
    fn index_mut(&mut self, index: R) -> &mut Self::Output {
        self.transform_to_owned();
        self.as_mut_slice().index_mut(index)
    }
}

impl Clone for Str<'_> {
    fn clone(&self) -> Self {
        match self {
            Str::Extendable(s, _) => s.clone().into(),
            Str::Owned(s, _) => s.to_vec().into(),
            Str::Ref(s) => Str::Ref(s),
        }
    }
}

impl<'r, 's, S: Into<Str<'r>>> AddAssign<S> for Str<'s> {
    fn add_assign(&mut self, rhs: S) {
        self.transform_to_extendable();
        self.as_extendable()
            .extend_from_slice(rhs.into().as_slice());
    }
}

impl<'r, 's, S: Into<Str<'r>>> Add<S> for Str<'s> {
    type Output = Str<'s>;

    fn add(mut self, rhs: S) -> Self::Output {
        self += rhs;
        self
    }
}

impl Readable for Str<'static> {
    fn read(input: &mut Input) -> Self {
        input.next_token().unwrap().into()
    }
}

impl Writable for Str<'_> {
    fn write(&self, output: &mut Output) {
        for c in self.as_slice() {
            output.put(*c);
        }
        output.maybe_flush();
    }
}

impl Display for Str<'_> {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        <String as Display>::fmt(&String::from_utf8(self.as_slice().to_vec()).unwrap(), f)
    }
}

impl Hash for Str<'_> {
    fn hash<H: Hasher>(&self, state: &mut H) {
        self.as_slice().hash(state);
    }
}

impl<'r> PartialEq<Str<'r>> for Str<'_> {
    fn eq(&self, other: &Str<'r>) -> bool {
        self.as_slice().eq(other.as_slice())
    }
}

impl Eq for Str<'_> {}

impl<'r> PartialOrd<Str<'r>> for Str<'_> {
    fn partial_cmp(&self, other: &Str<'r>) -> Option<Ordering> {
        self.as_slice().partial_cmp(other.as_slice())
    }
}

impl Ord for Str<'_> {
    fn cmp(&self, other: &Self) -> Ordering {
        self.as_slice().cmp(other.as_slice())
    }
}

impl FromIterator<u8> for Str<'static> {
    fn from_iter<T: IntoIterator<Item = u8>>(iter: T) -> Self {
        Self::Extendable(iter.into_iter().collect_vec(), Default::default())
    }
}

impl<'r> FromIterator<&'r u8> for Str<'static> {
    fn from_iter<T: IntoIterator<Item = &'r u8>>(iter: T) -> Self {
        Self::Extendable(iter.into_iter().cloned().collect_vec(), Default::default())
    }
}

impl Deref for Str<'_> {
    type Target = [u8];

    fn deref(&self) -> &Self::Target {
        self.as_slice()
    }
}

impl DerefMut for Str<'_> {
    fn deref_mut(&mut self) -> &mut Self::Target {
        self.as_mut_slice()
    }
}

pub trait StrReader {
    fn read_str(&mut self) -> Str<'static>;
    fn read_str_vec(&mut self, n: usize) -> Vec<Str<'static>>;
    fn read_line(&mut self) -> Str<'static>;
}

impl StrReader for Input<'_> {
    fn read_str(&mut self) -> Str<'static> {
        self.read()
    }

    fn read_str_vec(&mut self, n: usize) -> Vec<Str<'static>> {
        self.read_vec(n)
    }

    fn read_line(&mut self) -> Str<'static> {
        let mut res = Str::new();
        while let Some(c) = self.get() {
            if c == b'\n' {
                break;
            }
            res.push(c);
        }
        res
    }
}
}
}
fn main() {
    let mut sin = std::io::stdin();
    let input = if false {
        io::input::Input::new_with_size(&mut sin, 1)
    } else {
        io::input::Input::new(&mut sin)
    };

    let mut stdout = std::io::stdout();
    let output = if false {
        io::output::Output::new_with_auto_flush(&mut stdout)
    } else {
        io::output::Output::new(&mut stdout)
    };

    solution::run(input, output);
}


Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 1964kb

input:

2
bajkaaall aal
abca cba

output:

2
1

result:

ok 2 number(s): "2 1"

Test #2:

score: 0
Accepted
time: 0ms
memory: 2248kb

input:

16
a a
a b
b a
aa a
ab aa
ab b
ab c
aaz az
abcde edcba
aaaaaaaaaaaabbb aaaaaaaaabb
aaaaaazz az
aaaaaaaaaz zzzzz
gggggggggggggggggggge ggggeeee
hyphyphyphyphyphyphyphyphyphyphyphyp eeeeeeeeee
hyphyphyphyphyphyphyphyphyphyphyphype eeteeteeteet
aaaabbbbbbcccccccc aaabbbbbcccccc

output:

1
0
0
2
0
1
0
1
1
2
2
0
0
0
0
1

result:

ok 16 numbers

Test #3:

score: 0
Accepted
time: 46ms
memory: 1944kb

input:

90522
cyykzyylklyll ylcyllklzk
ttusuuudtdtqus uuddu
uefyqfkiblyfkyd ffyyqde
qfxqecljeqeedea jqdxf
prrbfxdxffpbpp ffppd
ynjgygygjnjnjg jgynjggn
maenpaksmxyya saxkep
nrdnbnjipnjowjz djbwojzrpni
oputuoufoojupu uoouopo
mphmhphpkpkpmhp phmhpppp
zwznzpzqyjczzy wczjnpzqy
pfxfxxkfffpfx fxffkffxpx
hzdhzhhh h...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
2
3
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
2
1
1
1
1
4
1
2
1
1
1
1
1
3
1
1
3
1
1
1
1
1
1
1
1
1
1
1
3
1
1
4
1
1
1
1
1
1
1
1
1
1
5
1
7
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
...

result:

ok 90522 numbers

Test #4:

score: 0
Accepted
time: 54ms
memory: 2032kb

input:

100000
qpohohoqoyqqtkqoqqqfl qptqyqq
yrirresrslrssrrryysrs srysssy
qqtqqslrrsrlfmqtssrhr rsfsq
jfejsqjyflsqqlyydqdts yqsjj
zrzrezrzzszzrrrrrrrrr rrrrrz
ifqgfqqfttbbhgoqqgiqq iqgbggq
xejojrxlglerjgjljppjv jjjje
whhtowwwwhrhhthttombt hoohh
tqwthgtnstqtwattstwww tsqwwqs
cwurupfwrkckupkckpkzu pkcp
ogonm...

output:

1
2
1
2
3
1
2
1
1
2
1
1
3
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
2
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
5
1
2
1
1
3
1
1
1
1
1
2
1
1
1
2
1
2
1
1
1
1
1
2
1
1
2
1
2
1
3
2
1
1
2
1
3
2
1
1
1
1
1
3
1
1
1
1
1
2
2
5
1
2
4
1
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
...

result:

ok 100000 numbers

Test #5:

score: 0
Accepted
time: 47ms
memory: 2312kb

input:

88214
lysxulsgzsxybcgbbcglx zyysssu
kdlrkfhkzkzqqdkqoqkfr loqkkqh
ceaiiaipiipzazizpaaiz ieaicai
jbjzowzcaioauqmbiuzjm wcq
kdnkdddddjcdmndkmjdkd dcdjnj
ywruruwpyuwpwwwzxuxwz xxrwwuu
fapaffifoafopyyaiaaaf ffffoyp
zzzvzaavazvazzzzvvzzv avvvavv
fbtubsuubsufstbdfefet bedue
bylyggblggvgbymybvlvg vmvg
aara...

output:

1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
3
2
2
1
1
1
1
1
2
6
2
1
1
1
1
1
1
1
1
1
1
1
2
6
2
1
1
1
2
1
1
1
3
1
1
1
1
1
1
2
1
2
1
2
1
1
1
4
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
4
1
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
2
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
2
1
2
1
7
1
1
2
2
1
1
1
1
1
2
3
5
2
1
1
3
3
1
1
2
1
...

result:

ok 88214 numbers

Test #6:

score: 0
Accepted
time: 44ms
memory: 2128kb

input:

95170
vlrsovvpollyrorrl lrrrly
btcbtenuvbsbapw bcbuse
hlxyhhhbhuxhybxh hlxhx
qgiccigisiiiirci qcc
jxpjjjhjojojhj jhjph
xxwwwewtweeed wt
yxxbqjzjnblzjmn znq
rbmbbbbbbmrblbmb mmlmb
rneccaccrtchnxorc athrrc
kkxkxxkxxkkxxxk xxkxkk
donsxndqd nn
csccvvscvvcvzc ccvs
bkhhkkhkh hhbhhk
mwvmvpmwjjpepvwer ejerj...

output:

1
1
1
1
1
1
1
1
1
5
1
2
1
1
1
2
1
3
2
1
2
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
4
1
1
1
2
1
4
4
1
1
1
2
1
1
1
1
1
9
2
2
3
1
1
3
2
1
1
1
1
3
1
1
3
1
2
1
2
1
1
2
1
2
2
1
2
1
1
1
1
1
1
2
3
1
2
1
1
1
1
1
2
2
1
4
1
1
1
1
2
1
1
5
2
1
1
3
1
1
3
1
1
2
2
1
1
1
2
4
1
...

result:

ok 95170 numbers

Test #7:

score: 0
Accepted
time: 41ms
memory: 2236kb

input:

96180
rqkdfgusdfgffjkru jkksq
ddeeeddeuude duue
vuyuluqyqjwyqqjwwj uylvq
srnlpkpoeggywrdpig ppgpg
stqxlqxqsqqlssq lxqlx
sbpsnnfbnppfnsjp nfjsb
bvqmbbgbzkgvkkgqmz qqb
kkkhhlhvhhjhhk hvjl
xxqyxeqfbssyeewex wsf
twmlbtitqltmik mm
ccbczbccbycbceb ccccb
msmjjmpifepj mjsjj
kbmkkbkbkmbkmmkk bbbb
fpgfrpbkrrh...

output:

1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
3
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
2
3
3
1
1
1
3
1
1
2
1
1
1
2
3
1
2
1
1
1
2
1
2
2
4
1
2
1
2
1
1
5
2
2
1
1
1
1
1
4
4
1
1
1
3
2
1
3
1
1
1
1
1
1
1
3
1
1
2
5
1
1
1
1
2
1
1
1
2
1
1
2
1
2
1
1
2
10
2
1
1
1
1
3
2
1
1
2
2
1
1
8
1
1
2
1
1
1...

result:

ok 96180 numbers

Test #8:

score: 0
Accepted
time: 37ms
memory: 2200kb

input:

84351
bkiiiekpipghhkhhpia abgh
vchhuubuhbnhzxdg huuh
yyeoyeereybieerry ryr
ttzwzwtzzzcwztww t
xoxokixkkkck xxoo
lcrzzlbcuzgggakldzg blll
lohwlllrolrlkllwln nlkh
zosszzookkongnkpnn nkgp
zzqqqqqzzqqqqrzrzqq zzq
pqupfefpqwezuzppbq q
kxoxhughuuuuugk huuu
gkbsnwnnnupsnsnrjzs nk
mbvmxttddwdvzv vxdm
xnptax...

output:

1
2
2
4
1
1
1
1
5
3
2
1
1
3
2
1
1
2
1
1
1
1
2
1
1
5
3
2
1
2
1
1
4
1
1
1
1
1
1
1
3
1
2
1
3
1
7
1
4
2
1
1
1
1
1
2
2
6
1
9
1
2
3
1
1
1
1
1
2
2
1
1
1
1
2
4
1
10
2
3
1
2
2
3
8
1
1
3
1
1
5
4
3
1
1
2
1
2
2
1
8
1
3
1
1
3
7
1
2
1
1
1
2
1
1
2
2
1
2
1
1
1
7
1
5
2
2
1
1
1
3
3
1
1
2
1
1
2
2
1
1
1
1
1
4
2
2
1
3
7...

result:

ok 84351 numbers

Test #9:

score: 0
Accepted
time: 43ms
memory: 2092kb

input:

99795
qimqpqdqnmmqprdfqpqqe imp
ttzswwzwzszjjzwjzzoowo wto
zzwwzzwwwqgppzpwpizq zwp
juaiaiiiiaaajijiiaqrti jra
ynydxdnyyxyyxxtdyyrby ydy
ggweegjowgspqvbpkwcw pbp
rgrrrreimvvggrardrr eri
gonotggooogovbnodocw nt
hmqkkqzmzrkzmmztk tzh
hqjghjhjjhdgdjhhhgnnh hj
szfjjqjbsbjjsjzjjss zsz
ntmeiimiimpibujiiix...

output:

1
2
4
1
3
1
1
1
1
5
1
3
1
1
1
2
2
7
3
1
1
2
1
4
2
1
9
1
2
5
2
4
1
6
1
2
7
7
4
2
4
4
6
5
2
1
1
1
3
4
2
2
1
1
2
1
3
1
1
1
1
3
1
21
1
1
1
1
2
4
1
3
1
2
2
1
3
1
2
1
2
2
4
4
8
4
1
2
2
1
3
10
3
3
7
1
1
3
1
2
1
2
1
1
1
1
1
5
2
1
2
2
3
3
5
1
2
1
1
1
1
1
1
2
4
2
5
2
1
1
2
1
4
11
1
1
4
2
2
9
7
2
1
1
1
1
2
3
1...

result:

ok 99795 numbers

Test #10:

score: 0
Accepted
time: 35ms
memory: 2032kb

input:

97112
nnnhnoogzhzho zgonzngnonn
znzyzanuaaaaa aznanaazyzzna
wrwwtvwwwwww rwtv
xjfdojyjvvaaa dvvxfovvjy
ymqyyymiiyyyy mmqyyyqq
qbbppuqqccpbq qcbuccqpcu
trrsttrstsv vvsrrs
yedyedyyddedx yxxddyyxxyx
alvxdgdguydal uxyddv
gfgggxgigi ggggggi
yffjyfjfijyf jijiiiiif
ctccttce ee
qqxqdxdedquud qeedeeeee
gzgqy...

output:

0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
4
0
0
7
0
0
0
1
0
0
0
0
1
0
0
1
0
2
0
1
4
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
3
0
0
1
0
1
0
0
0
0
1
0
3
0
0
0
0
1
1
1
0
3
0
0
1
0
0
1
0
0
0
0
0
2
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
...

result:

ok 97112 numbers

Test #11:

score: 0
Accepted
time: 50ms
memory: 2116kb

input:

83674
ssspsssspssssspsssssspsssssssssssspsssssssss sspssssspss
gggiigggiiiigggggiiigiigggggiiiigii gggigggiggg
djjjjjjjjdjdjjdjjddjjjjjjjjjjdjjjdjjjjdj ddjdd
ttttttttttttttttttttttttttttttttttttttttttttttttttd dddddddddd
aaaaaaaaaaaaaawaaaaaaaaaaaaaawaaaaaaaaawaaaaaaa wwwwwawwwww
ppeppeppepppeeppepp...

output:

4
4
3
0
0
4
10
0
0
6
5
1
1
9
0
12
8
4
16
0
0
21
7
3
2
5
0
7
8
13
37
9
6
3
0
0
0
1
14
4
0
2
5
1
0
0
5
9
38
4
0
0
0
0
0
3
4
5
1
0
4
3
2
32
0
2
7
5
0
1
0
8
1
0
0
14
28
0
0
0
14
7
7
0
2
14
0
0
1
1
7
0
5
7
0
1
3
10
4
0
2
0
6
1
1
4
1
7
2
1
0
0
1
8
3
11
3
10
2
10
5
42
1
0
2
14
4
0
6
3
2
1
5
1
1
3
3
0
10
7
...

result:

ok 83674 numbers

Test #12:

score: 0
Accepted
time: 45ms
memory: 2060kb

input:

62490
zzzzzzezzzzezezzzzzzzzezzzzzezzzzzzzzzzzzeezzzezzz zzzzzzzz
hhhhhhhhhhhhhvhhhhvhhhhhhhhhhhhhhhhhvhhhhhvhvhhhhhvhhhhh hvhhhhhvhhvhhhh
qqqqqqqqqqqqqffqqqqfqqqqqqqqqqfqqqfqqqqqqqfqfffqfqfqqqqfq fffffffffqfqffq
aaaaaaaaxaaaxaxxxaxaaxaxxxaxaaaxaxaaxaaaxaaaaaaxaaaax aaxxxxxxaxxxxaxx
wwwjwwwwwwwwwwww...

output:

35
4
1
2
41
7
30
35
17
1
1
9
21
8
40
6
5
26
8
2
3
16
25
9
10
28
5
10
9
27
19
20
1
10
43
3
20
25
4
3
34
20
16
1
7
4
12
5
2
8
1
2
2
7
4
3
20
12
3
22
5
5
2
20
7
5
18
8
13
8
9
20
11
4
1
21
16
46
47
8
8
10
11
3
3
5
8
9
10
8
11
15
8
7
3
36
17
6
10
8
13
11
34
5
11
9
10
10
1
2
10
18
11
2
8
13
9
12
24
19
13
...

result:

ok 62490 numbers

Test #13:

score: 0
Accepted
time: 27ms
memory: 2036kb

input:

16387
mmmmmmmmuummmmmmmummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmummmmmmummmummmmmmmmmummummmmmmmmummmmmummmmmummmummummummmummmmmuumumummummmmmummmummmmmmmmmummmmmmmmmmmumuuumummmmmmmmmmmmmmmmmumumummmmmmmummmmmmmmmmmummmummmmmmmmmmmmmmummmmmmumu ummuuuuuuum
thhhhhthhhtthhthhhhthhhhthhthhhttthhhhthhhhhhthh...

output:

15
52
37
60
11
109
64
25
21
14
59
36
73
65
8
47
27
10
50
36
25
38
9
56
62
43
30
31
35
139
58
17
28
59
92
9
62
15
82
71
97
94
16
23
1
8
61
159
38
8
103
88
32
18
18
18
55
24
43
4
35
17
30
36
35
138
7
12
17
41
99
13
59
2
67
139
3
201
22
34
41
81
109
13
15
28
42
12
28
42
10
31
53
91
45
23
32
36
31
36
32...

result:

ok 16387 numbers

Test #14:

score: 0
Accepted
time: 59ms
memory: 2032kb

input:

95000
ffctccfffcfft cffftft
nnuuuunuunnuuuuaunuuuuuuuuuu nununnuu
aaaaaaiiaiaaaaaaiaaaaaaaiaaagaiaa aia
sggsggsgssyssgsgsyggysgggss ygsygg
kkkkkkxrxkkkkkkkkkkkkkkkkxkkkkkrk krxxkkkrk
ykhhhyhhyhhhhkyyyhhykhhyyhhky khhyy
fffnnnfffkfnknknf nffffnkn
glllllllllllllllllllelllllllelllll ee
eieieieeeeeeiiee...

output:

1
3
6
2
1
4
2
1
1
1
4
1
1
1
3
1
1
12
10
2
1
3
4
1
1
1
3
1
2
1
1
1
1
9
13
3
1
2
1
3
1
1
1
2
3
3
9
3
1
23
2
1
2
1
4
12
1
6
1
2
9
1
3
7
1
2
1
3
1
2
8
1
2
13
2
6
1
1
2
2
1
2
1
1
1
6
2
1
5
1
7
5
7
12
17
2
1
2
1
14
7
3
8
3
1
1
5
1
2
2
1
1
5
1
3
4
1
11
5
1
1
4
7
16
1
1
1
1
2
5
1
3
2
2
1
9
1
1
6
5
1
1
3
1
7...

result:

ok 95000 numbers

Test #15:

score: 0
Accepted
time: 55ms
memory: 2196kb

input:

92634
qhchcqchhchqhqhhchhhhqqhhhq qqqqqqq
mmlppmplpmmpllllmmpp lllll
qqngnqgnngqqgnqqqgnnqqnqn qqnqnnnqq
tjtjjggttjtjjttjjjjjggtjg ggtjjj
ollllloolllllollloolollololllloll lloollloo
fxffxfflflfxfflxlffxxlx xlxxxxxxf
rrnnrrrruunuurrnurnunrrnrnrrrn nnrrnrnn
usssussuuuussussssusuusuuuus usuusususs
qccq...

output:

1
2
6
4
7
1
3
10
1
3
1
6
6
2
4
18
10
3
4
2
2
6
1
4
1
4
1
2
4
1
1
5
1
1
3
5
1
5
2
2
1
3
4
3
5
1
4
2
32
8
3
6
2
4
8
1
1
1
3
2
1
1
4
2
1
1
2
1
3
6
13
1
2
3
3
1
2
5
5
1
1
8
4
11
1
2
6
3
4
1
5
6
1
15
4
5
7
3
6
4
3
2
3
3
1
1
1
1
2
7
4
1
2
1
3
4
6
2
5
1
4
1
8
1
2
1
2
4
13
5
1
4
22
1
2
12
2
2
3
2
1
1
3
2
4
...

result:

ok 92634 numbers

Test #16:

score: 0
Accepted
time: 59ms
memory: 1952kb

input:

92852
xxxxxxxvxvvxxxxxvvxxexxxxxvvxxxxexxvx xxxxxxxxxvv
rhhllrhlhhhhhrhrlrrhhrrhhhllrhhhll hhrhlhhhhhh
hplphppphhphphpphhpphhhhhhhhphhpp phhhphhphph
jjjjjjjjjsjjjjsjysjsjj sjsssjsjjss
bbbgbxxggxgbgxbbgggxxgg xxbxxbxxxxb
svsvvvvvvsgvvvvsvvvvsvsvsvvsvsv gsggggggggg
gggklkkggkgllglgklkkkkglkgklkkkgkgg ...

output:

7
2
6
0
0
0
3
1
0
1
0
0
0
2
0
2
0
0
0
0
0
0
4
2
1
2
2
0
3
3
2
0
0
2
7
0
0
0
0
6
3
0
0
0
0
0
2
0
5
1
0
0
0
2
0
0
3
0
0
4
0
3
1
1
1
1
0
0
1
1
2
1
0
1
6
0
1
4
3
1
0
1
1
0
3
0
0
4
1
3
1
0
0
0
1
2
1
1
0
1
6
0
2
1
4
2
0
0
2
0
0
1
0
2
0
3
1
0
2
0
0
0
0
7
2
3
1
1
1
1
3
2
0
0
3
1
0
0
5
2
3
1
0
1
2
0
0
0
0
2
...

result:

ok 92852 numbers

Test #17:

score: 0
Accepted
time: 30ms
memory: 2320kb

input:

18912
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee...

output:

77
67
17
266
114
216
247
57
82
264
103
247
276
36
93
244
100
243
30
139
244
282
68
14
101
256
12
65
5
216
152
234
182
5
271
197
327
200
65
45
166
271
141
167
169
208
70
135
139
143
15
99
194
146
12
75
169
282
179
255
47
39
254
161
246
22
34
59
37
178
140
122
324
65
46
138
65
220
51
119
258
272
26
19...

result:

ok 18912 numbers

Test #18:

score: 0
Accepted
time: 71ms
memory: 2076kb

input:

93950
jtjatjtjtatjjjajatjtj jatattjjjtaajttjj
xxxxgcxgxggxggccx xxccxxcxgxx
nttptptnpptnnppnnpnnptpntt nnpppnnnppnpnnn
kyhhkkkkhkyhkykyhhkkkykyhky kkkkkkkhyykkhhky
nmmmmmnmnnmmmmmmmmmmmmm mmmmmmnmmnmmmm
vvcvkvkkckkvcvvccvvvcv ckvvkckkccc
jffjnjfjfnjjnjnnfjjnjjjf jjjjnnjjnjnjnj
dtdwdtttdtdtdtdttddd d...

output:

1
1
1
2
2
1
2
1
1
1
1
3
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
3
1
1
1
1
1
1
2
2
1
1
1
1
2
1
5
1
1
3
2
1
1
1
1
2
3
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
2
1
1
3
1
2
1
1
3
2
1
1
2
1
1
1
1
2
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
2
1
1
1
1
...

result:

ok 93950 numbers

Test #19:

score: 0
Accepted
time: 68ms
memory: 2252kb

input:

97146
rrvrqqrrvqrveervrvrevr qeevvvvrvqqv
ffqpqpfppfqpppfpkppp kppppppqpppppf
iifmfmmfnmffmfffmffnmf minmmfmfmmf
beenaeeeebeeeeeeneeae ebeeeaeeeeebaeee
eeseskksekskksksesesks sseekkeksskssssk
kkkmmkekevveevvvkvvkvk kkkvkkevkkvvkv
nnnnnnhhnjhfjnnnnhhnhn nnnnnnnnnnjjnnh
vnaqaaaaannnnvanvaqan aavaavava...

output:

1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
7
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
3
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
5
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

result:

ok 97146 numbers

Test #20:

score: 0
Accepted
time: 23ms
memory: 5860kb

input:

1
bsjgcfpiktklxlxlfqkwqluatehtlphewnurduntychudptiocmecijoirykdomylbxakttepugeilrftyfhiljfbnasluzwoyntlhaerrlkhhhayzswixqqtvxhusqdxeyujaqcgfqjcjttuppajzatxskluixtmbyuiosymyquelrzpnyspcqpuejmwtqwfdszucwpvlenvjqmzmeaebmzgdqxybmzazfkrtopyxfosjwaonzsofecfcimnrijfxxaeathrxsoauyqcbiqafmhkqrnrjtxblbliwhwvq...

output:

1

result:

ok 1 number(s): "1"

Test #21:

score: 0
Accepted
time: 22ms
memory: 5920kb

input:

1
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...

output:

1

result:

ok 1 number(s): "1"

Test #22:

score: 0
Accepted
time: 13ms
memory: 4944kb

input:

1
hxxfiwatcuhxnyklydflhvnzxwdgdypkkkqlzkjjzvcgvpeiqftqyvyhqjgkpvpujbbqnoupkpabfmsmfmmpdfsdzomlvpiejqgespwsromrzderhwtblwslycqoqgkovcwikwqgginfvqpbxradluhmfypvmzirbfwttpadqdbvwvvkbnbdahzjhyiwwklcqekppvlhwfpxpokvmubmknvcwsqektnqvguqzzteccsevyauowmmlkcvgjycbwadhqfuhtcywrpshlvemaeerjftbnsodudxsvbljyxnuo...

output:

201

result:

ok 1 number(s): "201"

Test #23:

score: 0
Accepted
time: 21ms
memory: 5384kb

input:

1
csozmbzomyyzdvvmfiwqjzxuixtniespsnmybsvsxqfcscwmxskcozwwzuwczyzsuwxismszismswsveqczcsozsnvnzqpszzszmyvemwmfwqmksuzxestsusfuumsmmnmsyccusinzfbwsysvzcmnzcmrmxgibzxiewsmnzmwsmewsejswzqzuekrvuzmcwsouesstguysuukuwwuviywxmtmlsnuswimmwknygcsxzymcsszsufefzzwgiwusguxzzswxcsciznzsiomxzwzokmmusosczxoccuniimf...

output:

35

result:

ok 1 number(s): "35"

Test #24:

score: 0
Accepted
time: 12ms
memory: 4360kb

input:

1
wmikwxmwsoasiqxigsgusfhszunrxmkwlcdgdxzwcgbnlllasgwsedwxkztlowfztntlvgfdjvzdjwxphvgdblskunnkqlmujzlilqiltxcyybxdfciziyfbpgiksqrneimykxncljjhkweuqznfrkyrltffggbmxbdhqkxndnizqfycugfoskgbayznludvdatzsdltxayqimlowcfqzelskademprtljdfdjcdyurmvltzvpkxuzddlcnjbsptdnzleasijkqqrrjgtyntwunzdiaiigwcqswhalqxdd...

output:

15

result:

ok 1 number(s): "15"

Test #25:

score: 0
Accepted
time: 16ms
memory: 4576kb

input:

1
ppppphpnrphpnpmppmpppnppdmmmpppppnmmpprmdmpppmnnpmfmwmpppdrphprhwmppmppppnmnmmpppmpnppnpppdwmkppptppnmmmppnmppppppnmppodnpnmppmpmmmpnpmmpvpmnpmpnpmpppppnmmwvnnmpdmppppmmnpvppndpmhpknhndnpdptpndnppppvphmpproppmhppppmpppnkprdpnnpmhpppdmrpmpmnpppppmppopptnpppppnnmponppppppdphvnpppmnprpmmpmdptpprnpmpm...

output:

1

result:

ok 1 number(s): "1"

Test #26:

score: 0
Accepted
time: 10ms
memory: 4680kb

input:

1
nwdvjpruhrgysbxjkjhdehebtuwjyksphydmzcfzvckugojwgklceyifgevybwnsunbakiwqxieztmtoatjkjvxniqfhpogytgmlejvhpuydtabpsmtdxaesquhwxuiwjceuzwmwilqfsokjoobbegrpojssaqeojdejjgdjwurortoiqqrscwfaqjotzcchiisjnqcphjppttivlidpfmpulwsvcxrdjgzhuqxjncjlharowhxqnmqopqzldpgicamlgqjdxutxkuavaqhxksfxicmvdnpillucyeptoy...

output:

319

result:

ok 1 number(s): "319"

Test #27:

score: 0
Accepted
time: 25ms
memory: 5908kb

input:

1
dlenbdsjmzzslmaqpqkggzpjuxkkltswnzgaaixgfiriuukfblqnmhqdiviugzdiryxplyfitzjbavhpsemhpdpgnpetfyldtlmgpgzdwdothoczjnksqjtedtvxndvfdttkefptrychboyzvczxdneueaipmnpqbwmxcgowkkdhykxlsqrczruqdvmfhdmvvsssymyyuuwlsjmkgrbnvikrosflptsnyadlkcczhxydrdtdxyytyqzpgojjprcrhuysiwailzagjxztaxqpgjxkidyngwdcpouhezjbvv...

output:

12

result:

ok 1 number(s): "12"

Test #28:

score: 0
Accepted
time: 16ms
memory: 5896kb

input:

1
stmzbeafwzvavtvumqopjdsewpsqdvhcokdjevlzklvqxljzslxqoxxhsqvdiplhjkzklpaguytuiqastdmxojppzuunsyvzvvyfxckhvkwzewhsrnbuoflagyjbnnqqqabpcecgnaydauunmaxpkchaeqsuxhyiztdyxcljyujxhdkobdgibvlnqcmkyzuujovxqphiguggnvxhmrldcbnvdnxkjxdnimnptmirqipajvvxxymaosvnczfohuglbzqnlufgwrifyebczlgvemypbucibeovuyqxwxonmm...

output:

0

result:

ok 1 number(s): "0"

Test #29:

score: 0
Accepted
time: 23ms
memory: 2076kb

input:

2000
ewpuhshjepfwsvxorkneeollbfrvwlgedfamwnqqhizlqjjsotjeoljcykllyhkjugogjgqqqbteisersjwgkwrewsmsubinkydvwgbrgaunjbxiwtofmknolgbkxzianfpczceayrlyyonnowhqdgvswslkqqwoyvhtfyblvchyyfttfbuodzkqquluwgwkhvrgjdrzcllsqjceohvdonhojkmiwnqogyznjqlxuvohwxindtwsiaeovyadukmyzvpohdsbdllzmchiyapsztbhhaazccapyxtnffo...

output:

0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
2
1
1
1
1
1
0
2
0
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
2
0
1
0
1
1
1
1
2
0
1
1
1
1
1
2
1
0
1
2
0
0
2
0
1
2
0
2
1
2
1
1
1
1
0
1
2
1
1
1
0
2
0
1
2
2
0
0
0
1
1
2
1
0
1
1
1
2
1
1
2
1
1
2
1
1
0
0
0
2
1
1
1
1
1
1
1
2
2
1
1
0
0
0
0
1
0
0
...

result:

ok 2000 numbers

Test #30:

score: 0
Accepted
time: 21ms
memory: 2076kb

input:

200
ckkuibmjprqcvjyzogypzerpgrnvfonhknyuwqfsqrkobscjugblsrinyabdvtlufcexservhwwvwhimcouaydmvytgliaesgrcxptnthengufeagnfpagjjzvesckpzhjwdfgvoswfgadnhkybsbljmjbivvwofmqqpriucmtqtvxhdeczqoikxpkqzdnqogjgnglodixwoctddkhqjvbivarebfzeiewwliwynpyvkdkexjoiboojfdbuvvtlcererhexlycnurgzsrllbopnnqsgkggflxqrggzjg...

output:

16
17
15
15
16
17
15
15
19
17
15
15
17
15
15
18
17
15
15
16
15
14
18
13
16
16
17
18
18
16
15
16
15
17
14
15
15
13
15
15
16
14
13
17
14
14
17
16
17
17
16
15
15
18
16
17
15
16
16
15
17
16
14
16
15
17
15
14
15
13
17
17
17
15
15
15
15
13
17
15
16
17
18
18
15
17
16
13
15
16
16
17
17
19
16
14
16
14
13
17
...

result:

ok 200 numbers

Test #31:

score: 0
Accepted
time: 22ms
memory: 2356kb

input:

25
sjegbncuyvchkqxmzmgioxvuebhxdnkhroreaiajrrlhfguyqoomlrjmpadcwuefyymnlutdxpuliujluooewjwyzjeaggkhsetzyojpzleyijuxtogjmqpjjpupxlthzutbtcbsvotxlmwpvnylovhbaolcjefplxbjwtrxgpdluljdzixibgteehyouaqvsvakxacbttplvozkbepzwujulfjvqdetdrzeqvsmmfhlhvvnecpozxckvhchgyharhmfhjpflylszhjrdemoaeuqzdadmrdtxkkzlxmci...

output:

29
30
29
32
26
28
30
31
29
29
29
30
31
30
27
30
27
29
29
29
30
29
27
30
29

result:

ok 25 numbers

Test #32:

score: 0
Accepted
time: 23ms
memory: 2668kb

input:

16
lsqppylqlmqvqyyosolboyqlfqlvsqhqucvqqoqcsyxzzczdayyayzqzusovyoxooqgoyzhnyqlywvdhylyonqufzashooqofqfydpzbhoyvsvfquyrswmfqqsxyoyxsqtozphlofbbfswbjhsalqysqsqeqyeolvdhzqaataybaxqhshvvlqqcbovsavhdqhlyvlklsacqaomvsbnhpqpnoaqoyayovvthqbwwcqnfmobayycbqybfsfsoaqqchqqzsvsoqcyqvoavoaosvboqyzstzlqxvqwbbyyvlv...

output:

11
12
5
9
8
9
13
9
6
12
9
4
9
7
10
11

result:

ok 16 numbers

Test #33:

score: 0
Accepted
time: 13ms
memory: 4968kb

input:

1
poojkzobzozbbkpkhjkebwkbbwwbzuuzoobubnoikbkuzokzbuwunbkbgubjjuwwwkwbbbkbezbuzguwozokzubkobbbwwwwbgkkwcbufzbjowjkzwkkbupjepubbzkwiwoobokpokjekwkkbnmobzuwuzugzebkkguojbbbuupwuekwwuxpzwknohuxzkpwokzbzijokuwkzobwwzbwokfobpifpbwwfukkzbuoobngwfunxkwnozkowwozzonhoukipjzfowuwpubkjzkjzznfaiwkuehbbujwhpzpwz...

output:

9

result:

ok 1 number(s): "9"

Test #34:

score: 0
Accepted
time: 17ms
memory: 4868kb

input:

1
bxcxmgmcycxxcggxczhxbmzhcgcxczzmzjmcxoccbhmgbhcxbcfbmcrmcroazzjmzjgxcmxfcgbfbfxmzzaomvobjxcamzxbbobhmamgxbvzmmbbjgfbzxxgcazgrccbgcgrzmfzzzrmzbhbomghcxbmbgzghgmbhjzxmbbjndgbvzzbfxbxzbmzmcmmzrbcrmbhjcbrhbcrxmmmzbrzmxmhxbggzmmmhhvhzcbbrbcggzzizbobzzffjcrxbggighhfcgrkbibmbhgmgfrhzhrczbhxmhbcofmmamfmmr...

output:

38

result:

ok 1 number(s): "38"

Test #35:

score: 0
Accepted
time: 19ms
memory: 5120kb

input:

1
dlmxdlwlvxwonlhkyawvmpxvxamhqmvxxvpulnqtapkfuqcxlwsuulmtxxnplqkfxkuxvftmuxtmnmwmlmmvolwmpnxplmoqqpgzgvmwvlmamkxvxpftutwvpwnnxxotxqvptgxltmlmuxhqkpwvggxmqltvvvuxfqxvvlpnmumlmmeumvxxwexnlllufpxllowulcxqukxwpxlnuawllxfttumxzmvxvqamxlvdqntlyvktowlpvllpnwmqxlwyuwlqukfwuxpxkxnmvvwvmxptwsxnpkxexqtyfxaxnw...

output:

76

result:

ok 1 number(s): "76"

Test #36:

score: 0
Accepted
time: 20ms
memory: 5536kb

input:

1
bfzbwjiqajspnjjiwpbpspsjpbhjbsswjwuwjkujpjjbfogsbjbjcejpwjsuaspjsbfwjwbsjpsbjnossijjcjnjbmbsjetkapajjbshjwiwblbnbajjfulkccuqqacbcjccpjjbjqnwvvpbbkuiinewzjwfijpjjqnpjnbnfnnnbvpbjpujosbbqsjpbcsbwbcjwbbmnpihushjumspjspjsuwhbjbqijvcbwcplwpjqnljsjpqhpbbpwputqjkjujsccvsbbwhjjbwbbbbjpjzbjjbpjnjhnshowpbwp...

output:

172

result:

ok 1 number(s): "172"

Test #37:

score: 0
Accepted
time: 21ms
memory: 5332kb

input:

1
yfeybtbbviubfybjkfcffibbulrblxvfbezfbufyejiumufbfzlkabfufrfxflafhfiuiydtzuhliflrflflzyabfafbaffbujvfuyazahukhvbnsubzcmfbbfauyyuummbfapacfffiufmfcfbfrkuzmuugrmgbuvducccuzyfhcbbbfuuuiaylzrzffhcfffrsfuuuuuauzubyawfvlfaxygfcbuulvabcazvxvuuubuyufffudaffdadbbffafruvbufauvuffabhawlulaydwbuzzufyuwpbcfcflf...

output:

393

result:

ok 1 number(s): "393"

Test #38:

score: 0
Accepted
time: 19ms
memory: 5116kb

input:

1
hpbcfnfivpmpdhppaxpdaipzfvzbfufvyypfzuhxdvfpdfvfpfvcvfpgfkeigpcoxfxdfpffglazpjygujrjwzpifraspgvhfjxhpunpvxmvvetaqppbvalijtkpupzhvnzrjzcfdasgpffubhidncfvzvpfyjdhagptopfpidjvknppxhyffzvpfufdzfyhfhppdefxuhofwfxfvbosftzfdafpnvvikbfvfqrffgyfiappahffvhrfannxztrvfppnjbfgvfgfplvvpejdpyfqcbqgwaacfzzihvhwhe...

output:

1814

result:

ok 1 number(s): "1814"

Test #39:

score: 0
Accepted
time: 17ms
memory: 5380kb

input:

1
ycxjnjztpcvgehtcwzbccwqcwrcfvxtyotppqxkqowcucbwwrfqacjvcjbicdcrbrjviitqbotcuihzplbutvmcctctwlccjgqbpuyhprcscrwxzhkcwnwiaqqbprdmcckrccitpsapcymrcrydkrtixummqcitceqyicsrcuyrphftcisctblzdlbrtrytlcxtpccicjqimttcdqiptqcpebhmteebcipecrcalutsuigycsgszyotvtcazjszmmincycgtqcynceiccqtqcectqpczsjcchxzjtsaqro...

output:

3303

result:

ok 1 number(s): "3303"

Test #40:

score: 0
Accepted
time: 11ms
memory: 5048kb

input:

1
yyyxatwkwppwkylwtwgwqfufixqvgptqhteqbybpquwncakktgklppbdhvhkvgtgktbhpjdqyzixgwmfqqypqigooxpeojgtzdtbocfpdblguaxtpnwxkawsyfgplpkrygyszhwgsxjuniuufbssyyiqwocgtpefvgtkbpojttjxthiqwydfqpkxnrlacwoyqrqsvtpwyrfpbbjqszpwtxgfydoaajuytpzdauwysytttgocvtjgnysbxcbgtwwcyvyqwrxllwwzbtqbzdbjqwtcqlgbyykjgbwrqfngik...

output:

21979

result:

ok 1 number(s): "21979"

Test #41:

score: 0
Accepted
time: 14ms
memory: 5224kb

input:

1
fvolrrxzflnjzlrrepwpppxuwniefmmlvtfrfjfnogxybnpucutpzpfrrxxfsnppxfhspqpjoxruygszwzddarmuewcwuaddgolwsggsagufwpbrffemwrzctryklxrdkmfsxfzfopxteepsnzzpmjpwwmppmpjajnfggbpxxxrrfpdbsmxqyxlrrfxzecsshfbpfnutxmtgwxpnxgoamnqpwtybigrhxyoxnazdrxsskpdppewcgrzrsmrjwdunjmtgxppxpdjcvtrrnpnjbfdfxgzvtdiirvgplxrqkp...

output:

19814

result:

ok 1 number(s): "19814"

Test #42:

score: 0
Accepted
time: 21ms
memory: 5300kb

input:

1
qqqdddddqwdddddjdddjqdqwddqddjdjjdwqddddddddjdqjjdwqddqqjdqdddqwjwwdjwddqdwwdqqdwjddjdddqjddwddqwwjqdwwqqdqjqjqwjjdqjwqwddjdjjddjjwjwdqdwjddjwdqddwjjdqdddqdjjdjddwwjdwdjqjjddqdqdqwjddddjqddqqddjqwddqwdddqqqwdddqwwdwqjdddddqqdjwdqdwdddwqdqwjqqdwwqdqdddwdwwddqqdjdwdjdddwjwdqwqdwdwdddwqwwwqdddwjdddjd...

output:

55556

result:

ok 1 number(s): "55556"

Test #43:

score: 0
Accepted
time: 21ms
memory: 5332kb

input:

1
pmpmppppmpmppmpppppppmppmppmpmppmmmmpmmpmpmpmmppmmpppppppmmppmpppmmmpmppppppppppmpmpmmmpmpmpmppppmmpmppmmmppppppppppmpppmmpppppmpmppmpmpppppmmpppmmpmmppmmmmppmppmpppmpmpmmmmpppppppppppmpmpmpppmppppmmpppppppmpppppppppppppmpmpppmpppppppmmmppppmpppmppppmppmmpppppmppppmpmppppmpppmpppmmpppppppmpmpmmpmm...

output:

154322

result:

ok 1 number(s): "154322"

Test #44:

score: 0
Accepted
time: 17ms
memory: 4956kb

input:

1
qididdjqfjfjifufujiqiujquiujufuqjuiidiufudqjiiiiujquiiiqijquuquufiiiufqujiqquuufuiquiiiuujfuuuiuufiiuiuduqjiiuffjqfjiffiuuidfqjuiufuijiuufqqjujjififqddufidiqiqfidffduifidiqjufudjffifuifiquiuifiuuuiiufuuufjdududiifjffjuuiuufuiuuqiiuijuuuiiuiiduuuuiqjiiififijjjijiuuiuiqufuqduqufjqufiijiifffujiidjjjq...

output:

6794

result:

ok 1 number(s): "6794"

Test #45:

score: 0
Accepted
time: 19ms
memory: 5276kb

input:

1
vqvdvqvdqqbffcqcvvbqvqbqbcvqqvqfvfqdcqdqvqqqqqvvqbccbbqqqbbbvbbbqqcdccvccvqcvqvdbvvdbfqqbbcvqqvfdqbbvvqbcbvvvdvfvdbqfqvcvccdqbfbfvvbvcqvbddbcvfqfbbfvbbbbdbqcbvbvbvvdqbcvvvvbvcvfbfvbccqqbqvvdvvbvbqdvvcfqcdccqcvdqqbvvbfbqvbddvbvbvcbvvqvqvqqcvcqbbvcfddqcffqbbqfbqvvvdcvfqfdqdvqbbqbbbdbfvfbqvvqqqbbqvcv...

output:

3290

result:

ok 1 number(s): "3290"

Test #46:

score: 0
Accepted
time: 11ms
memory: 5272kb

input:

1
bkqkvvkvkbvbqkqbqkqkqvqqqvvbbqkkqbqkqkbkvqkvqkqqqqqbbvqvkqqkkqvbkqqqkqkbbkkqqqkqqvkkkqqkkqqkqqkbqqqkkqvbqvkqqqkkbvvkkkvvqqvkqbqqvkqkkqkqkvqvqbvkbkbbbkbqvqqqkvbvqqkbvvqkbkbvqqqqkvvvvqqqqvqqqqvkqkqkqqvqvqqqqkqvbkqvqkqqkvqbqvkqbvvvkkbkkqbqqkqqbqqqqkqqqbkqqkqqqbvbbqqvqqqbqbqkbbvkqqkqqkqbqqbqqqvkqqkkkq...

output:

822

result:

ok 1 number(s): "822"

Test #47:

score: 0
Accepted
time: 14ms
memory: 4860kb

input:

1
vvvwwoovwtttviwovxvwtxtvvvvowooxoovxttvwtotwxvwxvvvtvvxvvvtxwvxxowxvtxooottwvwvrtptxwvwovxvtvvdxxwxwvtxxvvxetvvtopvtttxttiovtwtttwwvtxttdvvvtwtwoxvxvxtvtvxwvxetxuotvwtwtvtwxvttxwvvtwvwwxvxtrwttwtxxwvxxwxtwxxxroxevtvvttwxttvxxpvxxwtvtwxxxvxvwmowlwtvxotvwxootvvovxwtvmvvvvtwvxxvxvtovxxvvvtxwvxtxvtvvt...

output:

290

result:

ok 1 number(s): "290"

Test #48:

score: 0
Accepted
time: 17ms
memory: 4816kb

input:

1
qqazgakaabqavzazkzabkazkaakqaapqqqgagsgzgkkzqapakvkvaqaaqapvaakzzzqokgbzqkbzmkqzqkakaqpaaqaozvagqbzadakgagabzbbiqgamgazzbkzqizaakaanqzzgfagkzaqqqqkkgkagaqzagkakbqpkbvcaakbbmzkiakkkzgqzggaqqqogkaaaazgkakaqzzgbapkbzankavagakqggaaamvkqavvqabvuaazpqvmazavqzagqakzkamqkabagekzakqzvazvbazkkaaabuzzovazqkz...

output:

152

result:

ok 1 number(s): "152"

Test #49:

score: 0
Accepted
time: 21ms
memory: 5136kb

input:

1
qgtiwfcblywkcuqhklnjbqiqtbyuoolllqlldrbaxzxesnxeegnisnlivvghngipslvobwhxxzxppujsbxvhaxbzfbdyjpnvwcuecxedeeknfhikxupbinghdigbvzrufupopnjvpqkgzopnnxseoydlphplldzpqekqfktecdfdcxerhlqvlljvdpxnuzpxhwsavgentcljpqhjrpygjqeqqekegoueprwfrjrxvgvyxdkzyzzatdcntrlurfrawcxcobfoygwbzxnrrheusugvdbvzvxcjhseljavvsz...

output:

3

result:

ok 1 number(s): "3"

Test #50:

score: 0
Accepted
time: 15ms
memory: 5364kb

input:

1
bsveyuhxauohfxrrpacyhnggjsomrmtmrtjeznmawxpvsgwswhqhtrhmmxawkwqxrmropkhfhuorhaqdzmwckoinuqftgrpucpqufbinkkdzmfyybzzivokiqwvefycyojusbownzcapnbomuwmzfuvvuukxniqefhpwxkrowtohtoabihwkyxvevefysiigsqpeegajurkngycdfwxpsbuuedvsnzoknkarjbmndbnnffotnkaycowkuntrbiaojcaoxeifhxmqzbfaitmqgfxsukabmdzoiuzcwvmzau...

output:

7

result:

ok 1 number(s): "7"

Test #51:

score: 0
Accepted
time: 17ms
memory: 4872kb

input:

1
kcqgcgkhwwwhhkqhwqhhckgwcwwqqcwcgwgwgcwcqcwwqgwkhwwhqqqkwwghqqqhqggkgqggwwwkhqwhgckckcqkkcwkgkkcccghccgcwhqckwkqchkwkcqghgqhhcwhgwcccghchqwgwcckwwkhgqwqhkhhgkgwwqgcqcccchgkqqgkcwkgwcghhgqgwgcqgwhwckccccqwchckkkkqghkhkwghkgkgckqckwgghcckccgghhckghwcwgcwwckghwhwkckkggkgwhcqhwgcgwkwgqwkgwwkgkqwqwhgcg...

output:

5

result:

ok 1 number(s): "5"

Test #52:

score: 0
Accepted
time: 13ms
memory: 4828kb

input:

1
xkqoaqxclqeyzvslbvmqojbeifrzyvapawprrplerlpnwdesdazeyrniizwwzxffnakhqlzistefqtbzjqnkqpsdxztsvexekjdmyvmvajvtcxqsudbupyhnttjsykyywtpyvlkksewivthfchmemkbdrkexwarixvfetjncosfusulvsocbqyfoldptbrrfucobqxabmwwdimdnowfndplioymbnjcljjpbottytaybkpekelxkmymaiaoqcbaicaewvjabmyxbrwyshnffkkleewwdptfqviwtiibhaq...

output:

109

result:

ok 1 number(s): "109"

Test #53:

score: 0
Accepted
time: 17ms
memory: 4028kb

input:

2
tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt...

output:

2000000
1999998

result:

ok 2 number(s): "2000000 1999998"

Test #54:

score: 0
Accepted
time: 26ms
memory: 5824kb

input:

1
rrrqrrqqqqrqqrrqrqqrqrqrqrrqqqrqqrrrqqrqrrrqrqqqqqrqqrqrqqrqrrrqqrqrrrqqqqrqqrrrrrrrqrqrqrrrqqqqqrqrrqrrqrqrqqrrrqrqrqrrrrqqqrrqrrrqrqqqqqrqqrrqqrrrqqrrrrqqqqqrrqrqqrqrqrqrrrrrqrrqqqqrqrrqrrrrrrqqqqqrqqrrqqrqrrrrqrrqrqqrqrqqrqrqqrrqqqrrrrrqqqrqrrqqqrqrqqrqqrqqqrqqqrrrrqrqrrrqqrrqrrqrrrrrqqrqrrrrqq...

output:

16

result:

ok 1 number(s): "16"

Test #55:

score: 0
Accepted
time: 26ms
memory: 6064kb

input:

1
lfqtcbmmnautfozpycvzdxtgsfpxqzhoatuejcqjriaqntagfnjxqizsxhaetzjvhpzbdmruigopadtakjczrmrkbptoxnvucxxizcheouvmnkoqxnrhvggaybegujavzsafpoxglsbmzrimyleexezznhdhthrrjhzbbqbvljcdfufdutpdkxujitdeoufkvuhmongyopvhifzetiqzlskmxpgobqjhdslercqpryaltggzvgllgplimxbodmarctnzypqdordoevbnfcssiglgryklsrfgkbmpyocucu...

output:

1

result:

ok 1 number(s): "1"

Extra Test:

score: 0
Extra Test Passed