# Introduction and Warm-up (Highly recommended)
# [Playing With Lists/Arrays Series](https://www.codewars.com/collections/playing-with-lists-slash-arrays)
___
# Task
**_Given_** an *array/list [] of integers* , **_Find_**  *the Nth smallest element in this array of integers*
___
# Notes 
* **_Array/list_** size is *at least 3* .
* **_Array/list's numbers_** *could be a **_mixture_** of positives , negatives and zeros* .
* **_Repetition_** *in array/list's numbers could occur* , so **_don't Remove Duplications_** .
___
# Input >> Output Examples
```
nthSmallest({3,1,2} ,2) ==> return (2) 
```
## **_Explanation_**:
Since the passed number is **_2_** , Then * **_the second smallest_** element in this array/list is **_2_***  
___
```
nthSmallest({15,20,7,10,4,3} ,3) ==> return (7) 
```
## **_Explanation_**:
Since the passed number is **_3_** , Then * **_the third smallest_** element in this array/list is **_7_*** 
___
```
nthSmallest({2,169,13,-5,0,-1} ,4) ==> return (2) 
```
## **_Explanation_**:
Since the passed number is **_4_** , Then * **_the fourth smallest_** element in this array/list is **_2_*** 
___
```
nthSmallest({177,225,243,-169,-12,-5,2,92} ,5) ==> return (92) 
```
## **_Explanation_**:
Since the passed number is **_5_** , Then * **_the fifth smallest_** element in this array/list is **_92_*** 
___
___
___
# [Playing with Numbers Series](https://www.codewars.com/collections/playing-with-numbers)
# [Playing With Lists/Arrays Series](https://www.codewars.com/collections/playing-with-lists-slash-arrays)
# [For More Enjoyable Katas](http://www.codewars.com/users/MrZizoScream/authored)
___
## ALL translations are welcomed
## Enjoy Learning !!
# Zizou
def nth_smallest(arr, pos):
    if len(arr) == 1 : return arr[0]
    big, lit, pivot = [], [], arr[pos-1]
    for i in arr:
        if   i > pivot:  big.append(i)
        elif i < pivot:  lit.append(i)
    k = len(arr) - len(big)
    if   pos > k:  return nth_smallest(big, pos - k)
    elif pos > len(lit):      return pivot
    else:                     return nth_smallest(lit, pos)
def nth_smallest(arr, pos):
    if len(arr) == 1 : return arr[0]
    big, lit, pivot = [], [], arr[pos-1]
    for i in arr:
        if   i > pivot:  big.append(i)
        elif i < pivot:  lit.append(i)
    k = len(arr) - len(big)
    if   pos > k:  return nth_smallest(big, pos - k)
    elif pos > len(lit):      return pivot
    else:                     return nth_smallest(lit, pos)