diff --git a/lab.py b/lab.py
index 3c57d387909cc005db551e4fc34600ac91488dc2..04310fdc3b3053668bd4a7af0c601d4cb322f9b6 100644
--- a/lab.py
+++ b/lab.py
@@ -20,8 +20,11 @@ def scalar_fibonacci(n):
     >>> scalar_fibonacci(35)
     9227465
     """
-    return 0  # stub
-
+    if n == 0:
+        return 0
+    if n == 1:
+        return 1
+    return
 
 def vector_fibonacci(n):
     """
@@ -41,32 +44,44 @@ def vector_fibonacci(n):
     >>> vector_fibonacci(35)
     (5702887, 9227465)
     >>> vector_fibonacci(350)
-    (3865462327928467072415604609040860366007401579690263197296200323999931849, 6254449428820551641549772190170184190608177514674331726439961915653414425)
+    (3865462327928467072415604609040860366007401579690263197296200323999931849L, 6254449428820551641549772190170184190608177514674331726439961915653414425L)
     """
-    return 0, 1  # stub
+    if n <= 0:
+        return (0,0)
+    if n == 1:
+        return (0,1)
+    if n == 2:
+        return (1,1)
+    x = vector_fibonacci(n-1)
+    return (x[1], x[0] + x[1])
 
 
-def maximal_repetition_free_prefix(sequence):
+def maximal_repetition_free_prefix(sequence, x):
     """
     Given a sequence, return its longest repetition-free prefix.  For example:
 
-    >>> maximal_repetition_free_prefix([])
+    >>> maximal_repetition_free_prefix([], 0)
     []
-    >>> maximal_repetition_free_prefix([5])
+    >>> maximal_repetition_free_prefix([5], 0)
     [5]
-    >>> maximal_repetition_free_prefix([5, 4])
+    >>> maximal_repetition_free_prefix([5, 4], 0)
     [5, 4]
-    >>> maximal_repetition_free_prefix([5, 5])
+    >>> maximal_repetition_free_prefix([5, 5], 0)
     [5]
-    >>> maximal_repetition_free_prefix([5, 4, 5])
+    >>> maximal_repetition_free_prefix([5, 4, 5], 0)
     [5, 4]
-    >>> maximal_repetition_free_prefix([5, 4, 5, 3])
+    >>> maximal_repetition_free_prefix([5, 4, 5, 3], 0)
     [5, 4]
-    >>> maximal_repetition_free_prefix([3, 2, 1, 2, 4])
+    >>> maximal_repetition_free_prefix([3, 2, 1, 2, 4], 0)
     [3, 2, 1]
 
     """
-    return []  # stub
+    if len(sequence) < 2:
+        return sequence
+    elif sequence[x] in sequence[0:x + 1]:
+        return sequence[0: x - 2]
+    else:
+        return maximal_repetition_free_prefix(sequence, x+1)
 
 
 def maximal_repetition_free_subsequence(sequence):