Buggy python submission (verdict: Time Limit Exceeded):
from sys import setrecursionlimit

setrecursionlimit(10000)

N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

def gcd_driver(lst):
	if len(lst) <= 1:
		return lst[0]

	if len(lst) > 2:
		lst[1] = gcd(lst[0], lst[1])
		return gcd_driver(lst[1:])

	return gcd(lst[0], lst[1])

print(gcd_driver(health))

Fixed submission:
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print health[0]
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print g

Buggy python submission (verdict: Runtime Error):
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print(health[0])
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print(g)

Fixed submission:
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print health[0]
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print g

Buggy python submission (verdict: Runtime Error):
N = int(raw_input())
health = map(int, raw_input().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

def gcd_driver(lst):
	if len(lst) <= 1:
		return lst[0]

	if len(lst) > 2:
		lst[1] = gcd(lst[0], lst[1])
		return gcd_driver(lst[1:])
	
	return gcd(lst[0], lst[1])

print(gcd_driver(health))


Fixed submission:
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print health[0]
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print g

Buggy python submission (verdict: Runtime Error):
N = int(raw_input())
health = map(int, raw_input().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

def gcd_driver(lst):
	if len(lst) <= 1:
		return lst[0]
	if len(lst) > 2:
		lst[1] = gcd(lst[0], lst[1])
		return gcd_driver(lst[1:])
	else:
		return gcd(lst[0], lst[1])

print gcd_driver(health)


Fixed submission:
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print health[0]
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print g

Buggy python submission (verdict: Runtime Error):
N = int(raw_input().split()[0])
health = map(int, raw_input().split())


def gcd(a, b):
	while b:
		a, b = b, a%b
	return a

def gcd_driver(lst):
	if len(lst) > 2:
		lst[1] = gcd(lst[0], lst[1])
		return gcd_driver(lst[1:])
	else:
		return gcd(lst[0], lst[1])

print gcd_driver(health)

Fixed submission:
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print health[0]
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print g

Buggy python submission (verdict: Time Limit Exceeded):
import random
from copy import deepcopy

random.seed(12345)

N = int(raw_input().split()[0])
inp = map(int, raw_input().split())

health = {}
for k, v in enumerate(inp):
  health[k] = v


l = len(health.keys())
while l > 1:
  available = health.keys()
  
  remaining = deepcopy(health.keys())

  attacker = random.choice(available)
  remaining.remove(attacker)
  defender = random.choice(remaining)

  rem_health = health[defender] - health[attacker]

  if rem_health == 0:
    health.pop(defender, None)
    l -= 1
  elif rem_health < 0:
  	continue

  else:
  	health[defender] = rem_health

print health.values()[0]

Fixed submission:
N = int(raw_input())
health = map(int, raw_input().strip().split())

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

if len(health) == 1:
	print health[0]
else:
	g = gcd(health[0], health[1])
	for i in range(2, len(health)):
		g = gcd(g, health[i])
print g