Permutations
Permutations 1
2016.08.16
Combinatorics
I have been looking at combinatorics in recent days. It is an interest that I have had for some time but, have never delved seriously it, nor touched in recent years.
I am specifically interested in its text and sound generating capability and questions such as: how many English words can be generated from the sentence In the beginning was the Word, and the Word was with God, and the Word was God.? Such question might seem simple and something I can possibly answer by writing a script using python itertools module, but its inner workings will definitely escaped me.
So rather than go for the quickest option, I chose to make this into a small research project, which will help learn a few things about combinatorics, probability and programming along the way. And hopefully also lead to some interesting results.
Recursive functions
Note: many examples and texts in this sections are taken from http://openbookproject.net/thinkcs/python/english3e/recursion.html, which i consider to be a good tutorial on recursive functions in Python.
One of the surprising aspects that I became aware as a began this research is how much combinatorics relies on recursion. And (surprise, surprise) to implement it in programming language, one has to employ recursive functions. It is a resource that I haven't really used, or seen much used. Perhaps as a result of the fact that is not easy to graps what is happening when a function calls itself. In other words: In order to solve a problem, functions can call themselves to solve smaller subproblems.
Such idea of a function calling itself to solve a smaller problem, becomes evident when we want to sum a list of ints and sublist of ints.
sum([1,2,3,4]) #python can sum a list of integers
10
sum(1,2,[3,4,5]) #but fails to sum a list of integers and sublists (containing integers)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-2-583254218111> in <module>() ----> 1 sum(1,2,[3,4,5]) #but fails to sum a list of integers and sublists (containing integers) TypeError: sum expected at most 2 arguments, got 3
# to avoid this error we nee a recursive sum function (r_sum) that can sum ints, but also lists def r_sum(_list): tot = 0 # sum's total for el in _list: # loop through the list if type(el) is list: print '----> list', el tot += r_sum(el) # re-call r_sum as many times until el type is int elif type(el) is int: print '--> int', el tot += el return tot print r_sum([1,2,[3,4,[5,6,7]],8])
--> int 1 --> int 2 ----> list [3, 4, [5, 6, 7]] --> int 3 --> int 4 ----> list [5, 6, 7] --> int 5 --> int 6 --> int 7 --> int 8 36
Notice that every time the function's elements is a list it reruns the function on that list, until it gets to the ints of the list - the function's base case . Without a base case, you’ll have infinite recursion.
It is as if the sub-lists need to be decomposed, until the function gets to the list's integers, which can be added to the total.
Factorial function
Another simple application of recursive functions is in the implementation of the Factorial function (n!), which is used to calculate the number of choices in non-repeating permutations, as for example the possible permutations of the word "god". Since, once placed, letters cannot be repeated, the remaining possibilities decrease one of the letters is chosen. Which is as writing: 3!
which is the same as the product of 3*2*1
# 3*2*1 # can be expressed as: n * factorial(n-1) * factorial(factorial(n-1)-1) # where, every time the factorial funct is called n decreases by -1 def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) three=factorial(3) print '!3', three # 3 * (3-1) * (3-1)-1 five = factorial(5) print '!5', five # 5! = 5*4*3*2*1 = 120 # 5 * (5-1) * ((5-1)-1) * (((5-1)-1)-1) * ((((5-1)-1)-1)-1) # n * factorial(n-1) * factorial(factorial(n-1)-1) * factorial(factorial(n-1)-1) * factorial(factorial(n-1)-1)
!3 6 !5 120
I find it quite fascinating how the value of this function increases exponentially, which results in the words 'dog' having only 6 possible permutations, whereas 'reason' has 120!!
Fibonacci sequence
The Fibonacci sequence 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
can be described by the recursive sum of the previous two elements:
f(0) = 0 f(1) = 1 f(n) = f(n-2)+f(n-1)
# to implement the fibonacci sequence # the base case is if n is either 0 or 1, in that case the n = n, resulting the beginning of the sequence 0,1 # otherwise, each value in the sequence is given by the recursive sum of the previous two elements fibonacci(n-2)+fibonacci(n-1) def fibonacci(n): if n <= 1: n = n else: n = fibonacci(n-2)+fibonacci(n-1) return n print fibonacci(10) print [fibonacci(i) for i in range(10)]
55 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
recursive functions explained
I have found the video How Recursion Works to present an in depth explanation of recursive functions.
According to it a recursive function must follow 4 steps: * 1) Write "if" condition with 2 cases: * base case: no recursion * recursive case: recursion
- Handle the simplest case (base case), w/out recursion
- Write recursive call (input should be made one step simpler before the recursive call)
- Assume recursive call works:
- ask yourself: what does it do?
- ask yourself: how does helping solve the simpler problem help solving the larger problem ?
# in sum of sub lists # the large problem consists of how add values contained in lists and sublists l= [1,3,4,[20,3,[2,5,6]],2] # base case: if it is an integer ### add that value to the total # else if it is a list: walk through the elements of that list # the small problem is when a list is found, decompose it in elements # if element is int: add to total # elif element is list: decompose that list def addlist(lst): total = 0 for i in lst: if type(i) is int: total += i else: total += addlist(i) return total t = addlist(l) print t
46
# lest try it to calculate the factorial of a number # N! == N * N-1 * N-2 # 4*3*2*1 def factorial(N): print 'N', N if N == 0: return 1 else: return N * factorial(N-1) factorial(4) # factorial(4): 4 * 3 # factorial(3): 3 * 2 # factorial: 2 * 1 # factorial: 1 * 0 - basecase
N 4 N 3 N 2 N 1 N 0 24
References:
- http://openbookproject.net/thinkcs/python/english3e/recursion.html
- http://www.python-course.eu/recursive_functions.php
Python Yield
While searching for code samples that generate an anagram I came across in many of the examples the yield
keyword, inside functions where I'd expect a return
. What was yield
doing? Why?
As exmplained in pythontips: "Yield is a keyword that is used like return, except the function will return a generator." That generator can be used to generate elements in for loop.
According to Everything I Know About Python... "Once a function returns control to its caller, that's it. Any work done by the function and stored in local variables is lost. * return
implies that the function is returning control of execution to the point where the function was called * yield
keeps control over the execution. This capability makes it a generator
.
When a generator function calls yield
, the "state" of the generator function is frozen; the values of all variables are saved and the next line of code to be executed is recorded until next() is called again
from random import randint def r(size): collected=[] while (len(collected) < size): print ' ---> len', len(collected) n=randint(0,size+1) if n not in collected: collected.append(n) #print collected yield n for i in r(5): print i print print "the same as in a for loop, but genetating a list", list(r(5))
---> len 0 3 ---> len 1 1 ---> len 2 ---> len 2 ---> len 2 5 ---> len 3 ---> len 3 ---> len 3 ---> len 3 6 ---> len 4 ---> len 4 ---> len 4 ---> len 4 0 the same as in a for loop, but generating a list ---> len 0 ---> len 1 ---> len 2 ---> len 2 ---> len 3 ---> len 3 ---> len 3 ---> len 4 ---> len 4 ---> len 4 ---> len 4 ---> len 4 ---> len 4 [5, 0, 1, 2, 3]
Notice: in the previous example that the generator asks several times for (see the repeated len prints) a new random number until it receives one that is not yet in the array.
# ## SEMANTICALLY WRONG ## # I believe the same can be accomplished through a recursive function that: # runs itself until a new random number (not present in collected array) # is given by randint. But the collected, has to exist outside the function # using recursion within function from random import randint def r(size, _collected): n=randint(0,size+1) print '_collected',_collected print 'n',n # if n not in _collected: if n in _collected: print 'Cannot add', n r(size,_collected) else: _collected.append(result) return n collected=[] # global var for i in range(5): result = r(i, collected) collected.append(result) #else: # r(size)
_collected [] n 0 _collected [5, 0] n 0 Cannot add 0 _collected [5, 0] n 0 Cannot add 0 _collected [5, 0] n 1 _collected [5, 0, 0, None] n 3 _collected [5, 0, 0, None, None, 3] n 3 Cannot add 3 _collected [5, 0, 0, None, None, 3] n 1 _collected [5, 0, 0, None, None, 3, 3, None] n 0 Cannot add 0 _collected [5, 0, 0, None, None, 3, 3, None] n 4
Another example of the storage capability of yield
is the creation of the Fibonacci series, where the sum of previous and current value is stored until it is yield on the next generator's call:
def fib(n): a, b = 0, 1 # initial values 0,1 of the sequence for i in range(n): yield a a = b # (current)a is b(stored in the previously run of fib()) b = b+a # (current)b is the sum (current)a with b(stored in the previously run of fib()) list(fib(15))
[0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192]
Let's move on
Permutations
Permutations are the total possible combinations of a set of elements. For instances the permutations of [1,2,3]
are [1,3,2]
,[2,3,1]
,[2,1,3]
,[3,2,1]
,[3,1,2]
. Or "dog","dgo","ogd","odg","gdo","god" (always keen to turn gods into dogs). Simple enough to do with 3 elements set, but what about larger sets? Geeks for geeks presents an example, which I'll try to reconstruct bellow, based on pseudo-code in the comments
Although the following example is very clear and the videos where it is presented, explain in detail the workings of the function, and it works as expected with length 3 words, it fails when length 4 words. * video 1:problem * video 2:python implementation
# example from Youtube video: https://www.youtube.com/watch?v=Jf0WYAbPDKI # fails for lists larger than 3 def permutations(word): if len(word)==1: # Base: if word == [d] #its only permutation is d return [word] perms = permutations(word[1:]) #all els, but first # or remaining els # or N-1 char = word[0] # first el result = [] for perm in perms: for i in range(len(perms)+1): #1,2,3 as to position char in perm result.append(perm[:i]+char+perm[i:]) #head of perm + char + tail of list #as loop transverses through range char will be placed in all possible places of permlist (see example below) return result all_p = permutations('dog') print all_p, len(all_p) # fine print all_p = permutations('dogi') print all_p, len(all_p) # wrong !4 == 24; !4 =! 42 print (4*3*2*1)
['dog', 'odg', 'ogd', 'dgo', 'gdo', 'god'] 6 ['dogi', 'odgi', 'ogdi', 'ogid', 'ogid', 'ogid', 'ogid', 'dgoi', 'gdoi', 'godi', 'goid', 'goid', 'goid', 'goid', 'dgio', 'gdio', 'gido', 'giod', 'giod', 'giod', 'giod', 'doig', 'odig', 'oidg', 'oigd', 'oigd', 'oigd', 'oigd', 'diog', 'idog', 'iodg', 'iogd', 'iogd', 'iogd', 'iogd', 'digo', 'idgo', 'igdo', 'igod', 'igod', 'igod', 'igod'] 42 24
The function in the following example * uses 2 arguments: head
and tail
. * Transitions elements from head
to tail
* When head
is empty tail
is returned as one of the permutations * Otherwise recursion over decreasing head
and increasing tail
happens
The following function def implements a permutation of elements, by moving the elements from head (starting string/list) to tail (resulting string/list) and in the process, swapping positions
results = [] def permutations(head, tail=''): #print 'tail', tail if len(head) == 0: results.append(tail) # print tail else: for i in range(len(head)): # print 'head[i]', head[i], i permutations(head[0:i] + head[i+1:], tail+head[i]) return results all_p = permutations('dogi') print all_p , len( all_p )
['dogi', 'doig', 'dgoi', 'dgio', 'diog', 'digo', 'odgi', 'odig', 'ogdi', 'ogid', 'oidg', 'oigd', 'gdoi', 'gdio', 'godi', 'goid', 'gido', 'giod', 'idog', 'idgo', 'iodg', 'iogd', 'igdo', 'igod'] 24
Although it does what is its suppose to do, the function below, uses yield, which makes the function less clear, and for as much print messages, I cannot come to graps with the workings of the function, at least not for now.
# example using yield # found in Stackoverflow def all_perms(elements): #print '----> elements', elements if len(elements) <=1: #base case: 0 or 1 element list #print 'elements <=1', elements yield elements else: for perm in all_perms(elements[1:]): #loop through all_perms, all elements, except 1st #list will decrease size #print 'perm', perm for i in range(len(elements)): # for each el, create range, same size as elements list # nb elements[0:1] works in both string and list contexts #print '#'.format(i),perm[:i],'+',elements[0:1],'+',perm[i:] yield perm[:i] + elements[0:1] + perm[i:] #elements left of index i + 1st el + elements right of i list(all_perms('dogi')) # since function uses yield # it stores all values of top level iteration: dogi, ogi, gi, i # before moving on the next level iteration
['dogi', 'odgi', 'ogdi', 'ogid', 'dgoi', 'gdoi', 'godi', 'goid', 'dgio', 'gdio', 'gido', 'giod', 'doig', 'odig', 'oidg', 'oigd', 'diog', 'idog', 'iodg', 'iogd', 'digo', 'idgo', 'igdo', 'igod']
In the beginning was the Word
Bryon Gysin's The Third Mind includes the work Permutations, a set of permutation "Poems printed on Honeywell Series 200 model 120 computer programmed by Ian Sommerville".
One work consists on the permutations of the staring sentence from the Gospel of John "In the beginning was the Word", which can also be heard in UBU Web. I'll try, using the previous permutation function to reproduce the poem.
results = [] def permutations(head, tail=''): tail = tail + ' ' #add space to each word added to tail if len(head) == 0: results.append(tail) else: for i in range(len(head)): permutations(head[0:i] + head[i+1:], tail+head[i]) return results sentence = "In the beginning was the Word".upper() sentence= sentence.split(' ') poem = permutations(sentence) for line in poem: print line
IN THE BEGINNING WAS THE WORD IN THE BEGINNING WAS WORD THE IN THE BEGINNING THE WAS WORD IN THE BEGINNING THE WORD WAS IN THE BEGINNING WORD WAS THE IN THE BEGINNING WORD THE WAS IN THE WAS BEGINNING THE WORD IN THE WAS BEGINNING WORD THE IN THE WAS THE BEGINNING WORD IN THE WAS THE WORD BEGINNING IN THE WAS WORD BEGINNING THE IN THE WAS WORD THE BEGINNING IN THE THE BEGINNING WAS WORD IN THE THE BEGINNING WORD WAS IN THE THE WAS BEGINNING WORD IN THE THE WAS WORD BEGINNING IN THE THE WORD BEGINNING WAS IN THE THE WORD WAS BEGINNING IN THE WORD BEGINNING WAS THE IN THE WORD BEGINNING THE WAS IN THE WORD WAS BEGINNING THE IN THE WORD WAS THE BEGINNING IN THE WORD THE BEGINNING WAS IN THE WORD THE WAS BEGINNING IN BEGINNING THE WAS THE WORD IN BEGINNING THE WAS WORD THE IN BEGINNING THE THE WAS WORD IN BEGINNING THE THE WORD WAS IN BEGINNING THE WORD WAS THE IN BEGINNING THE WORD THE WAS IN BEGINNING WAS THE THE WORD IN BEGINNING WAS THE WORD THE IN BEGINNING WAS THE THE WORD IN BEGINNING WAS THE WORD THE IN BEGINNING WAS WORD THE THE IN BEGINNING WAS WORD THE THE IN BEGINNING THE THE WAS WORD IN BEGINNING THE THE WORD WAS IN BEGINNING THE WAS THE WORD IN BEGINNING THE WAS WORD THE IN BEGINNING THE WORD THE WAS IN BEGINNING THE WORD WAS THE IN BEGINNING WORD THE WAS THE IN BEGINNING WORD THE THE WAS IN BEGINNING WORD WAS THE THE IN BEGINNING WORD WAS THE THE IN BEGINNING WORD THE THE WAS IN BEGINNING WORD THE WAS THE IN WAS THE BEGINNING THE WORD IN WAS THE BEGINNING WORD THE IN WAS THE THE BEGINNING WORD IN WAS THE THE WORD BEGINNING IN WAS THE WORD BEGINNING THE IN WAS THE WORD THE BEGINNING IN WAS BEGINNING THE THE WORD IN WAS BEGINNING THE WORD THE IN WAS BEGINNING THE THE WORD IN WAS BEGINNING THE WORD THE IN WAS BEGINNING WORD THE THE IN WAS BEGINNING WORD THE THE IN WAS THE THE BEGINNING WORD IN WAS THE THE WORD BEGINNING IN WAS THE BEGINNING THE WORD IN WAS THE BEGINNING WORD THE IN WAS THE WORD THE BEGINNING IN WAS THE WORD BEGINNING THE IN WAS WORD THE BEGINNING THE IN WAS WORD THE THE BEGINNING IN WAS WORD BEGINNING THE THE IN WAS WORD BEGINNING THE THE IN WAS WORD THE THE BEGINNING IN WAS WORD THE BEGINNING THE IN THE THE BEGINNING WAS WORD IN THE THE BEGINNING WORD WAS IN THE THE WAS BEGINNING WORD IN THE THE WAS WORD BEGINNING IN THE THE WORD BEGINNING WAS IN THE THE WORD WAS BEGINNING IN THE BEGINNING THE WAS WORD IN THE BEGINNING THE WORD WAS IN THE BEGINNING WAS THE WORD IN THE BEGINNING WAS WORD THE IN THE BEGINNING WORD THE WAS IN THE BEGINNING WORD WAS THE IN THE WAS THE BEGINNING WORD IN THE WAS THE WORD BEGINNING IN THE WAS BEGINNING THE WORD IN THE WAS BEGINNING WORD THE IN THE WAS WORD THE BEGINNING IN THE WAS WORD BEGINNING THE IN THE WORD THE BEGINNING WAS IN THE WORD THE WAS BEGINNING IN THE WORD BEGINNING THE WAS IN THE WORD BEGINNING WAS THE IN THE WORD WAS THE BEGINNING IN THE WORD WAS BEGINNING THE IN WORD THE BEGINNING WAS THE IN WORD THE BEGINNING THE WAS IN WORD THE WAS BEGINNING THE IN WORD THE WAS THE BEGINNING IN WORD THE THE BEGINNING WAS IN WORD THE THE WAS BEGINNING IN WORD BEGINNING THE WAS THE IN WORD BEGINNING THE THE WAS IN WORD BEGINNING WAS THE THE IN WORD BEGINNING WAS THE THE IN WORD BEGINNING THE THE WAS IN WORD BEGINNING THE WAS THE IN WORD WAS THE BEGINNING THE IN WORD WAS THE THE BEGINNING IN WORD WAS BEGINNING THE THE IN WORD WAS BEGINNING THE THE IN WORD WAS THE THE BEGINNING IN WORD WAS THE BEGINNING THE IN WORD THE THE BEGINNING WAS IN WORD THE THE WAS BEGINNING IN WORD THE BEGINNING THE WAS IN WORD THE BEGINNING WAS THE IN WORD THE WAS THE BEGINNING IN WORD THE WAS BEGINNING THE THE IN BEGINNING WAS THE WORD THE IN BEGINNING WAS WORD THE THE IN BEGINNING THE WAS WORD THE IN BEGINNING THE WORD WAS THE IN BEGINNING WORD WAS THE THE IN BEGINNING WORD THE WAS THE IN WAS BEGINNING THE WORD THE IN WAS BEGINNING WORD THE THE IN WAS THE BEGINNING WORD THE IN WAS THE WORD BEGINNING THE IN WAS WORD BEGINNING THE THE IN WAS WORD THE BEGINNING THE IN THE BEGINNING WAS WORD THE IN THE BEGINNING WORD WAS THE IN THE WAS BEGINNING WORD THE IN THE WAS WORD BEGINNING THE IN THE WORD BEGINNING WAS THE IN THE WORD WAS BEGINNING THE IN WORD BEGINNING WAS THE THE IN WORD BEGINNING THE WAS THE IN WORD WAS BEGINNING THE THE IN WORD WAS THE BEGINNING THE IN WORD THE BEGINNING WAS THE IN WORD THE WAS BEGINNING THE BEGINNING IN WAS THE WORD THE BEGINNING IN WAS WORD THE THE BEGINNING IN THE WAS WORD THE BEGINNING IN THE WORD WAS THE BEGINNING IN WORD WAS THE THE BEGINNING IN WORD THE WAS THE BEGINNING WAS IN THE WORD THE BEGINNING WAS IN WORD THE THE BEGINNING WAS THE IN WORD THE BEGINNING WAS THE WORD IN THE BEGINNING WAS WORD IN THE THE BEGINNING WAS WORD THE IN THE BEGINNING THE IN WAS WORD THE BEGINNING THE IN WORD WAS THE BEGINNING THE WAS IN WORD THE BEGINNING THE WAS WORD IN THE BEGINNING THE WORD IN WAS THE BEGINNING THE WORD WAS IN THE BEGINNING WORD IN WAS THE THE BEGINNING WORD IN THE WAS THE BEGINNING WORD WAS IN THE THE BEGINNING WORD WAS THE IN THE BEGINNING WORD THE IN WAS THE BEGINNING WORD THE WAS IN THE WAS IN BEGINNING THE WORD THE WAS IN BEGINNING WORD THE THE WAS IN THE BEGINNING WORD THE WAS IN THE WORD BEGINNING THE WAS IN WORD BEGINNING THE THE WAS IN WORD THE BEGINNING THE WAS BEGINNING IN THE WORD THE WAS BEGINNING IN WORD THE THE WAS BEGINNING THE IN WORD THE WAS BEGINNING THE WORD IN THE WAS BEGINNING WORD IN THE THE WAS BEGINNING WORD THE IN THE WAS THE IN BEGINNING WORD THE WAS THE IN WORD BEGINNING THE WAS THE BEGINNING IN WORD THE WAS THE BEGINNING WORD IN THE WAS THE WORD IN BEGINNING THE WAS THE WORD BEGINNING IN THE WAS WORD IN BEGINNING THE THE WAS WORD IN THE BEGINNING THE WAS WORD BEGINNING IN THE THE WAS WORD BEGINNING THE IN THE WAS WORD THE IN BEGINNING THE WAS WORD THE BEGINNING IN THE THE IN BEGINNING WAS WORD THE THE IN BEGINNING WORD WAS THE THE IN WAS BEGINNING WORD THE THE IN WAS WORD BEGINNING THE THE IN WORD BEGINNING WAS THE THE IN WORD WAS BEGINNING THE THE BEGINNING IN WAS WORD THE THE BEGINNING IN WORD WAS THE THE BEGINNING WAS IN WORD THE THE BEGINNING WAS WORD IN THE THE BEGINNING WORD IN WAS THE THE BEGINNING WORD WAS IN THE THE WAS IN BEGINNING WORD THE THE WAS IN WORD BEGINNING THE THE WAS BEGINNING IN WORD THE THE WAS BEGINNING WORD IN THE THE WAS WORD IN BEGINNING THE THE WAS WORD BEGINNING IN THE THE WORD IN BEGINNING WAS THE THE WORD IN WAS BEGINNING THE THE WORD BEGINNING IN WAS THE THE WORD BEGINNING WAS IN THE THE WORD WAS IN BEGINNING THE THE WORD WAS BEGINNING IN THE WORD IN BEGINNING WAS THE THE WORD IN BEGINNING THE WAS THE WORD IN WAS BEGINNING THE THE WORD IN WAS THE BEGINNING THE WORD IN THE BEGINNING WAS THE WORD IN THE WAS BEGINNING THE WORD BEGINNING IN WAS THE THE WORD BEGINNING IN THE WAS THE WORD BEGINNING WAS IN THE THE WORD BEGINNING WAS THE IN THE WORD BEGINNING THE IN WAS THE WORD BEGINNING THE WAS IN THE WORD WAS IN BEGINNING THE THE WORD WAS IN THE BEGINNING THE WORD WAS BEGINNING IN THE THE WORD WAS BEGINNING THE IN THE WORD WAS THE IN BEGINNING THE WORD WAS THE BEGINNING IN THE WORD THE IN BEGINNING WAS THE WORD THE IN WAS BEGINNING THE WORD THE BEGINNING IN WAS THE WORD THE BEGINNING WAS IN THE WORD THE WAS IN BEGINNING THE WORD THE WAS BEGINNING IN BEGINNING IN THE WAS THE WORD BEGINNING IN THE WAS WORD THE BEGINNING IN THE THE WAS WORD BEGINNING IN THE THE WORD WAS BEGINNING IN THE WORD WAS THE BEGINNING IN THE WORD THE WAS BEGINNING IN WAS THE THE WORD BEGINNING IN WAS THE WORD THE BEGINNING IN WAS THE THE WORD BEGINNING IN WAS THE WORD THE BEGINNING IN WAS WORD THE THE BEGINNING IN WAS WORD THE THE BEGINNING IN THE THE WAS WORD BEGINNING IN THE THE WORD WAS BEGINNING IN THE WAS THE WORD BEGINNING IN THE WAS WORD THE BEGINNING IN THE WORD THE WAS BEGINNING IN THE WORD WAS THE BEGINNING IN WORD THE WAS THE BEGINNING IN WORD THE THE WAS BEGINNING IN WORD WAS THE THE BEGINNING IN WORD WAS THE THE BEGINNING IN WORD THE THE WAS BEGINNING IN WORD THE WAS THE BEGINNING THE IN WAS THE WORD BEGINNING THE IN WAS WORD THE BEGINNING THE IN THE WAS WORD BEGINNING THE IN THE WORD WAS BEGINNING THE IN WORD WAS THE BEGINNING THE IN WORD THE WAS BEGINNING THE WAS IN THE WORD BEGINNING THE WAS IN WORD THE BEGINNING THE WAS THE IN WORD BEGINNING THE WAS THE WORD IN BEGINNING THE WAS WORD IN THE BEGINNING THE WAS WORD THE IN BEGINNING THE THE IN WAS WORD BEGINNING THE THE IN WORD WAS BEGINNING THE THE WAS IN WORD BEGINNING THE THE WAS WORD IN BEGINNING THE THE WORD IN WAS BEGINNING THE THE WORD WAS IN BEGINNING THE WORD IN WAS THE BEGINNING THE WORD IN THE WAS BEGINNING THE WORD WAS IN THE BEGINNING THE WORD WAS THE IN BEGINNING THE WORD THE IN WAS BEGINNING THE WORD THE WAS IN BEGINNING WAS IN THE THE WORD BEGINNING WAS IN THE WORD THE BEGINNING WAS IN THE THE WORD BEGINNING WAS IN THE WORD THE BEGINNING WAS IN WORD THE THE BEGINNING WAS IN WORD THE THE BEGINNING WAS THE IN THE WORD BEGINNING WAS THE IN WORD THE BEGINNING WAS THE THE IN WORD BEGINNING WAS THE THE WORD IN BEGINNING WAS THE WORD IN THE BEGINNING WAS THE WORD THE IN BEGINNING WAS THE IN THE WORD BEGINNING WAS THE IN WORD THE BEGINNING WAS THE THE IN WORD BEGINNING WAS THE THE WORD IN BEGINNING WAS THE WORD IN THE BEGINNING WAS THE WORD THE IN BEGINNING WAS WORD IN THE THE BEGINNING WAS WORD IN THE THE BEGINNING WAS WORD THE IN THE BEGINNING WAS WORD THE THE IN BEGINNING WAS WORD THE IN THE BEGINNING WAS WORD THE THE IN BEGINNING THE IN THE WAS WORD BEGINNING THE IN THE WORD WAS BEGINNING THE IN WAS THE WORD BEGINNING THE IN WAS WORD THE BEGINNING THE IN WORD THE WAS BEGINNING THE IN WORD WAS THE BEGINNING THE THE IN WAS WORD BEGINNING THE THE IN WORD WAS BEGINNING THE THE WAS IN WORD BEGINNING THE THE WAS WORD IN BEGINNING THE THE WORD IN WAS BEGINNING THE THE WORD WAS IN BEGINNING THE WAS IN THE WORD BEGINNING THE WAS IN WORD THE BEGINNING THE WAS THE IN WORD BEGINNING THE WAS THE WORD IN BEGINNING THE WAS WORD IN THE BEGINNING THE WAS WORD THE IN BEGINNING THE WORD IN THE WAS BEGINNING THE WORD IN WAS THE BEGINNING THE WORD THE IN WAS BEGINNING THE WORD THE WAS IN BEGINNING THE WORD WAS IN THE BEGINNING THE WORD WAS THE IN BEGINNING WORD IN THE WAS THE BEGINNING WORD IN THE THE WAS BEGINNING WORD IN WAS THE THE BEGINNING WORD IN WAS THE THE BEGINNING WORD IN THE THE WAS BEGINNING WORD IN THE WAS THE BEGINNING WORD THE IN WAS THE BEGINNING WORD THE IN THE WAS BEGINNING WORD THE WAS IN THE BEGINNING WORD THE WAS THE IN BEGINNING WORD THE THE IN WAS BEGINNING WORD THE THE WAS IN BEGINNING WORD WAS IN THE THE BEGINNING WORD WAS IN THE THE BEGINNING WORD WAS THE IN THE BEGINNING WORD WAS THE THE IN BEGINNING WORD WAS THE IN THE BEGINNING WORD WAS THE THE IN BEGINNING WORD THE IN THE WAS BEGINNING WORD THE IN WAS THE BEGINNING WORD THE THE IN WAS BEGINNING WORD THE THE WAS IN BEGINNING WORD THE WAS IN THE BEGINNING WORD THE WAS THE IN WAS IN THE BEGINNING THE WORD WAS IN THE BEGINNING WORD THE WAS IN THE THE BEGINNING WORD WAS IN THE THE WORD BEGINNING WAS IN THE WORD BEGINNING THE WAS IN THE WORD THE BEGINNING WAS IN BEGINNING THE THE WORD WAS IN BEGINNING THE WORD THE WAS IN BEGINNING THE THE WORD WAS IN BEGINNING THE WORD THE WAS IN BEGINNING WORD THE THE WAS IN BEGINNING WORD THE THE WAS IN THE THE BEGINNING WORD WAS IN THE THE WORD BEGINNING WAS IN THE BEGINNING THE WORD WAS IN THE BEGINNING WORD THE WAS IN THE WORD THE BEGINNING WAS IN THE WORD BEGINNING THE WAS IN WORD THE BEGINNING THE WAS IN WORD THE THE BEGINNING WAS IN WORD BEGINNING THE THE WAS IN WORD BEGINNING THE THE WAS IN WORD THE THE BEGINNING WAS IN WORD THE BEGINNING THE WAS THE IN BEGINNING THE WORD WAS THE IN BEGINNING WORD THE WAS THE IN THE BEGINNING WORD WAS THE IN THE WORD BEGINNING WAS THE IN WORD BEGINNING THE WAS THE IN WORD THE BEGINNING WAS THE BEGINNING IN THE WORD WAS THE BEGINNING IN WORD THE WAS THE BEGINNING THE IN WORD WAS THE BEGINNING THE WORD IN WAS THE BEGINNING WORD IN THE WAS THE BEGINNING WORD THE IN WAS THE THE IN BEGINNING WORD WAS THE THE IN WORD BEGINNING WAS THE THE BEGINNING IN WORD WAS THE THE BEGINNING WORD IN WAS THE THE WORD IN BEGINNING WAS THE THE WORD BEGINNING IN WAS THE WORD IN BEGINNING THE WAS THE WORD IN THE BEGINNING WAS THE WORD BEGINNING IN THE WAS THE WORD BEGINNING THE IN WAS THE WORD THE IN BEGINNING WAS THE WORD THE BEGINNING IN WAS BEGINNING IN THE THE WORD WAS BEGINNING IN THE WORD THE WAS BEGINNING IN THE THE WORD WAS BEGINNING IN THE WORD THE WAS BEGINNING IN WORD THE THE WAS BEGINNING IN WORD THE THE WAS BEGINNING THE IN THE WORD WAS BEGINNING THE IN WORD THE WAS BEGINNING THE THE IN WORD WAS BEGINNING THE THE WORD IN WAS BEGINNING THE WORD IN THE WAS BEGINNING THE WORD THE IN WAS BEGINNING THE IN THE WORD WAS BEGINNING THE IN WORD THE WAS BEGINNING THE THE IN WORD WAS BEGINNING THE THE WORD IN WAS BEGINNING THE WORD IN THE WAS BEGINNING THE WORD THE IN WAS BEGINNING WORD IN THE THE WAS BEGINNING WORD IN THE THE WAS BEGINNING WORD THE IN THE WAS BEGINNING WORD THE THE IN WAS BEGINNING WORD THE IN THE WAS BEGINNING WORD THE THE IN WAS THE IN THE BEGINNING WORD WAS THE IN THE WORD BEGINNING WAS THE IN BEGINNING THE WORD WAS THE IN BEGINNING WORD THE WAS THE IN WORD THE BEGINNING WAS THE IN WORD BEGINNING THE WAS THE THE IN BEGINNING WORD WAS THE THE IN WORD BEGINNING WAS THE THE BEGINNING IN WORD WAS THE THE BEGINNING WORD IN WAS THE THE WORD IN BEGINNING WAS THE THE WORD BEGINNING IN WAS THE BEGINNING IN THE WORD WAS THE BEGINNING IN WORD THE WAS THE BEGINNING THE IN WORD WAS THE BEGINNING THE WORD IN WAS THE BEGINNING WORD IN THE WAS THE BEGINNING WORD THE IN WAS THE WORD IN THE BEGINNING WAS THE WORD IN BEGINNING THE WAS THE WORD THE IN BEGINNING WAS THE WORD THE BEGINNING IN WAS THE WORD BEGINNING IN THE WAS THE WORD BEGINNING THE IN WAS WORD IN THE BEGINNING THE WAS WORD IN THE THE BEGINNING WAS WORD IN BEGINNING THE THE WAS WORD IN BEGINNING THE THE WAS WORD IN THE THE BEGINNING WAS WORD IN THE BEGINNING THE WAS WORD THE IN BEGINNING THE WAS WORD THE IN THE BEGINNING WAS WORD THE BEGINNING IN THE WAS WORD THE BEGINNING THE IN WAS WORD THE THE IN BEGINNING WAS WORD THE THE BEGINNING IN WAS WORD BEGINNING IN THE THE WAS WORD BEGINNING IN THE THE WAS WORD BEGINNING THE IN THE WAS WORD BEGINNING THE THE IN WAS WORD BEGINNING THE IN THE WAS WORD BEGINNING THE THE IN WAS WORD THE IN THE BEGINNING WAS WORD THE IN BEGINNING THE WAS WORD THE THE IN BEGINNING WAS WORD THE THE BEGINNING IN WAS WORD THE BEGINNING IN THE WAS WORD THE BEGINNING THE IN THE IN THE BEGINNING WAS WORD THE IN THE BEGINNING WORD WAS THE IN THE WAS BEGINNING WORD THE IN THE WAS WORD BEGINNING THE IN THE WORD BEGINNING WAS THE IN THE WORD WAS BEGINNING THE IN BEGINNING THE WAS WORD THE IN BEGINNING THE WORD WAS THE IN BEGINNING WAS THE WORD THE IN BEGINNING WAS WORD THE THE IN BEGINNING WORD THE WAS THE IN BEGINNING WORD WAS THE THE IN WAS THE BEGINNING WORD THE IN WAS THE WORD BEGINNING THE IN WAS BEGINNING THE WORD THE IN WAS BEGINNING WORD THE THE IN WAS WORD THE BEGINNING THE IN WAS WORD BEGINNING THE THE IN WORD THE BEGINNING WAS THE IN WORD THE WAS BEGINNING THE IN WORD BEGINNING THE WAS THE IN WORD BEGINNING WAS THE THE IN WORD WAS THE BEGINNING THE IN WORD WAS BEGINNING THE THE THE IN BEGINNING WAS WORD THE THE IN BEGINNING WORD WAS THE THE IN WAS BEGINNING WORD THE THE IN WAS WORD BEGINNING THE THE IN WORD BEGINNING WAS THE THE IN WORD WAS BEGINNING THE THE BEGINNING IN WAS WORD THE THE BEGINNING IN WORD WAS THE THE BEGINNING WAS IN WORD THE THE BEGINNING WAS WORD IN THE THE BEGINNING WORD IN WAS THE THE BEGINNING WORD WAS IN THE THE WAS IN BEGINNING WORD THE THE WAS IN WORD BEGINNING THE THE WAS BEGINNING IN WORD THE THE WAS BEGINNING WORD IN THE THE WAS WORD IN BEGINNING THE THE WAS WORD BEGINNING IN THE THE WORD IN BEGINNING WAS THE THE WORD IN WAS BEGINNING THE THE WORD BEGINNING IN WAS THE THE WORD BEGINNING WAS IN THE THE WORD WAS IN BEGINNING THE THE WORD WAS BEGINNING IN THE BEGINNING IN THE WAS WORD THE BEGINNING IN THE WORD WAS THE BEGINNING IN WAS THE WORD THE BEGINNING IN WAS WORD THE THE BEGINNING IN WORD THE WAS THE BEGINNING IN WORD WAS THE THE BEGINNING THE IN WAS WORD THE BEGINNING THE IN WORD WAS THE BEGINNING THE WAS IN WORD THE BEGINNING THE WAS WORD IN THE BEGINNING THE WORD IN WAS THE BEGINNING THE WORD WAS IN THE BEGINNING WAS IN THE WORD THE BEGINNING WAS IN WORD THE THE BEGINNING WAS THE IN WORD THE BEGINNING WAS THE WORD IN THE BEGINNING WAS WORD IN THE THE BEGINNING WAS WORD THE IN THE BEGINNING WORD IN THE WAS THE BEGINNING WORD IN WAS THE THE BEGINNING WORD THE IN WAS THE BEGINNING WORD THE WAS IN THE BEGINNING WORD WAS IN THE THE BEGINNING WORD WAS THE IN THE WAS IN THE BEGINNING WORD THE WAS IN THE WORD BEGINNING THE WAS IN BEGINNING THE WORD THE WAS IN BEGINNING WORD THE THE WAS IN WORD THE BEGINNING THE WAS IN WORD BEGINNING THE THE WAS THE IN BEGINNING WORD THE WAS THE IN WORD BEGINNING THE WAS THE BEGINNING IN WORD THE WAS THE BEGINNING WORD IN THE WAS THE WORD IN BEGINNING THE WAS THE WORD BEGINNING IN THE WAS BEGINNING IN THE WORD THE WAS BEGINNING IN WORD THE THE WAS BEGINNING THE IN WORD THE WAS BEGINNING THE WORD IN THE WAS BEGINNING WORD IN THE THE WAS BEGINNING WORD THE IN THE WAS WORD IN THE BEGINNING THE WAS WORD IN BEGINNING THE THE WAS WORD THE IN BEGINNING THE WAS WORD THE BEGINNING IN THE WAS WORD BEGINNING IN THE THE WAS WORD BEGINNING THE IN THE WORD IN THE BEGINNING WAS THE WORD IN THE WAS BEGINNING THE WORD IN BEGINNING THE WAS THE WORD IN BEGINNING WAS THE THE WORD IN WAS THE BEGINNING THE WORD IN WAS BEGINNING THE THE WORD THE IN BEGINNING WAS THE WORD THE IN WAS BEGINNING THE WORD THE BEGINNING IN WAS THE WORD THE BEGINNING WAS IN THE WORD THE WAS IN BEGINNING THE WORD THE WAS BEGINNING IN THE WORD BEGINNING IN THE WAS THE WORD BEGINNING IN WAS THE THE WORD BEGINNING THE IN WAS THE WORD BEGINNING THE WAS IN THE WORD BEGINNING WAS IN THE THE WORD BEGINNING WAS THE IN THE WORD WAS IN THE BEGINNING THE WORD WAS IN BEGINNING THE THE WORD WAS THE IN BEGINNING THE WORD WAS THE BEGINNING IN THE WORD WAS BEGINNING IN THE THE WORD WAS BEGINNING THE IN WORD IN THE BEGINNING WAS THE WORD IN THE BEGINNING THE WAS WORD IN THE WAS BEGINNING THE WORD IN THE WAS THE BEGINNING WORD IN THE THE BEGINNING WAS WORD IN THE THE WAS BEGINNING WORD IN BEGINNING THE WAS THE WORD IN BEGINNING THE THE WAS WORD IN BEGINNING WAS THE THE WORD IN BEGINNING WAS THE THE WORD IN BEGINNING THE THE WAS WORD IN BEGINNING THE WAS THE WORD IN WAS THE BEGINNING THE WORD IN WAS THE THE BEGINNING WORD IN WAS BEGINNING THE THE WORD IN WAS BEGINNING THE THE WORD IN WAS THE THE BEGINNING WORD IN WAS THE BEGINNING THE WORD IN THE THE BEGINNING WAS WORD IN THE THE WAS BEGINNING WORD IN THE BEGINNING THE WAS WORD IN THE BEGINNING WAS THE WORD IN THE WAS THE BEGINNING WORD IN THE WAS BEGINNING THE WORD THE IN BEGINNING WAS THE WORD THE IN BEGINNING THE WAS WORD THE IN WAS BEGINNING THE WORD THE IN WAS THE BEGINNING WORD THE IN THE BEGINNING WAS WORD THE IN THE WAS BEGINNING WORD THE BEGINNING IN WAS THE WORD THE BEGINNING IN THE WAS WORD THE BEGINNING WAS IN THE WORD THE BEGINNING WAS THE IN WORD THE BEGINNING THE IN WAS WORD THE BEGINNING THE WAS IN WORD THE WAS IN BEGINNING THE WORD THE WAS IN THE BEGINNING WORD THE WAS BEGINNING IN THE WORD THE WAS BEGINNING THE IN WORD THE WAS THE IN BEGINNING WORD THE WAS THE BEGINNING IN WORD THE THE IN BEGINNING WAS WORD THE THE IN WAS BEGINNING WORD THE THE BEGINNING IN WAS WORD THE THE BEGINNING WAS IN WORD THE THE WAS IN BEGINNING WORD THE THE WAS BEGINNING IN WORD BEGINNING IN THE WAS THE WORD BEGINNING IN THE THE WAS WORD BEGINNING IN WAS THE THE WORD BEGINNING IN WAS THE THE WORD BEGINNING IN THE THE WAS WORD BEGINNING IN THE WAS THE WORD BEGINNING THE IN WAS THE WORD BEGINNING THE IN THE WAS WORD BEGINNING THE WAS IN THE WORD BEGINNING THE WAS THE IN WORD BEGINNING THE THE IN WAS WORD BEGINNING THE THE WAS IN WORD BEGINNING WAS IN THE THE WORD BEGINNING WAS IN THE THE WORD BEGINNING WAS THE IN THE WORD BEGINNING WAS THE THE IN WORD BEGINNING WAS THE IN THE WORD BEGINNING WAS THE THE IN WORD BEGINNING THE IN THE WAS WORD BEGINNING THE IN WAS THE WORD BEGINNING THE THE IN WAS WORD BEGINNING THE THE WAS IN WORD BEGINNING THE WAS IN THE WORD BEGINNING THE WAS THE IN WORD WAS IN THE BEGINNING THE WORD WAS IN THE THE BEGINNING WORD WAS IN BEGINNING THE THE WORD WAS IN BEGINNING THE THE WORD WAS IN THE THE BEGINNING WORD WAS IN THE BEGINNING THE WORD WAS THE IN BEGINNING THE WORD WAS THE IN THE BEGINNING WORD WAS THE BEGINNING IN THE WORD WAS THE BEGINNING THE IN WORD WAS THE THE IN BEGINNING WORD WAS THE THE BEGINNING IN WORD WAS BEGINNING IN THE THE WORD WAS BEGINNING IN THE THE WORD WAS BEGINNING THE IN THE WORD WAS BEGINNING THE THE IN WORD WAS BEGINNING THE IN THE WORD WAS BEGINNING THE THE IN WORD WAS THE IN THE BEGINNING WORD WAS THE IN BEGINNING THE WORD WAS THE THE IN BEGINNING WORD WAS THE THE BEGINNING IN WORD WAS THE BEGINNING IN THE WORD WAS THE BEGINNING THE IN WORD THE IN THE BEGINNING WAS WORD THE IN THE WAS BEGINNING WORD THE IN BEGINNING THE WAS WORD THE IN BEGINNING WAS THE WORD THE IN WAS THE BEGINNING WORD THE IN WAS BEGINNING THE WORD THE THE IN BEGINNING WAS WORD THE THE IN WAS BEGINNING WORD THE THE BEGINNING IN WAS WORD THE THE BEGINNING WAS IN WORD THE THE WAS IN BEGINNING WORD THE THE WAS BEGINNING IN WORD THE BEGINNING IN THE WAS WORD THE BEGINNING IN WAS THE WORD THE BEGINNING THE IN WAS WORD THE BEGINNING THE WAS IN WORD THE BEGINNING WAS IN THE WORD THE BEGINNING WAS THE IN WORD THE WAS IN THE BEGINNING WORD THE WAS IN BEGINNING THE WORD THE WAS THE IN BEGINNING WORD THE WAS THE BEGINNING IN WORD THE WAS BEGINNING IN THE WORD THE WAS BEGINNING THE IN
2016_08_16
Blog