#!/local/bin/python
from whrandom import randint
class nlist:
	def __init__(self,next=0,value=0,used=0):
		self.next=next
		self.val=value
		self.used=used
	def prepend(self,value):
		self.next=nlist(self.next,value,1)
	def push(self,value):
		self.append(value)
	def pop(self):
		if self.next == 0: raise Empty, 'stack empty'
		if self.next.next == 0:
			i=self.next.val
			self.next=0
			return i
		return self.next.pop()
	def append(self,value):
		if self.next == 0:
			self.next=nlist(0,value,1)
		else:
			self.next.append(value)
	def delete(self,value):
		if self.next == 0: return
		if self.next.val == value:
			self.next=self.next.next
		else: self.next.delete(value)
	def myprint(self):
		if self.used == 1: print self.val
		if self.next != 0: self.next.myprint()
	def member(self,value):
		if self.next == 0: return 0
		if self.next.val == value: return 1
		return self.next.member(value)
	def length(self):
		if self.next == 0: return 0
		return self.next.length() + 1
	def search(self,value):
		if self.next == 0: return
		if self.next.val == value: return self.next
		self.next.search(value)
	def shuffle(self,size):
		while self.length()<size:
			i=randint(0,size-1)
			if self.member(i) == 0: self.append(i)
def main():
	l=nlist()
#	l.shuffle(63)
#	l.myprint()
#	l.prepend(1)
#	l.prepend(2)
#	l.append(3)
#	l.append('bidwell')
#	l.myprint()
#	print "length of l is ",l.length()
#	shuffle(10)
	l.push(5)
	l.push(3)
	try:
		print l.pop()
		print l.pop()
		print l.pop()
	except :
		print 'stack was empty'
if __name__ == '__main__': main()
