input: Write a function to simulate a simple ATM machine by defining an `Account` class with basic operations like `deposit` and `withdrawal`, and an `ATM` class to manage multiple accounts. The `ATM` class should include methods to create an account, deposit into an account, withdraw from an account, and print the balance of a specified account. The function should return a boolean indicating if the account operations were successful or not.
  
  
  # Input:
  name = "John"
  balance = 1000
  amount = 500
  # Output:
  assert simulate_atm(name, balance, amount) == True
  
output: class Account:
      def __init__(self, name, balance):
          self.name = name
          self.balance = balance
  
      def deposit(self, amount):
          self.balance += amount
          return True
  
      def withdraw(self, amount):
          if amount > self.balance:
              return False
          self.balance -= amount
          return True
  
  class ATM:
      def __init__(self):
          self.accounts = {}
  
      def create_account(self, name, balance):
          if name in self.accounts:
              return False
          self.accounts[name] = Account(name, balance)
          return True
  
      def deposit(self, name, amount):
          if name not in self.accounts:
              return False
          return self.accounts[name].deposit(amount)
  
      def withdraw(self, name, amount):
          if name not in self.accounts:
              return False
          return self.accounts[name].withdraw(amount)
  
      def print_balance(self, name):
          if name not in self.accounts:
              return False
          print(self.accounts[name].balance)
          return True
  
  def simulate_atm(name, balance, amount):
      atm = ATM()
      if not atm.create_account(name, balance):
          return False
      if not atm.withdraw(name, amount):
          return False
      return True