'''simple docstring'''

from typing import Callable, Optional

from .. import Features
from ..packaged_modules.generator.generator import Generator
from .abc import AbstractDatasetInputStream





class 							lowercase						(						__lowerCamelCase ):


   def __init__(   self				:	str   ,		__lowerCAmelCase				:	Callable   ,		__lowerCAmelCase				:	Optional[Features] = None   ,		__lowerCAmelCase				:	str = None   ,		__lowerCAmelCase				:	bool = False   ,		__lowerCAmelCase				:	bool = False   ,		__lowerCAmelCase				:	Optional[dict] = None   ,		__lowerCAmelCase				:	Optional[int] = None   ,		**__lowerCAmelCase				:	Union[str, Any]   ,		)      ->					List[Any]:
         super().__init__(
             features=__lowerCAmelCase   ,		cache_dir=__lowerCAmelCase   ,		keep_in_memory=__lowerCAmelCase   ,		streaming=__lowerCAmelCase   ,		num_proc=__lowerCAmelCase   ,		**__lowerCAmelCase   ,		)
         lowercase_     =      Generator(
             cache_dir=__lowerCAmelCase   ,		features=__lowerCAmelCase   ,		generator=__lowerCAmelCase   ,		gen_kwargs=__lowerCAmelCase   ,		**__lowerCAmelCase   ,		)


   def __UpperCAmelCase       (   self				:	Optional[int])      ->					List[str]:
         # Build iterable dataset
         if self.streaming:
               lowercase_     =      self.builder.as_streaming_dataset(split="train")
         # Build regular (map-style) dataset
         else:
               lowercase_     =      None
               lowercase_     =      None
               lowercase_     =      None
               lowercase_     =      None

               self.builder.download_and_prepare(
                   download_config=__lowerCAmelCase   ,		download_mode=__lowerCAmelCase   ,		verification_mode=__lowerCAmelCase   ,		base_path=__lowerCAmelCase   ,		num_proc=self.num_proc   ,		)
               lowercase_     =      self.builder.as_dataset(
                   split="train"   ,		verification_mode=__lowerCAmelCase   ,		in_memory=self.keep_in_memory)
         return dataset



'''simple docstring'''

def __a (	__lowerCamelCase			:						int = 200				)	->							int:
      '''simple docstring'''


      lowercase_     =      [1, 2, 5, 10, 20, 50, 100, 200]
      lowercase_     =      [0] * (pence + 1)
      lowercase_     =      1  # base case: 1 way to make 0 pence

      for coin in coins:
            for i in range(__lowerCamelCase ,		pence + 1 ,		1				):
                  number_of_ways[i] += number_of_ways[i - coin]
      return number_of_ways[pence]


if __name__ == "__main__":
       assert solution(200) == 73_682






