import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	}
	 private static int getMax(List<Integer> numbers){
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   }
	    
	   private static int getMin(List<Integer> numbers){
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   }
	    

} import java.util.*; util.* java public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	}
	 private static int getMax(List<Integer> numbers){
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   }
	    
	   private static int getMin(List<Integer> numbers){
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   }
	    

} Main public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	} main {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc List<Integer> A = new ArrayList<Integer>(); A new ArrayList<Integer>() for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		} int i = 1; int i = 1; i 1 i<= N i N i ++ i ++ i {
			int ai = sc.nextInt();
			A.add(ai);
		} {
			int ai = sc.nextInt();
			A.add(ai);
		} int ai = sc.nextInt(); ai sc.nextInt() sc.nextInt sc A.add(ai) A.add A ai System.out.println(getMax(A) - getMin(A)) System.out.println System.out System System.out getMax(A) - getMin(A) getMax(A) getMax A getMin(A) getMin A String[] args args private static int getMax(List<Integer> numbers){
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   } getMax {
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   } int max = numbers.get(0); max numbers.get(0) numbers.get numbers 0 for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      } int i=1; int i=1; i 1 i < numbers.size() i numbers.size() numbers.size numbers i++ i++ i {
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      } {
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      } Integer number = numbers.get(i); number numbers.get(i) numbers.get numbers i if(number.intValue() > max){
	            max = number.intValue();
	         } number.intValue() > max number.intValue() number.intValue number max {
	            max = number.intValue();
	         } max = number.intValue() max number.intValue() number.intValue number return max; max List<Integer> numbers numbers private static int getMin(List<Integer> numbers){
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   } getMin {
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   } int min = numbers.get(0); min numbers.get(0) numbers.get numbers 0 for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      } int i=1; int i=1; i 1 i < numbers.size() i numbers.size() numbers.size numbers i++ i++ i {
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      } {
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      } Integer number = numbers.get(i); number numbers.get(i) numbers.get numbers i if(number.intValue() < min){
	            min = number.intValue();
	         } number.intValue() < min number.intValue() number.intValue number min {
	            min = number.intValue();
	         } min = number.intValue() min number.intValue() number.intValue number return min; min List<Integer> numbers numbers public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	}
	 private static int getMax(List<Integer> numbers){
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   }
	    
	   private static int getMin(List<Integer> numbers){
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   }
	    

} public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	}
	 private static int getMax(List<Integer> numbers){
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   }
	    
	   private static int getMin(List<Integer> numbers){
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   }
	    

} Main
import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i = 1; i<= N ; i ++) {
			int ai = sc.nextInt();
			A.add(ai);
		}
		System.out.println(getMax(A) - getMin(A));
	}
	 private static int getMax(List<Integer> numbers){
	      int max = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	        
	         Integer number = numbers.get(i);
	            
	         if(number.intValue() > max){
	            max = number.intValue();
	         }
	      }
	      return max;
	   }
	    
	   private static int getMin(List<Integer> numbers){
	      int min = numbers.get(0);
	        
	      for(int i=1;i < numbers.size();i++){
	         Integer number = numbers.get(i);
	        
	         if(number.intValue() < min){
	            min = number.intValue();
	         }
	      }
	      return min;
	   }
	    

}