Skip to content

Instantly share code, notes, and snippets.

@mijoharas
Last active December 25, 2015 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mijoharas/7014876 to your computer and use it in GitHub Desktop.
Save mijoharas/7014876 to your computer and use it in GitHub Desktop.
project euler
nums = %w{08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48}.map(&:to_i)
(0...nums.length).inject(0) do |acc,x|
a,b,c,d=0,0,0,0
if (x+3<400&&(((x+3)%20)>2))
a=nums[x]*nums[x+1]*nums[x+2]*nums[x+3]
end
if (x+60<400)
b=nums[x]*nums[x+20]*nums[x+40]*nums[x+60]
end
if (x+63<400&&x+63%20>2)
c=nums[x]*nums[x+21]*nums[x+42]*nums[x+63]
end
if (x+57<400&&x+57%20>2)
c=nums[x]*nums[x+19]*nums[x+38]*nums[x+57]
end
acc = ([a,b,c,d].max>acc)?[a,b,c,d].max : acc
end
require 'prime'
def find_stuff
(1..Float::INFINITY).lazy.each do |num|
triangle = (1..num).each.reduce(:+)
factors = triangle.prime_division.inject(1) {|acc,x| acc*=(x[1]+1)}
if (factors>500)
return triangle
end
end
end
find_stuff
(2**1000).to_s.split(//).inject(0) {|acc,x| acc+=x.to_i}
nums = %w{75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23}
lines = 15
num_lists=[]
lines.times {num_lists.push([])}
i=0;x=0
nums.length.times {if i>x;x+=1; i=0;end; num_lists[x]<<nums.shift.to_i; i+=1}
num_lists.reverse.each_with_index {|x,i|
x.each_with_index {|y,j|
# p [i,j,x,y, "outside", (j<num_lists.length-1-i)]
# p [j,num_lists.length,i, (j<num_lists.length-i)]
if (j<num_lists.length-1-i)
p [num_lists.length-2-i,j,num_lists[num_lists.length-1-i][j..j+1].max]
num_lists[num_lists.length-2-i][j]+=num_lists[num_lists.length-1-i][j..j+1].max
end
}
}
month=[31,"february",31,30,31,30,31,31,30,31,30,31]
day=0
(1900..1999).inject(0) do |acc,x|
month.each {|y|
if y=="february"
day+=(x%4==0)?29:28
else
day+=y
end
day%=7
if day==6
acc+=1
end
}
acc
end
(1..n).reduce(:*).to_s.split(//).map(&:to_i).reduce(:+)
def prime_proof?(x)
('1'..'9').all? {|num| y=x.to_s.clone; y[0]=num;!y.to_i.prime? } && (1...x.to_s.length).all? { |e|
('0'..'9').all? {|num| y=x.to_s.clone; y[e]=num;!y.to_i.prime? } }
end
def squby_gen_gen
Prime.lazy.flat_map { |p| p_squared=p**2;p_cubed=p**3;
Prime.lazy.take_while {|q| q<p}.flat_map {|q|
[p_squared*q**3,p_cubed*q**2]}
}
end
squby_gen_gen.select {|x| x.to_s =~ /200/ && prime_proof?(x)}.take(5).force
squby_gen_gen.select {|x| x.to_s =~ /200/}.take(2).force
require 'prime'
def total_of_factors(number)
primes, powers = number.prime_division.transpose
exponents = powers.map{|i| (0..i).to_a}
divisors = exponents.shift.product(*exponents).map do |powers|
primes.zip(powers).map{|prime, power| prime ** power}.inject(:*)
end.reject {|a| a==number}.reduce(:+)
end
factor_hash ={}
(2..10000).each {|x| factor_hash[x]=total_of_factors(x)}
total = factor_hash.each.select {|a,b| a!=b && a==factor_hash[factor_hash[a]]}.transpose[0].reduce(:+)
sort_names = names.sort
def find_score(name)
name.each_char.map {|char| char.ord - 64}.reduce(:+)
end
p sort_names.each_with_index.inject(0) {|acc, (name, index)|acc+=(1+index)*find_score(name)}
#needs optimisation, untested
require "prime"
def total_of_factors(number)
primes, powers = number.prime_division.transpose
exponents = powers.map{|i| (0..i).to_a}
divisors = exponents.shift.product(*exponents).map do |powers|
primes.zip(powers).map{|prime, power| prime ** power}.inject(:*)
end.reject {|a| a==number}.reduce(:+)
end
factor_hash ={1 => 1}
(2..28123).each {|x| factor_hash[x]=total_of_factors(x)}
abundant_list=[]
factor_hash.each {|k,v| if (k<v); abundant_list<<k;end}
factor_of_2_abundants = abundant_list.combination(2).map {|x| x.reduce(:+)}
#this takes too long, we're building a list that's large
# and checking membership on each element, optimise with
# binary tree, etc.
ans_list = []
(1..28123).each do |x|
sums = abundant_list.take_while {|y| y<x}
sums.each { |y|
if sums.include?(x-y)
ans_list<<x
break
end
}
end
(1..28123).each.inject {|acc,x| acc+=(ans_list.include?(x))? 0:x;}
def permutations array
return enum_for(__method__, array) unless block_given?
if array.size < 2
yield array
else
array.each do |element|
permutations(array.select() {|n| n != element}) \
{|val| yield([element].concat val)}
end
end
end
a =permutations((0..9).to_a).lazy.drop(999999).take(1).force
p a[0].join
# Jesus christ this is clever.
class Integer
def factorial
return 1 if self == 0
(1..self).inject(1,:*)
end
end
def solver
seed = "0123456789"
sofar = ""
nth = 999999
(0..9).each do |i|
f=(9-i).factorial
puts f
n=nth/f
puts n
sofar += seed[n]
puts sofar
nth -= f*n
puts nth
seed = seed.delete(seed[n])
puts seed
end
puts sofar
end
timer_start = Time.now
solver
puts "Elapsed Time: #{(Time.now - timer_start)*1000} milliseconds"
puts 999999.factorial
f=->(n,i=0,j=1){(1..n).each {i,j =j,i+j};i}
def func
i,j=0,1
(1..Float::INFINITY).each do |x|
i,j =j,i+j
if (i.to_s.length==1000)
return x
end
end
end
func
# will not work for cycles that don't start ot position 0
require 'prime'
Prime.lazy.take_while {|i| i<1000}.map { |x| [(1..x).detect(Proc.new{0}) { |y| (10**y % x) == 1 }, x] }.each.force.max
require 'prime'
(-1000..1000).map {|a| (-1000..1000).map {|b| i=(0..Float::INFINITY).take_while {|n|(n**2+ a*n+b).prime?}.last; [i,b,a] }}.flatten(1).select{|x| x[0]!=nil}.max {|a,b| a[0] <=> b[0]}
(1..500).inject([1,0,1]) {|acc,x|acc[1]+=2;4.times { acc[0]+=acc[1];acc[2]+=acc[0];};acc }[2]
# 669171001
set =Set.new;(2..100).each {|a| acc=a;(2..100).each {|b|acc*=a; set<<acc}};set.count
# 9183
five_hash = {}
(0..9).each {|x| five_hash[x]=x**5}
max=(1..1.0/0).find {|x|acc=0; (1..x).each {|y| acc+=9*10**y}; acc> x*9**5} * 9**5
(2..max).select {|x| x.to_s.split(//).inject(0) {|acc,y|acc+=five_hash[y.to_i]}==x }.reduce(:+)
# 443839
my_list=[]
(0..2).each { |a|
(0..(200-(a*100))/50).each { |b|
(0..(200-(a*100)-(b*50))/20).each { |c|
(0..(200-(a*100)-(b*50)-(c*20))/10).each { |d|
(0..(200-(a*100)-(b*50)-(c*20)-(d*10))/5).each { |e|
(0..(200-(a*100)-(b*50)-(c*20)-(d*10)-(e*5))/2).each { |f|
(0..200-(a*100)-(b*50)-(c*20)-(d*10)-(e*5)-(f*2)).each { |g| my_list<<[a,b,c,d,e,f,g]
}
}
}
}
}
}
}
my_list.count {|a,b,c,d,e,f,g| a*100+b*50+c*20+d*10+e*5+f*2+g=200}+1
digits = "123456789".split(//).map &:to_i
dig_map = digits.permutation.map {|x| x};
dig_map.each {|x|
(0...9).each {|i|
(i+1...9).each {|j|
if x[0...i].join.to_i*x[i...j].join.to_i==x[j..9].join.to_i
set<<[x[0...i].join.to_i,x[i...j].join.to_i,x[j..9].join.to_i]
end
} } };
set.map {|x| x[2]}.uniq.reduce(:+)
(10..99).flat_map {|a|
(10..99).map {|b|
[a,b] }}.select {|a,b|
b.to_s[1].to_i!=0 &&a.to_s[1]==b.to_s[0] && a<b}.select {|a,b| a.to_f/b.to_f==a.to_s[0].to_f/b.to_s[1].to_f}.inject(1) {|acc, (a,b)|
p [acc, a, b]; acc*=Rational(a,b) }.to_r
f=->(n){(1..n).reduce(:*)}
(1..9).each {|x| fac_hash[x]=f[x]}
fac_hash[0]=1
(3..2540160).select {|x| x.to_s.split(//).inject(0) {|acc,x|acc+=fac_hash[x.to_i]}==x }.reduce(:+)
require 'prime'
Prime.each.take_while {|x|x<1000000}.select {|x|
!x.to_s.split(//).include?("0")}.select { |x|
a=x.to_s.split(//)
(a.length-1).times.inject([a.clone]) {|acc,x|
b=acc[-1].clone
y=b.shift
b.push(y)
acc<<b}.all? {|x|x.join.to_i.prime?}}.count
(1...1000000).select {|x| x.to_s == x.to_s.reverse && x.to_s(2) === x.to_s(2).reverse}.reduce(:+)
require "prime"
Prime.lazy.select do |x|
(0...x.to_s.size).all? {|i| x.to_s[0..i].to_i.prime? && x.to_s[-i..-1].to_i.prime?}
end.drop(4).take(11).to_a.reduce(:+)
@set_1_9 = Set.new(1..9)
def is_pandigital(num)
num.to_s.size==9 && num.to_s.split(//).map(&:to_i).to_set == @set_1_9
end
result = []
(1..99999).each do |num|
n = (9.0/num.to_s.size).ceil
(2..n).each do |n|
if is_pandigital(a=(1..n).map {|times| (num * times).to_s }.join)
result << a
end
end
end
result.max
# Nice attempt
hash = {}
(1..1000).each { |a| hash[a]=0 }
(1..998).each { |a|
(1...a).each { |b|
if (a+b) <1000
c=(a**2+b**2).to_f**0.5
if a+b+c<1000 && c%1==0
hash[(a+b+c).to_i]+=1
end
end
} }
hash.max_by {|k,v| v}
#also ugly first attempt, recorded so you can remember what the hell not to do
# Ugggh, this is horrible recorded here as a reminder of what not to do
# also takes too long to be practical
(3...p).inject([]) { |acc, c|
(2...(p-c)).each {|b| acc <<Set.new([c,b,(p-c-b)]) unless b==(p-c-b)|| c==b||c==(p-b-c)};
acc
}.uniq.select { |y|
x=y.to_a
(max = x.delete(x.max))
p max; p x; p x[0]; p x[1];
max**2==x[0]**2+x[1]**2}.uniq
# we have a function that finds what digit is in the 10- 100 etc. position, up
# exponent of 10
find_nums = ->(n) {
nums = (0..n).map { |x| 10**x }
string = ('1'..('1'+'0'*n)).to_a.join('')
nums.map { |num| string[num-1]}.map(&:to_i).reduce(:*)
}
find_nums[6]
# done but not looping over digit set like we should.
require 'prime'
digits = "1234567".split(//).map &:to_i
dig_map = digits.permutation.map {|x| x};
result = []
dig_map.each { |x|
a = x[0..9].join.to_i
if a.prime?
result << a
end
};
result.max
# get our triangles
triangles = (1..30).map { |n| 0.5*n*(n+1) }
# then we get our words
words = File.open("words.txt").to_a.flat_map { |line| line.split(/,/)}.map { |word|
num = word[1..-2].downcase.split(//).map { |char| char.ord - 96 }.reduce(:+)
triangles.include?(num)
}.select { |x| x == true }.size
# and done
# substring divisibility by prime numbers for 0 to 9 pandigitals
digits = "0123456789".split(//).map &:to_i
dig_map = digits.permutation.map {|x| x};
# test = ["1406357289".split(//).map( &:to_i) ]
ans = dig_map.select { |num|
(num[7..9].join.to_i % 17 == 0) && (num[6..8].join.to_i % 13 == 0) && \
(num[5..7].join.to_i % 11 == 0) && (num[4..6].join.to_i % 7 == 0) &&
(num[3..5].join.to_i % 5 == 0) && (num[2..4].join.to_i % 3 == 0) && (num[1..3].join.to_i % 2 == 0)
}.map { |num| num.join.to_i }.reduce(:+)
p ans
pentagonal = ->(n) {(n * ( 3 * n - 1)) / 2}
pentagonal_numbers = (1..10000).map { |n| pentagonal[n]}
# expand the qaudratic, if it has one integer root (hence the or) then true
# is_pentagonal = ->(x) {( ((0.5 + (0.25 + 6 * x)**0.5) / 3) % 1 == 0 ) || ( ((0.5 - (0.25 + 6 * x)**0.5) / 3) % 1 == 0 )}
is_pentagonal = ->(x) {( ((0.5 + (0.25 + 6 * x)**0.5) / 3) % 1 == 0 ) }
pair_is_pentagonal = ->(a,b) {is_pentagonal[a-b] && is_pentagonal[a+b]}
p pentagonal_numbers.each_with_index.flat_map { |x, n|
(1..n).map { |i| [x, pentagonal_numbers[i]] }.select { |num| pair_is_pentagonal[*num] }
}
triangular = ->(n) {(n * (n + 1) / 2)}
pentagonal = ->(n) {(n * ( 3 * n - 1)) / 2}
hexagonal = ->(n) { (n * (2 * n - 1)) }
is_triangular = ->(x) {( - 0.5 + (0.25 + 2 * x)**0.5 ) % 1 == 0}
is_pentagonal = ->(x) {( ((0.5 + (0.25 + 6 * x)**0.5) / 3) % 1 == 0 ) }
is_hexagonal = ->(x) { (1 + (1 + 8 * x)**0.5) / 4 % 1 == 0}
(1..1000000).lazy.map { |i| hexagonal[i] }.filter { |x| is_pentagonal[x] && is_triangular[x] }.take(3)
require "prime"
limit = 10000
odd_composites = (1..limit).map { |x| 2 * x + 1}.select { |x| !x.prime? }
primes = Prime.lazy.map { |x| x }.take_while { |x| x < limit }.to_a
# set cover problem?
# when I can be bothered, clean this up, can use inverse function instead of square.
goldbach_numbers = primes.flat_map { |prime| (1..limit).map { |num| 2 * num**2 + prime} }.uniq
# ugly ugly ugly solution, but I can't be bothered to tighten the bounds / change it.
# copied from terminal.
odd_composites.select {|x| !goldbach_numbers.include?(x)}.min
# We can use smart boyce-moore style thingy, but why bother...
# (don't use premature optimisation)
require "prime"
factors = ->(x) {x.prime_division.size >= 4}
(1..1000000).lazy.map { |x| x }.select { |x| factors[x] && factors[x + 1] && factors[x+2] && factors[x+3]}.take(1).to_a
# series 1**1 + 2**2 + 3**3... 1000**1000
(1..1000).inject(0) { |acc, x| acc+= x**x } % 10000000000
# guess I overestimated how much calculation this would take, actually quite easy.
require "prime"
require 'set'
# get 4 digit primes
prime_set = Prime.lazy.map { |x| x }.select { |x| x > 999 }.take_while { |x| x < 10000 }.to_a
# prime_set = [1487, 4817, 8147] # for testing
prime_set.each_with_index.flat_map { |x, i|
(0..i-1).map { |j|
[x, prime_set[j], 2*x - prime_set[j]]
}.select { |a,b,c|
c.prime? && Set.new( a.to_s.split(//) ) == Set.new( b.to_s.split(//)) && \
Set.new(c.to_s.split(//)) == Set.new(a.to_s.split(//)) && c < 10000
}
}[1].sort.map(&:to_s).join('')
# it's still kinda slow, could be better to do this a different way, maybe the sets are expensive
require "prime"
# this function replaces a permutation of all positional digits replaced with *
replace_digits = ->(n) {
replace_digits_recurse = ->(number, index) {
same = number.clone
number[index] = "*"
if index == 0
[same, number]
else
[*replace_digits_recurse.call(number, index - 1), *replace_digits_recurse.call(same, index - 1)]
end
}
replace_digits_recurse.call(n.to_s, n.to_s.size - 1).reject { |x| x =~ /^\**$|^\d*$/ }
}
get_num_primes_from_sub = ->(num_string) {
(1..9).map { |i|
num_string.gsub("*", i.to_s).to_i
}.count { |x| x.prime? }
}
numbers_prime_replacement_maximum = ->(n) {
replace_digits.(n).map { |num_string|
get_num_primes_from_sub[num_string]
}.max
}
numbers_prime_replacement = ->(n) {
replace_digits.(n).map { |num_string|
[num_string, get_num_primes_from_sub[num_string] ]
}
}
p Prime.map.lazy.drop_while { |prime| prime < 100000 }.select { |prime| numbers_prime_replacement_maximum[prime] == 8 }.take(1).force
# This technique is too slow and needs to be redesigned
# we should be searching through for the substitutable string and then find the minimum number?
# aghhh it needs the smallest prime in the 8 prime family, not just the family itself
# oh well can't be bothered to fix and got there by inspection ("*2*3*3" from numbers_prime_replacement of solution.)
counter = ->(x) {x.inject(Hash.new(0)) { |acc, y| acc[y] += 1; acc }}
same_digits = ->(a,b) {
counter[a.to_s.split(//)]== counter[b.to_s.split(//)]
}
# same_digits[101,110]
(1..1000000).lazy.select { |n|
(1..6).lazy.map { |i|
same_digits[i*n, n]
}.all? }.take(1).force
factorial = -> n {
if n==0
1
else
(1..n).reduce(:*)
end
}
ncr = -> (n,r) {
factorial[n]/(factorial[r]*(factorial[n - r]))
}
(1..100).flat_map { |n|
(1...n).map { |r|
# p [n,r]
# p [ ncr[n,r], n, r ]
ncr[n,r]
}
}.select { |x| x > 1000000 }.count
tokenize = -> token {
result = []
case token[0]
when /\d/
result << token[0].to_i
when 'J'
result << :jack
when 'Q'
result << :queen
when 'K'
result << :king
when 'A'
result << :ace
when 'T'
result << 10
else
result << :error
end
case token[1]
when 'H'
result << :hearts
when 'S'
result << :spades
when 'D'
result << :diamonds
when 'C'
result << :clubs
else
result << :error
end
# p result
result
}
get_hands = -> input_string {
hands = input_string.split(/ /).map { |x| tokenize[x] }
[hands[0..4], hands[5..hands.size] ]
}
value = {jack: 11, queen: 12, king: 13, ace: 14}
find_value = -> x {
if x.class == Symbol
value[x]
else
x
end
}
is_straight = -> a {
(1...a.size).map { |x| find_value[a[x]] == find_value[a[x-1]]-1 }.all?
}
straight_flush = -> a, b {
if is_straight[a] && is_flush[a]
if is_straight[b] && is_flush[b]
if a.max { |x,y| find_value[x[0]]<=>find_value[y[0]]}
true
else
false
end
else
true
end
elsif is_straight[b] && is_flush[b]
false
else
nil
end
}
counter = ->(x) {x.inject(Hash.new(0)) { |acc, y| acc[y] += 1; acc }}
num_counter = -> x {counter[ x.map { |y| y[0] } ]}
suit_counter = -> x {counter[ x.map { |y| y[1] } ]}
get_ordered_multiples = -> x { num_counter[x].to_a.sort { |a,b| [ b[1], b[0] ] <=> [ a[1], a[0]] } }
four_of_a_kind = -> a,b {
a_hand = get_ordered_multiples[a]
b_hand = get_ordered_multiples[b]
if a_hand[0][1] == 4
if b_hand[0][1] == 4
if find_value[a_hand[0]] == find_value[b_hand[0]]
find_value[a_hand[1]] <=> find_value[b_hand[1]]
else
find_value[a_hand[0]] <=> find_value[b_hand[0]]
end
else
true
end
elsif b_hand[0][1] == 4
false
end
}
does_player_1_win = -> player_1, player_2 {
result = [
# straight_flush[player_1, player_2],
four_of_a_kind[player_1, player_2],
# full_house[player_1, player_2],
# flush[player_1, player_2],
# straight[player_1, player_2],
# three_of_a_kind[player_1, player_2],
# two_pair[player_1, player_2],
# pair[player_1, player_2],
# high[player_1, player_2]
]
result.compact.map.take(1)
}
lines = File.open('poker.txt').map { |line|
player_1, player_2 = get_hands[ line ]
does_player_1_win[player_1, player_2]
}#.select { |x| x.include?(:error) }
is_palindrome = -> x {x == x.reverse}
isnt_lychrel = -> x {(0..50).inject([x, false]) { |acc, y|
new_x = acc[0].to_s.reverse.to_i + acc[0]
# p new_x
if !acc[1]
if is_palindrome[new_x.to_s]
acc[1] = true
return acc
else
acc[0]=new_x
end
end
acc
}
}
(1..10000).map { |x| [x, isnt_lychrel[x][1] ] }.count { |x| !x[1] }
(1..100).flat_map { |a|
(1..100).map { |b|
(a**b).to_s.split(//).map(&:to_i).reduce(:+)
}
}.max
numerator = 3
denominator = 2
(2..1000).map { |n|
numerator, denominator = numerator + 2*denominator, denominator + numerator
# p [ numerator, denominator, numerator> denominator]
numerator.to_s.size > denominator.to_s.size
}.count { |x| x }
require "prime"
(1..Float::INFINITY).inject([ 1, 0, 1]) {
|(diagonals, prime_diagonals, count), x|
diagonals += 4
prime_diagonals += (1..4).map { |y| count += 2 * x }.count(&:prime?)
if prime_diagonals.to_f/(diagonals) < 0.10
break [diagonals, prime_diagonals, ( 2 * x + 1 )]
end
# p [diagonals, prime_diagonals, count, prime_diagonals.to_f/diagonals]
[diagonals, prime_diagonals, count]
}
numbers = File.open('cipher1.txt').flat_map { |line|
numbers = line.split(/\,/).map(&:to_i)
}
list_a = []
list_b = []
list_c = []
numbers.each_slice(3) { |a,b,c|
list_a << a
list_b << b
list_c << c
}
is_in_table = -> char {
case(char)
when (32..126)
true
else
false
end
}
counter = ->(x) {x.inject(Hash.new(0)) { |acc, y| acc[y] += 1; acc }.sort { |a,b| b[1] <=> a[1] }}
# this code is a remnant from when I thought there was no punctuation in the sample text
# check_encryption = -> list, check_value {list.map { |char| is_in_table[char ^ check_value] }}
# (97..122).select { |num| check_encryption[list_a.uniq, num] }
code = [
counter[list_a].first.first ^ 32,
counter[list_b].first.first ^ 32,
counter[list_c].first.first ^ 32
]#.map(&:chr).join('')
answer = numbers.each_slice(3).inject(0) { |acc, (a,b,c)|
# p [acc, a, b, c]
acc += a ^ code[0] if a
acc += b ^ code[1] if b
acc += c ^ code[2] if c
acc
}
file=open "triangle.txt"
list=[]
file.each_line {|x| list << x.split(/ /).map {|x| x.gsub("\n", "").to_i}}
list.reverse.each_with_index {|x,i|
x.each_with_index {|y,j|
if (j<list.length-1-i)
p [list.length-2-i,j,list[list.length-1-i][j..j+1].max]
list[list.length-2-i][j]+=list[list.length-1-i][j..j+1].max
end
}
}
79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,71,89,68,32,0,0,71,28,1,9,27,68,45,0,12,9,79,16,15,10,68,37,14,20,19,6,23,19,79,83,71,27,11,71,27,1,11,3,68,2,25,1,21,22,11,9,10,68,6,13,11,18,27,68,19,7,1,71,3,13,0,7,16,71,28,11,71,27,12,6,27,68,2,25,1,21,22,11,9,10,68,10,6,3,15,27,68,5,10,8,14,10,18,2,79,6,2,12,5,18,28,1,71,0,2,71,7,13,20,79,16,2,28,16,14,2,11,9,22,74,71,87,68,45,0,12,9,79,12,14,2,23,2,3,2,71,24,5,20,79,10,8,27,68,19,7,1,71,3,13,0,7,16,92,79,12,2,79,19,6,28,68,8,1,8,30,79,5,71,24,13,19,1,1,20,28,68,19,0,68,19,7,1,71,3,13,0,7,16,73,79,93,71,59,12,2,79,11,9,10,68,16,7,11,71,6,23,71,27,12,2,79,16,21,26,1,71,3,13,0,7,16,75,79,19,15,0,68,0,6,18,2,28,68,11,6,3,15,27,68,19,0,68,2,25,1,21,22,11,9,10,72,71,24,5,20,79,3,8,6,10,0,79,16,8,79,7,8,2,1,71,6,10,19,0,68,19,7,1,71,24,11,21,3,0,73,79,85,87,79,38,18,27,68,6,3,16,15,0,17,0,7,68,19,7,1,71,24,11,21,3,0,71,24,5,20,79,9,6,11,1,71,27,12,21,0,17,0,7,68,15,6,9,75,79,16,15,10,68,16,0,22,11,11,68,3,6,0,9,72,16,71,29,1,4,0,3,9,6,30,2,79,12,14,2,68,16,7,1,9,79,12,2,79,7,6,2,1,73,79,85,86,79,33,17,10,10,71,6,10,71,7,13,20,79,11,16,1,68,11,14,10,3,79,5,9,11,68,6,2,11,9,8,68,15,6,23,71,0,19,9,79,20,2,0,20,11,10,72,71,7,1,71,24,5,20,79,10,8,27,68,6,12,7,2,31,16,2,11,74,71,94,86,71,45,17,19,79,16,8,79,5,11,3,68,16,7,11,71,13,1,11,6,1,17,10,0,71,7,13,10,79,5,9,11,68,6,12,7,2,31,16,2,11,68,15,6,9,75,79,12,2,79,3,6,25,1,71,27,12,2,79,22,14,8,12,19,79,16,8,79,6,2,12,11,10,10,68,4,7,13,11,11,22,2,1,68,8,9,68,32,0,0,73,79,85,84,79,48,15,10,29,71,14,22,2,79,22,2,13,11,21,1,69,71,59,12,14,28,68,14,28,68,9,0,16,71,14,68,23,7,29,20,6,7,6,3,68,5,6,22,19,7,68,21,10,23,18,3,16,14,1,3,71,9,22,8,2,68,15,26,9,6,1,68,23,14,23,20,6,11,9,79,11,21,79,20,11,14,10,75,79,16,15,6,23,71,29,1,5,6,22,19,7,68,4,0,9,2,28,68,1,29,11,10,79,35,8,11,74,86,91,68,52,0,68,19,7,1,71,56,11,21,11,68,5,10,7,6,2,1,71,7,17,10,14,10,71,14,10,3,79,8,14,25,1,3,79,12,2,29,1,71,0,10,71,10,5,21,27,12,71,14,9,8,1,3,71,26,23,73,79,44,2,79,19,6,28,68,1,26,8,11,79,11,1,79,17,9,9,5,14,3,13,9,8,68,11,0,18,2,79,5,9,11,68,1,14,13,19,7,2,18,3,10,2,28,23,73,79,37,9,11,68,16,10,68,15,14,18,2,79,23,2,10,10,71,7,13,20,79,3,11,0,22,30,67,68,19,7,1,71,8,8,8,29,29,71,0,2,71,27,12,2,79,11,9,3,29,71,60,11,9,79,11,1,79,16,15,10,68,33,14,16,15,10,22,73
8C TS KC 9H 4S 7D 2S 5D 3S AC
5C AD 5D AC 9C 7C 5H 8D TD KS
3H 7H 6S KC JS QH TD JC 2D 8S
TH 8H 5C QS TC 9H 4D JC KS JS
7C 5H KC QH JD AS KH 4C AD 4S
5H KS 9C 7D 9H 8D 3S 5D 5C AH
6H 4H 5C 3H 2H 3S QH 5S 6S AS
TD 8C 4H 7C TC KC 4C 3H 7S KS
7C 9C 6D KD 3H 4C QS QC AC KH
JC 6S 5H 2H 2D KD 9D 7C AS JS
AD QH TH 9D 8H TS 6D 3S AS AC
2H 4S 5C 5S TC KC JD 6C TS 3C
QD AS 6H JS 2C 3D 9H KC 4H 8S
KD 8S 9S 7C 2S 3S 6D 6S 4H KC
3C 8C 2D 7D 4D 9S 4S QH 4H JD
8C KC 7S TC 2D TS 8H QD AC 5C
3D KH QD 6C 6S AD AS 8H 2H QS
6S 8D 4C 8S 6C QH TC 6D 7D 9D
2S 8D 8C 4C TS 9S 9D 9C AC 3D
3C QS 2S 4H JH 3D 2D TD 8S 9H
5H QS 8S 6D 3C 8C JD AS 7H 7D
6H TD 9D AS JH 6C QC 9S KD JC
AH 8S QS 4D TH AC TS 3C 3D 5C
5S 4D JS 3D 8H 6C TS 3S AD 8C
6D 7C 5D 5H 3S 5C JC 2H 5S 3D
5H 6H 2S KS 3D 5D JD 7H JS 8H
KH 4H AS JS QS QC TC 6D 7C KS
3D QS TS 2H JS 4D AS 9S JC KD
QD 5H 4D 5D KH 7H 3D JS KD 4H
2C 9H 6H 5C 9D 6C JC 2D TH 9S
7D 6D AS QD JH 4D JS 7C QS 5C
3H KH QD AD 8C 8H 3S TH 9D 5S
AH 9S 4D 9D 8S 4H JS 3C TC 8D
2C KS 5H QD 3S TS 9H AH AD 8S
5C 7H 5D KD 9H 4D 3D 2D KS AD
KS KC 9S 6D 2C QH 9D 9H TS TC
9C 6H 5D QH 4D AD 6D QC JS KH
9S 3H 9D JD 5C 4D 9H AS TC QH
2C 6D JC 9C 3C AD 9S KH 9D 7D
KC 9C 7C JC JS KD 3H AS 3C 7D
QD KH QS 2C 3S 8S 8H 9H 9C JC
QH 8D 3C KC 4C 4H 6D AD 9H 9D
3S KS QS 7H KH 7D 5H 5D JD AD
2H 2C 6H TH TC 7D 8D 4H 8C AS
4S 2H AC QC 3S 6D TH 4D 4C KH
4D TC KS AS 7C 3C 6D 2D 9H 6C
8C TD 5D QS 2C 7H 4C 9C 3H 9H
5H JH TS 7S TD 6H AD QD 8H 8S
5S AD 9C 8C 7C 8D 5H 9D 8S 2S
4H KH KS 9S 2S KC 5S AD 4S 7D
QS 9C QD 6H JS 5D AC 8D 2S AS
KH AC JC 3S 9D 9S 3C 9C 5S JS
AD 3C 3D KS 3S 5C 9C 8C TS 4S
JH 8D 5D 6H KD QS QD 3D 6C KC
8S JD 6C 3S 8C TC QC 3C QH JS
KC JC 8H 2S 9H 9C JH 8S 8C 9S
8S 2H QH 4D QC 9D KC AS TH 3C
8S 6H TH 7C 2H 6S 3C 3H AS 7S
QH 5S JS 4H 5H TS 8H AH AC JC
9D 8H 2S 4S TC JC 3C 7H 3H 5C
3D AD 3C 3S 4C QC AS 5D TH 8C
6S 9D 4C JS KH AH TS JD 8H AD
4C 6S 9D 7S AC 4D 3D 3S TC JD
AD 7H 6H 4H JH KC TD TS 7D 6S
8H JH TC 3S 8D 8C 9S 2C 5C 4D
2C 9D KC QH TH QS JC 9C 4H TS
QS 3C QD 8H KH 4H 8D TD 8S AC
7C 3C TH 5S 8H 8C 9C JD TC KD
QC TC JD TS 8C 3H 6H KD 7C TD
JH QS KS 9C 6D 6S AS 9H KH 6H
2H 4D AH 2D JH 6H TD 5D 4H JD
KD 8C 9S JH QD JS 2C QS 5C 7C
4S TC 7H 8D 2S 6H 7S 9C 7C KC
8C 5D 7H 4S TD QC 8S JS 4H KS
AD 8S JH 6D TD KD 7C 6C 2D 7D
JC 6H 6S JS 4H QH 9H AH 4C 3C
6H 5H AS 7C 7S 3D KH KC 5D 5C
JC 3D TD AS 4D 6D 6S QH JD KS
8C 7S 8S QH 2S JD 5C 7H AH QD
8S 3C 6H 6C 2C 8D TD 7D 4C 4D
5D QH KH 7C 2S 7H JS 6D QC QD
AD 6C 6S 7D TH 6H 2H 8H KH 4H
KS JS KD 5D 2D KH 7D 9C 8C 3D
9C 6D QD 3C KS 3S 7S AH JD 2D
AH QH AS JC 8S 8H 4C KC TH 7D
JC 5H TD 7C 5D KD 4C AD 8H JS
KC 2H AC AH 7D JH KH 5D 7S 6D
9S 5S 9C 6H 8S TD JD 9H 6C AC
7D 8S 6D TS KD 7H AC 5S 7C 5D
AH QC JC 4C TC 8C 2H TS 2C 7D
KD KC 6S 3D 7D 2S 8S 3H 5S 5C
8S 5D 8H 4C 6H KC 3H 7C 5S KD
JH 8C 3D 3C 6C KC TD 7H 7C 4C
JC KC 6H TS QS TD KS 8H 8C 9S
6C 5S 9C QH 7D AH KS KC 9S 2C
4D 4S 8H TD 9C 3S 7D 9D AS TH
6S 7D 3C 6H 5D KD 2C 5C 9D 9C
2H KC 3D AD 3H QD QS 8D JC 4S
8C 3H 9C 7C AD 5D JC 9D JS AS
5D 9H 5C 7H 6S 6C QC JC QD 9S
JC QS JH 2C 6S 9C QC 3D 4S TC
4H 5S 8D 3D 4D 2S KC 2H JS 2C
TD 3S TH KD 4D 7H JH JS KS AC
7S 8C 9S 2D 8S 7D 5C AD 9D AS
8C 7H 2S 6C TH 3H 4C 3S 8H AC
KD 5H JC 8H JD 2D 4H TD JH 5C
3D AS QH KS 7H JD 8S 5S 6D 5H
9S 6S TC QS JC 5C 5D 9C TH 8C
5H 3S JH 9H 2S 2C 6S 7S AS KS
8C QD JC QS TC QC 4H AC KH 6C
TC 5H 7D JH 4H 2H 8D JC KS 4D
5S 9C KH KD 9H 5C TS 3D 7D 2D
5H AS TC 4D 8C 2C TS 9D 3H 8D
6H 8D 2D 9H JD 6C 4S 5H 5S 6D
AD 9C JC 7D 6H 9S 6D JS 9H 3C
AD JH TC QS 4C 5D 9S 7C 9C AH
KD 6H 2H TH 8S QD KS 9D 9H AS
4H 8H 8D 5H 6C AH 5S AS AD 8S
QS 5D 4S 2H TD KS 5H AC 3H JC
9C 7D QD KD AC 6D 5H QH 6H 5S
KC AH QH 2H 7D QS 3H KS 7S JD
6C 8S 3H 6D KS QD 5D 5C 8H TC
9H 4D 4S 6S 9D KH QC 4H 6C JD
TD 2D QH 4S 6H JH KD 3C QD 8C
4S 6H 7C QD 9D AS AH 6S AD 3C
2C KC TH 6H 8D AH 5C 6D 8S 5D
TD TS 7C AD JC QD 9H 3C KC 7H
5D 4D 5S 8H 4H 7D 3H JD KD 2D
JH TD 6H QS 4S KD 5C 8S 7D 8H
AC 3D AS 8C TD 7H KH 5D 6C JD
9D KS 7C 6D QH TC JD KD AS KC
JH 8S 5S 7S 7D AS 2D 3D AD 2H
2H 5D AS 3C QD KC 6H 9H 9S 2C
9D 5D TH 4C JH 3H 8D TC 8H 9H
6H KD 2C TD 2H 6C 9D 2D JS 8C
KD 7S 3C 7C AS QH TS AD 8C 2S
QS 8H 6C JS 4C 9S QC AD TD TS
2H 7C TS TC 8C 3C 9H 2D 6D JC
TC 2H 8D JH KS 6D 3H TD TH 8H
9D TD 9H QC 5D 6C 8H 8C KC TS
2H 8C 3D AH 4D TH TC 7D 8H KC
TS 5C 2D 8C 6S KH AH 5H 6H KC
5S 5D AH TC 4C JD 8D 6H 8C 6C
KC QD 3D 8H 2D JC 9H 4H AD 2S
TD 6S 7D JS KD 4H QS 2S 3S 8C
4C 9H JH TS 3S 4H QC 5S 9S 9C
2C KD 9H JS 9S 3H JC TS 5D AC
AS 2H 5D AD 5H JC 7S TD JS 4C
2D 4S 8H 3D 7D 2C AD KD 9C TS
7H QD JH 5H JS AC 3D TH 4C 8H
6D KH KC QD 5C AD 7C 2D 4H AC
3D 9D TC 8S QD 2C JC 4H JD AH
6C TD 5S TC 8S AH 2C 5D AS AC
TH 7S 3D AS 6C 4C 7H 7D 4H AH
5C 2H KS 6H 7S 4H 5H 3D 3C 7H
3C 9S AC 7S QH 2H 3D 6S 3S 3H
2D 3H AS 2C 6H TC JS 6S 9C 6C
QH KD QD 6D AC 6H KH 2C TS 8C
8H 7D 3S 9H 5D 3H 4S QC 9S 5H
2D 9D 7H 6H 3C 8S 5H 4D 3S 4S
KD 9S 4S TC 7S QC 3S 8S 2H 7H
TC 3D 8C 3H 6C 2H 6H KS KD 4D
KC 3D 9S 3H JS 4S 8H 2D 6C 8S
6H QS 6C TC QD 9H 7D 7C 5H 4D
TD 9D 8D 6S 6C TC 5D TS JS 8H
4H KC JD 9H TC 2C 6S 5H 8H AS
JS 9C 5C 6S 9D JD 8H KC 4C 6D
4D 8D 8S 6C 7C 6H 7H 8H 5C KC
TC 3D JC 6D KS 9S 6H 7S 9C 2C
6C 3S KD 5H TS 7D 9H 9S 6H KH
3D QD 4C 6H TS AC 3S 5C 2H KD
4C AS JS 9S 7C TS 7H 9H JC KS
4H 8C JD 3H 6H AD 9S 4S 5S KS
4C 2C 7D 3D AS 9C 2S QS KC 6C
8S 5H 3D 2S AC 9D 6S 3S 4D TD
QD TH 7S TS 3D AC 7H 6C 5D QC
TC QD AD 9C QS 5C 8D KD 3D 3C
9D 8H AS 3S 7C 8S JD 2D 8D KC
4C TH AC QH JS 8D 7D 7S 9C KH
9D 8D 4C JH 2C 2S QD KD TS 4H
4D 6D 5D 2D JH 3S 8S 3H TC KH
AD 4D 2C QS 8C KD JH JD AH 5C
5C 6C 5H 2H JH 4H KS 7C TC 3H
3C 4C QC 5D JH 9C QD KH 8D TC
3H 9C JS 7H QH AS 7C 9H 5H JC
2D 5S QD 4S 3C KC 6S 6C 5C 4C
5D KH 2D TS 8S 9C AS 9S 7C 4C
7C AH 8C 8D 5S KD QH QS JH 2C
8C 9D AH 2H AC QC 5S 8H 7H 2C
QD 9H 5S QS QC 9C 5H JC TH 4H
6C 6S 3H 5H 3S 6H KS 8D AC 7S
AC QH 7H 8C 4S KC 6C 3D 3S TC
9D 3D JS TH AC 5H 3H 8S 3S TC
QD KH JS KS 9S QC 8D AH 3C AC
5H 6C KH 3S 9S JH 2D QD AS 8C
6C 4D 7S 7H 5S JC 6S 9H 4H JH
AH 5S 6H 9S AD 3S TH 2H 9D 8C
4C 8D 9H 7C QC AD 4S 9C KC 5S
9D 6H 4D TC 4C JH 2S 5D 3S AS
2H 6C 7C KH 5C AD QS TH JD 8S
3S 4S 7S AH AS KC JS 2S AD TH
JS KC 2S 7D 8C 5C 9C TS 5H 9D
7S 9S 4D TD JH JS KH 6H 5D 2C
JD JS JC TH 2D 3D QD 8C AC 5H
7S KH 5S 9D 5D TD 4S 6H 3C 2D
4S 5D AC 8D 4D 7C AD AS AH 9C
6S TH TS KS 2C QC AH AS 3C 4S
2H 8C 3S JC 5C 7C 3H 3C KH JH
7S 3H JC 5S 6H 4C 2S 4D KC 7H
4D 7C 4H 9S 8S 6S AD TC 6C JC
KH QS 3S TC 4C 8H 8S AC 3C TS
QD QS TH 3C TS 7H 7D AH TD JC
TD JD QC 4D 9S 7S TS AD 7D AC
AH 7H 4S 6D 7C 2H 9D KS JC TD
7C AH JD 4H 6D QS TS 2H 2C 5C
TC KC 8C 9S 4C JS 3C JC 6S AH
AS 7D QC 3D 5S JC JD 9D TD KH
TH 3C 2S 6H AH AC 5H 5C 7S 8H
QC 2D AC QD 2S 3S JD QS 6S 8H
KC 4H 3C 9D JS 6H 3S 8S AS 8C
7H KC 7D JD 2H JC QH 5S 3H QS
9H TD 3S 8H 7S AC 5C 6C AH 7C
8D 9H AH JD TD QS 7D 3S 9C 8S
AH QH 3C JD KC 4S 5S 5D TD KS
9H 7H 6S JH TH 4C 7C AD 5C 2D
7C KD 5S TC 9D 6S 6C 5D 2S TH
KC 9H 8D 5H 7H 4H QC 3D 7C AS
6S 8S QC TD 4S 5C TH QS QD 2S
8S 5H TH QC 9H 6S KC 7D 7C 5C
7H KD AH 4D KH 5C 4S 2D KC QH
6S 2C TD JC AS 4D 6C 8C 4H 5S
JC TC JD 5S 6S 8D AS 9D AD 3S
6D 6H 5D 5S TC 3D 7D QS 9D QD
4S 6C 8S 3S 7S AD KS 2D 7D 7C
KC QH JC AC QD 5D 8D QS 7H 7D
JS AH 8S 5H 3D TD 3H 4S 6C JH
4S QS 7D AS 9H JS KS 6D TC 5C
2D 5C 6H TC 4D QH 3D 9H 8S 6C
6D 7H TC TH 5S JD 5C 9C KS KD
8D TD QH 6S 4S 6C 8S KC 5C TC
5S 3D KS AC 4S 7D QD 4C TH 2S
TS 8H 9S 6S 7S QH 3C AH 7H 8C
4C 8C TS JS QC 3D 7D 5D 7S JH
8S 7S 9D QC AC 7C 6D 2H JH KC
JS KD 3C 6S 4S 7C AH QC KS 5H
KS 6S 4H JD QS TC 8H KC 6H AS
KH 7C TC 6S TD JC 5C 7D AH 3S
3H 4C 4H TC TH 6S 7H 6D 9C QH
7D 5H 4S 8C JS 4D 3D 8S QH KC
3H 6S AD 7H 3S QC 8S 4S 7S JS
3S JD KH TH 6H QS 9C 6C 2D QD
4S QH 4D 5H KC 7D 6D 8D TH 5S
TD AD 6S 7H KD KH 9H 5S KC JC
3H QC AS TS 4S QD KS 9C 7S KC
TS 6S QC 6C TH TC 9D 5C 5D KD
JS 3S 4H KD 4C QD 6D 9S JC 9D
8S JS 6D 4H JH 6H 6S 6C KS KH
AC 7D 5D TC 9S KH 6S QD 6H AS
AS 7H 6D QH 8D TH 2S KH 5C 5H
4C 7C 3D QC TC 4S KH 8C 2D JS
6H 5D 7S 5H 9C 9H JH 8S TH 7H
AS JS 2S QD KH 8H 4S AC 8D 8S
3H 4C TD KD 8C JC 5C QS 2D JD
TS 7D 5D 6C 2C QS 2H 3C AH KS
4S 7C 9C 7D JH 6C 5C 8H 9D QD
2S TD 7S 6D 9C 9S QS KH QH 5C
JC 6S 9C QH JH 8D 7S JS KH 2H
8D 5H TH KC 4D 4S 3S 6S 3D QS
2D JD 4C TD 7C 6D TH 7S JC AH
QS 7S 4C TH 9D TS AD 4D 3H 6H
2D 3H 7D JD 3D AS 2S 9C QC 8S
4H 9H 9C 2C 7S JH KD 5C 5D 6H
TC 9H 8H JC 3C 9S 8D KS AD KC
TS 5H JD QS QH QC 8D 5D KH AH
5D AS 8S 6S 4C AH QC QD TH 7H
3H 4H 7D 6S 4S 9H AS 8H JS 9D
JD 8C 2C 9D 7D 5H 5S 9S JC KD
KD 9C 4S QD AH 7C AD 9D AC TD
6S 4H 4S 9C 8D KS TC 9D JH 7C
5S JC 5H 4S QH AC 2C JS 2S 9S
8C 5H AS QD AD 5C 7D 8S QC TD
JC 4C 8D 5C KH QS 4D 6H 2H 2C
TH 4S 2D KC 3H QD AC 7H AD 9D
KH QD AS 8H TH KC 8D 7S QH 8C
JC 6C 7D 8C KH AD QS 2H 6S 2D
JC KH 2D 7D JS QC 5H 4C 5D AD
TS 3S AD 4S TD 2D TH 6S 9H JH
9H 2D QS 2C 4S 3D KH AS AC 9D
KH 6S 8H 4S KD 7D 9D TS QD QC
JH 5H AH KS AS AD JC QC 5S KH
5D 7D 6D KS KD 3D 7C 4D JD 3S
AC JS 8D 5H 9C 3H 4H 4D TS 2C
6H KS KH 9D 7C 2S 6S 8S 2H 3D
6H AC JS 7S 3S TD 8H 3H 4H TH
9H TC QC KC 5C KS 6H 4H AC 8S
TC 7D QH 4S JC TS 6D 6C AC KH
QH 7D 7C JH QS QD TH 3H 5D KS
3D 5S 8D JS 4C 2C KS 7H 9C 4H
5H 8S 4H TD 2C 3S QD QC 3H KC
QC JS KD 9C AD 5S 9D 7D 7H TS
8C JC KH 7C 7S 6C TS 2C QD TH
5S 9D TH 3C 7S QH 8S 9C 2H 5H
5D 9H 6H 2S JS KH 3H 7C 2H 5S
JD 5D 5S 2C TC 2S 6S 6C 3C 8S
4D KH 8H 4H 2D KS 3H 5C 2S 9H
3S 2D TD 7H 8S 6H JD KC 9C 8D
6S QD JH 7C 9H 5H 8S 8H TH TD
QS 7S TD 7D TS JC KD 7C 3C 2C
3C JD 8S 4H 2D 2S TD AS 4D AC
AH KS 6C 4C 4S 7D 8C 9H 6H AS
5S 3C 9S 2C QS KD 4D 4S AC 5D
2D TS 2C JS KH QH 5D 8C AS KC
KD 3H 6C TH 8S 7S KH 6H 9S AC
6H 7S 6C QS AH 2S 2H 4H 5D 5H
5H JC QD 2C 2S JD AS QC 6S 7D
6C TC AS KD 8H 9D 2C 7D JH 9S
2H 4C 6C AH 8S TD 3H TH 7C TS
KD 4S TS 6C QH 8D 9D 9C AH 7D
6D JS 5C QD QC 9C 5D 8C 2H KD
3C QH JH AD 6S AH KC 8S 6D 6H
3D 7C 4C 7S 5S 3S 6S 5H JC 3C
QH 7C 5H 3C 3S 8C TS 4C KD 9C
QD 3S 7S 5H 7H QH JC 7C 8C KD
3C KD KH 2S 4C TS AC 6S 2C 7C
2C KH 3C 4C 6H 4D 5H 5S 7S QD
4D 7C 8S QD TS 9D KS 6H KD 3C
QS 4D TS 7S 4C 3H QD 8D 9S TC
TS QH AC 6S 3C 9H 9D QS 8S 6H
3S 7S 5D 4S JS 2D 6C QH 6S TH
4C 4H AS JS 5D 3D TS 9C AC 8S
6S 9C 7C 3S 5C QS AD AS 6H 3C
9S 8C 7H 3H 6S 7C AS 9H JD KH
3D 3H 7S 4D 6C 7C AC 2H 9C TH
4H 5S 3H AC TC TH 9C 9H 9S 8D
8D 9H 5H 4D 6C 2H QD 6S 5D 3S
4C 5C JD QS 4D 3H TH AC QH 8C
QC 5S 3C 7H AD 4C KS 4H JD 6D
QS AH 3H KS 9H 2S JS JH 5H 2H
2H 5S TH 6S TS 3S KS 3C 5H JS
2D 9S 7H 3D KC JH 6D 7D JS TD
AC JS 8H 2C 8C JH JC 2D TH 7S
5D 9S 8H 2H 3D TC AH JC KD 9C
9D QD JC 2H 6D KH TS 9S QH TH
2C 8D 4S JD 5H 3H TH TC 9C KC
AS 3D 9H 7D 4D TH KH 2H 7S 3H
4H 7S KS 2S JS TS 8S 2H QD 8D
5S 6H JH KS 8H 2S QC AC 6S 3S
JC AS AD QS 8H 6C KH 4C 4D QD
2S 3D TS TD 9S KS 6S QS 5C 8D
3C 6D 4S QC KC JH QD TH KH AD
9H AH 4D KS 2S 8D JH JC 7C QS
2D 6C TH 3C 8H QD QH 2S 3S KS
6H 5D 9S 4C TS TD JS QD 9D JD
5H 8H KH 8S KS 7C TD AD 4S KD
2C 7C JC 5S AS 6C 7D 8S 5H 9C
6S QD 9S TS KH QS 5S QH 3C KC
7D 3H 3C KD 5C AS JH 7H 6H JD
9D 5C 9H KC 8H KS 4S AD 4D 2S
3S JD QD 8D 2S 7C 5S 6S 5H TS
6D 9S KC TD 3S 6H QD JD 5C 8D
5H 9D TS KD 8D 6H TD QC 4C 7D
6D 4S JD 9D AH 9S AS TD 9H QD
2D 5S 2H 9C 6H 9S TD QC 7D TC
3S 2H KS TS 2C 9C 8S JS 9D 7D
3C KC 6D 5D 6C 6H 8S AS 7S QS
JH 9S 2H 8D 4C 8H 9H AD TH KH
QC AS 2S JS 5C 6H KD 3H 7H 2C
QD 8H 2S 8D 3S 6D AH 2C TC 5C
JD JS TS 8S 3H 5D TD KC JC 6H
6S QS TC 3H 5D AH JC 7C 7D 4H
7C 5D 8H 9C 2H 9H JH KH 5S 2C
9C 7H 6S TH 3S QC QD 4C AC JD
2H 5D 9S 7D KC 3S QS 2D AS KH
2S 4S 2H 7D 5C TD TH QH 9S 4D
6D 3S TS 6H 4H KS 9D 8H 5S 2D
9H KS 4H 3S 5C 5D KH 6H 6S JS
KC AS 8C 4C JC KH QC TH QD AH
6S KH 9S 2C 5H TC 3C 7H JC 4D
JD 4S 6S 5S 8D 7H 7S 4D 4C 2H
7H 9H 5D KH 9C 7C TS TC 7S 5H
4C 8D QC TS 4S 9H 3D AD JS 7C
8C QS 5C 5D 3H JS AH KC 4S 9D
TS JD 8S QS TH JH KH 2D QD JS
JD QC 5D 6S 9H 3S 2C 8H 9S TS
2S 4C AD 7H JC 5C 2D 6D 4H 3D
7S JS 2C 4H 8C AD QD 9C 3S TD
JD TS 4C 6H 9H 7D QD 6D 3C AS
AS 7C 4C 6S 5D 5S 5C JS QC 4S
KD 6S 9S 7C 3C 5S 7D JH QD JS
4S 7S JH 2C 8S 5D 7H 3D QH AD
TD 6H 2H 8D 4H 2D 7C AD KH 5D
TS 3S 5H 2C QD AH 2S 5C KH TD
KC 4D 8C 5D AS 6C 2H 2S 9H 7C
KD JS QC TS QS KH JH 2C 5D AD
3S 5H KC 6C 9H 3H 2H AD 7D 7S
7S JS JH KD 8S 7D 2S 9H 7C 2H
9H 2D 8D QC 6S AD AS 8H 5H 6C
2S 7H 6C 6D 7D 8C 5D 9D JC 3C
7C 9C 7H JD 2H KD 3S KH AD 4S
QH AS 9H 4D JD KS KD TS KH 5H
4C 8H 5S 3S 3D 7D TD AD 7S KC
JS 8S 5S JC 8H TH 9C 4D 5D KC
7C 5S 9C QD 2C QH JS 5H 8D KH
TD 2S KS 3D AD KC 7S TC 3C 5D
4C 2S AD QS 6C 9S QD TH QH 5C
8C AD QS 2D 2S KC JD KS 6C JC
8D 4D JS 2H 5D QD 7S 7D QH TS
6S 7H 3S 8C 8S 9D QS 8H 6C 9S
4S TC 2S 5C QD 4D QS 6D TH 6S
3S 5C 9D 6H 8D 4C 7D TC 7C TD
AH 6S AS 7H 5S KD 3H 5H AC 4C
8D 8S AH KS QS 2C AD 6H 7D 5D
6H 9H 9S 2H QS 8S 9C 5D 2D KD
TS QC 5S JH 7D 7S TH 9S 9H AC
7H 3H 6S KC 4D 6D 5C 4S QD TS
TD 2S 7C QD 3H JH 9D 4H 7S 7H
KS 3D 4H 5H TC 2S AS 2D 6D 7D
8H 3C 7H TD 3H AD KC TH 9C KH
TC 4C 2C 9S 9D 9C 5C 2H JD 3C
3H AC TS 5D AD 8D 6H QC 6S 8C
2S TS 3S JD 7H 8S QH 4C 5S 8D
AC 4S 6C 3C KH 3D 7C 2D 8S 2H
4H 6C 8S TH 2H 4S 8H 9S 3H 7S
7C 4C 9C 2C 5C AS 5D KD 4D QH
9H 4H TS AS 7D 8D 5D 9S 8C 2H
QC KD AC AD 2H 7S AS 3S 2D 9S
2H QC 8H TC 6D QD QS 5D KH 3C
TH JD QS 4C 2S 5S AD 7H 3S AS
7H JS 3D 6C 3S 6D AS 9S AC QS
9C TS AS 8C TC 8S 6H 9D 8D 6C
4D JD 9C KC 7C 6D KS 3S 8C AS
3H 6S TC 8D TS 3S KC 9S 7C AS
8C QC 4H 4S 8S 6C 3S TC AH AC
4D 7D 5C AS 2H 6S TS QC AD TC
QD QC 8S 4S TH 3D AH TS JH 4H
5C 2D 9S 2C 3H 3C 9D QD QH 7D
KC 9H 6C KD 7S 3C 4D AS TC 2D
3D JS 4D 9D KS 7D TH QC 3H 3C
8D 5S 2H 9D 3H 8C 4C 4H 3C TH
JC TH 4S 6S JD 2D 4D 6C 3D 4C
TS 3S 2D 4H AC 2C 6S 2H JH 6H
TD 8S AD TC AH AC JH 9S 6S 7S
6C KC 4S JD 8D 9H 5S 7H QH AH
KD 8D TS JH 5C 5H 3H AD AS JS
2D 4H 3D 6C 8C 7S AD 5D 5C 8S
TD 5D 7S 9C 4S 5H 6C 8C 4C 8S
JS QH 9C AS 5C QS JC 3D QC 7C
JC 9C KH JH QS QC 2C TS 3D AD
5D JH AC 5C 9S TS 4C JD 8C KS
KC AS 2D KH 9H 2C 5S 4D 3D 6H
TH AH 2D 8S JC 3D 8C QH 7S 3S
8H QD 4H JC AS KH KS 3C 9S 6D
9S QH 7D 9C 4S AC 7H KH 4D KD
AH AD TH 6D 9C 9S KD KS QH 4H
QD 6H 9C 7C QS 6D 6S 9D 5S JH
AH 8D 5H QD 2H JC KS 4H KH 5S
5C 2S JS 8D 9C 8C 3D AS KC AH
JD 9S 2H QS 8H 5S 8C TH 5C 4C
QC QS 8C 2S 2C 3S 9C 4C KS KH
2D 5D 8S AH AD TD 2C JS KS 8C
TC 5S 5H 8H QC 9H 6H JD 4H 9S
3C JH 4H 9H AH 4S 2H 4C 8D AC
8S TH 4D 7D 6D QD QS 7S TC 7C
KH 6D 2D JD 5H JS QD JH 4H 4S
9C 7S JH 4S 3S TS QC 8C TC 4H
QH 9D 4D JH QS 3S 2C 7C 6C 2D
4H 9S JD 5C 5H AH 9D TS 2D 4C
KS JH TS 5D 2D AH JS 7H AS 8D
JS AH 8C AD KS 5S 8H 2C 6C TH
2H 5D AD AC KS 3D 8H TS 6H QC
6D 4H TS 9C 5H JS JH 6S JD 4C
JH QH 4H 2C 6D 3C 5D 4C QS KC
6H 4H 6C 7H 6S 2S 8S KH QC 8C
3H 3D 5D KS 4H TD AD 3S 4D TS
5S 7C 8S 7D 2C KS 7S 6C 8C JS
5D 2H 3S 7C 5C QD 5H 6D 9C 9H
JS 2S KD 9S 8D TD TS AC 8C 9D
5H QD 2S AC 8C 9H KS 7C 4S 3C
KH AS 3H 8S 9C JS QS 4S AD 4D
AS 2S TD AD 4D 9H JC 4C 5H QS
5D 7C 4H TC 2D 6C JS 4S KC 3S
4C 2C 5D AC 9H 3D JD 8S QS QH
2C 8S 6H 3C QH 6D TC KD AC AH
QC 6C 3S QS 4S AC 8D 5C AD KH
5S 4C AC KH AS QC 2C 5C 8D 9C
8H JD 3C KH 8D 5C 9C QD QH 9D
7H TS 2C 8C 4S TD JC 9C 5H QH
JS 4S 2C 7C TH 6C AS KS 7S JD
JH 7C 9H 7H TC 5H 3D 6D 5D 4D
2C QD JH 2H 9D 5S 3D TD AD KS
JD QH 3S 4D TH 7D 6S QS KS 4H
TC KS 5S 8D 8H AD 2S 2D 4C JH
5S JH TC 3S 2D QS 9D 4C KD 9S
AC KH 3H AS 9D KC 9H QD 6C 6S
9H 7S 3D 5C 7D KC TD 8H 4H 6S
3C 7H 8H TC QD 4D 7S 6S QH 6C
6D AD 4C QD 6C 5D 7D 9D KS TS
JH 2H JD 9S 7S TS KH 8D 5D 8H
2D 9S 4C 7D 9D 5H QD 6D AC 6S
7S 6D JC QD JH 4C 6S QS 2H 7D
8C TD JH KD 2H 5C QS 2C JS 7S
TC 5H 4H JH QD 3S 5S 5D 8S KH
KS KH 7C 2C 5D JH 6S 9C 6D JC
5H AH JD 9C JS KC 2H 6H 4D 5S
AS 3C TH QC 6H 9C 8S 8C TD 7C
KC 2C QD 9C KH 4D 7S 3C TS 9H
9C QC 2S TS 8C TD 9S QD 3S 3C
4D 9D TH JH AH 6S 2S JD QH JS
QD 9H 6C KD 7D 7H 5D 6S 8H AH
8H 3C 4S 2H 5H QS QH 7S 4H AC
QS 3C 7S 9S 4H 3S AH KS 9D 7C
AD 5S 6S 2H 2D 5H TC 4S 3C 8C
QH TS 6S 4D JS KS JH AS 8S 6D
2C 8S 2S TD 5H AS TC TS 6C KC
KC TS 8H 2H 3H 7C 4C 5S TH TD
KD AD KH 7H 7S 5D 5H 5S 2D 9C
AD 9S 3D 7S 8C QC 7C 9C KD KS
3C QC 9S 8C 4D 5C AS QD 6C 2C
2H KC 8S JD 7S AC 8D 5C 2S 4D
9D QH 3D 2S TC 3S KS 3C 9H TD
KD 6S AC 2C 7H 5H 3S 6C 6H 8C
QH TC 8S 6S KH TH 4H 5D TS 4D
8C JS 4H 6H 2C 2H 7D AC QD 3D
QS KC 6S 2D 5S 4H TD 3H JH 4C
7S 5H 7H 8H KH 6H QS TH KD 7D
5H AD KD 7C KH 5S TD 6D 3C 6C
8C 9C 5H JD 7C KC KH 7H 2H 3S
7S 4H AD 4D 8S QS TH 3D 7H 5S
8D TC KS KD 9S 6D AD JD 5C 2S
7H 8H 6C QD 2H 6H 9D TC 9S 7C
8D 6D 4C 7C 6C 3C TH KH JS JH
5S 3S 8S JS 9H AS AD 8H 7S KD
JH 7C 2C KC 5H AS AD 9C 9S JS
AD AC 2C 6S QD 7C 3H TH KS KD
9D JD 4H 8H 4C KH 7S TS 8C KC
3S 5S 2H 7S 6H 7D KS 5C 6D AD
5S 8C 9H QS 7H 7S 2H 6C 7D TD
QS 5S TD AC 9D KC 3D TC 2D 4D
TD 2H 7D JD QD 4C 7H 5D KC 3D
4C 3H 8S KD QH 5S QC 9H TC 5H
9C QD TH 5H TS 5C 9H AH QH 2C
4D 6S 3C AC 6C 3D 2C 2H TD TH
AC 9C 5D QC 4D AD 8D 6D 8C KC
AD 3C 4H AC 8D 8H 7S 9S TD JC
4H 9H QH JS 2D TH TD TC KD KS
5S 6S 9S 8D TH AS KH 5H 5C 8S
JD 2S 9S 6S 5S 8S 5D 7S 7H 9D
5D 8C 4C 9D AD TS 2C 7D KD TC
8S QS 4D KC 5C 8D 4S KH JD KD
AS 5C AD QH 7D 2H 9S 7H 7C TC
2S 8S JD KH 7S 6C 6D AD 5D QC
9H 6H 3S 8C 8H AH TC 4H JS TD
2C TS 4D 7H 2D QC 9C 5D TH 7C
6C 8H QC 5D TS JH 5C 5H 9H 4S
2D QC 7H AS JS 8S 2H 4C 4H 8D
JS 6S AC KD 3D 3C 4S 7H TH KC
QH KH 6S QS 5S 4H 3C QD 3S 3H
7H AS KH 8C 4H 9C 5S 3D 6S TS
9C 7C 3H 5S QD 2C 3D AD AC 5H
JH TD 2D 4C TS 3H KH AD 3S 7S
AS 4C 5H 4D 6S KD JC 3C 6H 2D
3H 6S 8C 2D TH 4S AH QH AD 5H
7C 2S 9H 7H KC 5C 6D 5S 3H JC
3C TC 9C 4H QD TD JH 6D 9H 5S
7C 6S 5C 5D 6C 4S 7H 9H 6H AH
AD 2H 7D KC 2C 4C 2S 9S 7H 3S
TH 4C 8S 6S 3S AD KS AS JH TD
5C TD 4S 4D AD 6S 5D TC 9C 7D
8H 3S 4D 4S 5S 6H 5C AC 3H 3D
9H 3C AC 4S QS 8S 9D QH 5H 4D
JC 6C 5H TS AC 9C JD 8C 7C QD
8S 8H 9C JD 2D QC QH 6H 3C 8D
KS JS 2H 6H 5H QH QS 3H 7C 6D
TC 3H 4S 7H QC 2H 3S 8C JS KH
AH 8H 5S 4C 9H JD 3H 7S JC AC
3C 2D 4C 5S 6C 4S QS 3S JD 3D
5H 2D TC AH KS 6D 7H AD 8C 6H
6C 7S 3C JD 7C 8H KS KH AH 6D
AH 7D 3H 8H 8S 7H QS 5H 9D 2D
JD AC 4H 7S 8S 9S KS AS 9D QH
7S 2C 8S 5S JH QS JC AH KD 4C
AH 2S 9H 4H 8D TS TD 6H QH JD
4H JC 3H QS 6D 7S 9C 8S 9D 8D
5H TD 4S 9S 4C 8C 8D 7H 3H 3D
QS KH 3S 2C 2S 3C 7S TD 4S QD
7C TD 4D 5S KH AC AS 7H 4C 6C
2S 5H 6D JD 9H QS 8S 2C 2H TD
2S TS 6H 9H 7S 4H JC 4C 5D 5S
2C 5H 7D 4H 3S QH JC JS 6D 8H
4C QH 7C QD 3S AD TH 8S 5S TS
9H TC 2S TD JC 7D 3S 3D TH QH
7D 4C 8S 5C JH 8H 6S 3S KC 3H
JC 3H KH TC QH TH 6H 2C AC 5H
QS 2H 9D 2C AS 6S 6C 2S 8C 8S
9H 7D QC TH 4H KD QS AC 7S 3C
4D JH 6S 5S 8H KS 9S QC 3S AS
JD 2D 6S 7S TC 9H KC 3H 7D KD
2H KH 7C 4D 4S 3H JS QD 7D KC
4C JC AS 9D 3C JS 6C 8H QD 4D
AH JS 3S 6C 4C 3D JH 6D 9C 9H
9H 2D 8C 7H 5S KS 6H 9C 2S TC
6C 8C AD 7H 6H 3D KH AS 5D TH
KS 8C 3S TS 8S 4D 5S 9S 6C 4H
9H 4S 4H 5C 7D KC 2D 2H 9D JH
5C JS TC 9D 9H 5H 7S KH JC 6S
7C 9H 8H 4D JC KH JD 2H TD TC
8H 6C 2H 2C KH 6H 9D QS QH 5H
AC 7D 2S 3D QD JC 2D 8D JD JH
2H JC 2D 7H 2C 3C 8D KD TD 4H
3S 4H 6D 8D TS 3H TD 3D 6H TH
JH JC 3S AC QH 9H 7H 8S QC 2C
7H TD QS 4S 8S 9C 2S 5D 4D 2H
3D TS 3H 2S QC 8H 6H KC JC KS
5D JD 7D TC 8C 6C 9S 3D 8D AC
8H 6H JH 6C 5D 8D 8S 4H AD 2C
9D 4H 2D 2C 3S TS AS TC 3C 5D
4D TH 5H KS QS 6C 4S 2H 3D AD
5C KC 6H 2C 5S 3C 4D 2D 9H 9S
JD 4C 3H TH QH 9H 5S AH 8S AC
7D 9S 6S 2H TD 9C 4H 8H QS 4C
3C 6H 5D 4H 8C 9C KC 6S QD QS
3S 9H KD TC 2D JS 8C 6S 4H 4S
2S 4C 8S QS 6H KH 3H TH 8C 5D
2C KH 5S 3S 7S 7H 6C 9D QD 8D
8H KS AC 2D KH TS 6C JS KC 7H
9C KS 5C TD QC AH 6C 5H 9S 7C
5D 4D 3H 4H 6S 7C 7S AH QD TD
2H 7D QC 6S TC TS AH 7S 9D 3H
TH 5H QD 9S KS 7S 7C 6H 8C TD
TH 2D 4D QC 5C 7D JD AH 9C 4H
4H 3H AH 8D 6H QC QH 9H 2H 2C
2D AD 4C TS 6H 7S TH 4H QS TD
3C KD 2H 3H QS JD TC QC 5D 8H
KS JC QD TH 9S KD 8D 8C 2D 9C
3C QD KD 6D 4D 8D AH AD QC 8S
8H 3S 9D 2S 3H KS 6H 4C 7C KC
TH 9S 5C 3D 7D 6H AC 7S 4D 2C
5C 3D JD 4D 2D 6D 5H 9H 4C KH
AS 7H TD 6C 2H 3D QD KS 4C 4S
JC 3C AC 7C JD JS 8H 9S QC 5D
JD 6S 5S 2H AS 8C 7D 5H JH 3D
8D TC 5S 9S 8S 3H JC 5H 7S AS
5C TD 3D 7D 4H 8D 7H 4D 5D JS
QS 9C KS TD 2S 8S 5C 2H 4H AS
TH 7S 4H 7D 3H JD KD 5D 2S KC
JD 7H 4S 8H 4C JS 6H QH 5S 4H
2C QS 8C 5S 3H QC 2S 6C QD AD
8C 3D JD TC 4H 2H AD 5S AC 2S
5D 2C JS 2D AD 9D 3D 4C 4S JH
8D 5H 5D 6H 7S 4D KS 9D TD JD
3D 6D 9C 2S AS 7D 5S 5C 8H JD
7C 8S 3S 6S 5H JD TC AD 7H 7S
2S 9D TS 4D AC 8D 6C QD JD 3H
9S KH 2C 3C AC 3D 5H 6H 8D 5D
KS 3D 2D 6S AS 4C 2S 7C 7H KH
AC 2H 3S JC 5C QH 4D 2D 5H 7S
TS AS JD 8C 6H JC 8S 5S 2C 5D
7S QH 7H 6C QC 8H 2D 7C JD 2S
2C QD 2S 2H JC 9C 5D 2D JD JH
7C 5C 9C 8S 7D 6D 8D 6C 9S JH
2C AD 6S 5H 3S KS 7S 9D KH 4C
7H 6C 2C 5C TH 9D 8D 3S QC AH
5S KC 6H TC 5H 8S TH 6D 3C AH
9C KD 4H AD TD 9S 4S 7D 6H 5D
7H 5C 5H 6D AS 4C KD KH 4H 9D
3C 2S 5C 6C JD QS 2H 9D 7D 3H
AC 2S 6S 7S JS QD 5C QS 6H AD
5H TH QC 7H TC 3S 7C 6D KC 3D
4H 3D QC 9S 8H 2C 3S JC KS 5C
4S 6S 2C 6H 8S 3S 3D 9H 3H JS
4S 8C 4D 2D 8H 9H 7D 9D AH TS
9S 2C 9H 4C 8D AS 7D 3D 6D 5S
6S 4C 7H 8C 3H 5H JC AH 9D 9C
2S 7C 5S JD 8C 3S 3D 4D 7D 6S
3C KC 4S 5D 7D 3D JD 7H 3H 4H
9C 9H 4H 4D TH 6D QD 8S 9S 7S
2H AC 8S 4S AD 8C 2C AH 7D TC
TS 9H 3C AD KS TC 3D 8C 8H JD
QC 8D 2C 3C 7D 7C JD 9H 9C 6C
AH 6S JS JH 5D AS QC 2C JD TD
9H KD 2H 5D 2D 3S 7D TC AH TS
TD 8H AS 5D AH QC AC 6S TC 5H
KS 4S 7H 4D 8D 9C TC 2H 6H 3H
3H KD 4S QD QH 3D 8H 8C TD 7S
8S JD TC AH JS QS 2D KH KS 4D
3C AD JC KD JS KH 4S TH 9H 2C
QC 5S JS 9S KS AS 7C QD 2S JD
KC 5S QS 3S 2D AC 5D 9H 8H KS
6H 9C TC AD 2C 6D 5S JD 6C 7C
QS KH TD QD 2C 3H 8S 2S QC AH
9D 9H JH TC QH 3C 2S JS 5C 7H
6C 3S 3D 2S 4S QD 2D TH 5D 2C
2D 6H 6D 2S JC QH AS 7H 4H KH
5H 6S KS AD TC TS 7C AC 4S 4H
AD 3C 4H QS 8C 9D KS 2H 2D 4D
4S 9D 6C 6D 9C AC 8D 3H 7H KD
JC AH 6C TS JD 6D AD 3S 5D QD
JC JH JD 3S 7S 8S JS QC 3H 4S
JD TH 5C 2C AD JS 7H 9S 2H 7S
8D 3S JH 4D QC AS JD 2C KC 6H
2C AC 5H KD 5S 7H QD JH AH 2D
JC QH 8D 8S TC 5H 5C AH 8C 6C
3H JS 8S QD JH 3C 4H 6D 5C 3S
6D 4S 4C AH 5H 5S 3H JD 7C 8D
8H AH 2H 3H JS 3C 7D QC 4H KD
6S 2H KD 5H 8H 2D 3C 8S 7S QD
2S 7S KC QC AH TC QS 6D 4C 8D
5S 9H 2C 3S QD 7S 6C 2H 7C 9D
3C 6C 5C 5S JD JC KS 3S 5D TS
7C KS 6S 5S 2S 2D TC 2H 5H QS
AS 7H 6S TS 5H 9S 9D 3C KD 2H
4S JS QS 3S 4H 7C 2S AC 6S 9D
8C JH 2H 5H 7C 5D QH QS KH QC
3S TD 3H 7C KC 8D 5H 8S KH 8C
4H KH JD TS 3C 7H AS QC JS 5S
AH 9D 2C 8D 4D 2D 6H 6C KC 6S
2S 6H 9D 3S 7H 4D KH 8H KD 3D
9C TC AC JH KH 4D JD 5H TD 3S
7S 4H 9D AS 4C 7D QS 9S 2S KH
3S 8D 8S KS 8C JC 5C KH 2H 5D
8S QH 2C 4D KC JS QC 9D AC 6H
8S 8C 7C JS JD 6S 4C 9C AC 4S
QH 5D 2C 7D JC 8S 2D JS JH 4C
JS 4C 7S TS JH KC KH 5H QD 4S
QD 8C 8D 2D 6S TD 9D AC QH 5S
QH QC JS 3D 3C 5C 4H KH 8S 7H
7C 2C 5S JC 8S 3H QC 5D 2H KC
5S 8D KD 6H 4H QD QH 6D AH 3D
7S KS 6C 2S 4D AC QS 5H TS JD
7C 2D TC 5D QS AC JS QC 6C KC
2C KS 4D 3H TS 8S AD 4H 7S 9S
QD 9H QH 5H 4H 4D KH 3S JC AD
4D AC KC 8D 6D 4C 2D KH 2C JD
2C 9H 2D AH 3H 6D 9C 7D TC KS
8C 3H KD 7C 5C 2S 4S 5H AS AH
TH JD 4H KD 3H TC 5C 3S AC KH
6D 7H AH 7S QC 6H 2D TD JD AS
JH 5D 7H TC 9S 7D JC AS 5S KH
2H 8C AD TH 6H QD KD 9H 6S 6C
QH KC 9D 4D 3S JS JH 4H 2C 9H
TC 7H KH 4H JC 7D 9S 3H QS 7S
AD 7D JH 6C 7H 4H 3S 3H 4D QH
JD 2H 5C AS 6C QC 4D 3C TC JH
AC JD 3H 6H 4C JC AD 7D 7H 9H
4H TC TS 2C 8C 6S KS 2H JD 9S
4C 3H QS QC 9S 9H 6D KC 9D 9C
5C AD 8C 2C QH TH QD JC 8D 8H
QC 2C 2S QD 9C 4D 3S 8D JH QS
9D 3S 2C 7S 7C JC TD 3C TC 9H
3C TS 8H 5C 4C 2C 6S 8D 7C 4H
KS 7H 2H TC 4H 2C 3S AS AH QS
8C 2D 2H 2C 4S 4C 6S 7D 5S 3S
TH QC 5D TD 3C QS KD KC KS AS
4D AH KD 9H KS 5C 4C 6H JC 7S
KC 4H 5C QS TC 2H JC 9S AH QH
4S 9H 3H 5H 3C QD 2H QC JH 8H
5D AS 7H 2C 3D JH 6H 4C 6S 7D
9C JD 9H AH JS 8S QH 3H KS 8H
3S AC QC TS 4D AD 3D AH 8S 9H
7H 3H QS 9C 9S 5H JH JS AH AC
8D 3C JD 2H AC 9C 7H 5S 4D 8H
7C JH 9H 6C JS 9S 7H 8C 9D 4H
2D AS 9S 6H 4D JS JH 9H AD QD
6H 7S JH KH AH 7H TD 5S 6S 2C
8H JH 6S 5H 5S 9D TC 4C QC 9S
7D 2C KD 3H 5H AS QD 7H JS 4D
TS QH 6C 8H TH 5H 3C 3H 9C 9D
AD KH JS 5D 3H AS AC 9S 5C KC
2C KH 8C JC QS 6D AH 2D KC TC
9D 3H 2S 7C 4D 6D KH KS 8D 7D
9H 2S TC JH AC QC 3H 5S 3S 8H
3S AS KD 8H 4C 3H 7C JH QH TS
7S 6D 7H 9D JH 4C 3D 3S 6C AS
4S 2H 2C 4C 8S 5H KC 8C QC QD
3H 3S 6C QS QC 2D 6S 5D 2C 9D
2H 8D JH 2S 3H 2D 6C 5C 7S AD
9H JS 5D QH 8S TS 2H 7S 6S AD
6D QC 9S 7H 5H 5C 7D KC JD 4H
QC 5S 9H 9C 4D 6S KS 2S 4C 7C
9H 7C 4H 8D 3S 6H 5C 8H JS 7S
2D 6H JS TD 4H 4D JC TH 5H KC
AC 7C 8D TH 3H 9S 2D 4C KC 4D
KD QS 9C 7S 3D KS AD TS 4C 4H
QH 9C 8H 2S 7D KS 7H 5D KD 4C
9C 2S 2H JC 6S 6C TC QC JH 5C
7S AC 8H KC 8S 6H QS JC 3D 6S
JS 2D JH 8C 4S 6H 8H 6D 5D AD
6H 7D 2S 4H 9H 7C AS AC 8H 5S
3C JS 4S 6D 5H 2S QH 6S 9C 2C
3D 5S 6S 9S 4C QS 8D QD 8S TC
9C 3D AH 9H 5S 2C 7D AD JC 3S
7H TC AS 3C 6S 6D 7S KH KC 9H
3S TC 8H 6S 5H JH 8C 7D AC 2S
QD 9D 9C 3S JC 8C KS 8H 5D 4D
JS AH JD 6D 9D 8C 9H 9S 8H 3H
2D 6S 4C 4D 8S AD 4S TC AH 9H
TS AC QC TH KC 6D 4H 7S 8C 2H
3C QD JS 9D 5S JC AH 2H TS 9H
3H 4D QH 5D 9C 5H 7D 4S JC 3S
8S TH 3H 7C 2H JD JS TS AC 8D
9C 2H TD KC JD 2S 8C 5S AD 2C
3D KD 7C 5H 4D QH QD TC 6H 7D
7H 2C KC 5S KD 6H AH QC 7S QH
6H 5C AC 5H 2C 9C 2D 7C TD 2S
4D 9D AH 3D 7C JD 4H 8C 4C KS
TH 3C JS QH 8H 4C AS 3D QS QC
4D 7S 5H JH 6D 7D 6H JS KH 3C
QD 8S 7D 2H 2C 7C JC 2S 5H 8C
QH 8S 9D TC 2H AD 7C 8D QD 6S
3S 7C AD 9H 2H 9S JD TS 4C 2D
3S AS 4H QC 2C 8H 8S 7S TD TC
JH TH TD 3S 4D 4H 5S 5D QS 2C
8C QD QH TC 6D 4S 9S 9D 4H QC
8C JS 9D 6H JD 3H AD 6S TD QC
KC 8S 3D 7C TD 7D 8D 9H 4S 3S
6C 4S 3D 9D KD TC KC KS AC 5S
7C 6S QH 3D JS KD 6H 6D 2D 8C
JD 2S 5S 4H 8S AC 2D 6S TS 5C
5H 8C 5S 3C 4S 3D 7C 8D AS 3H
AS TS 7C 3H AD 7D JC QS 6C 6H
3S 9S 4C AC QH 5H 5D 9H TS 4H
6C 5C 7H 7S TD AD JD 5S 2H 2S
7D 6C KC 3S JD 8D 8S TS QS KH
8S QS 8D 6C TH AC AH 2C 8H 9S
7H TD KH QH 8S 3D 4D AH JD AS
TS 3D 2H JC 2S JH KH 6C QC JS
KC TH 2D 6H 7S 2S TC 8C 9D QS
3C 9D 6S KH 8H 6D 5D TH 2C 2H
6H TC 7D AD 4D 8S TS 9H TD 7S
JS 6D JD JC 2H AC 6C 3D KH 8D
KH JD 9S 5D 4H 4C 3H 7S QS 5C
4H JD 5D 3S 3C 4D KH QH QS 7S
JD TS 8S QD AH 4C 6H 3S 5S 2C
QS 3D JD AS 8D TH 7C 6S QC KS
7S 2H 8C QC 7H AC 6D 2D TH KH
5S 6C 7H KH 7D AH 8C 5C 7S 3D
3C KD AD 7D 6C 4D KS 2D 8C 4S
7C 8D 5S 2D 2S AH AD 2C 9D TD
3C AD 4S KS JH 7C 5C 8C 9C TH
AS TD 4D 7C JD 8C QH 3C 5H 9S
3H 9C 8S 9S 6S QD KS AH 5H JH
QC 9C 5S 4H 2H TD 7D AS 8C 9D
8C 2C 9D KD TC 7S 3D KH QC 3C
4D AS 4C QS 5S 9D 6S JD QH KS
6D AH 6C 4C 5H TS 9H 7D 3D 5S
QS JD 7C 8D 9C AC 3S 6S 6C KH
8H JH 5D 9S 6D AS 6S 3S QC 7H
QD AD 5C JH 2H AH 4H AS KC 2C
JH 9C 2C 6H 2D JS 5D 9H KC 6D
7D 9D KD TH 3H AS 6S QC 6H AD
JD 4H 7D KC 3H JS 3C TH 3D QS
4C 3H 8C QD 5H 6H AS 8H AD JD
TH 8S KD 5D QC 7D JS 5S 5H TS
7D KC 9D QS 3H 3C 6D TS 7S AH
7C 4H 7H AH QC AC 4D 5D 6D TH
3C 4H 2S KD 8H 5H JH TC 6C JD
4S 8C 3D 4H JS TD 7S JH QS KD
7C QC KD 4D 7H 6S AD TD TC KH
5H 9H KC 3H 4D 3D AD 6S QD 6H
TH 7C 6H TS QH 5S 2C KC TD 6S
7C 4D 5S JD JH 7D AC KD KH 4H
7D 6C 8D 8H 5C JH 8S QD TH JD
8D 7D 6C 7C 9D KD AS 5C QH JH
9S 2C 8C 3C 4C KS JH 2D 8D 4H
7S 6C JH KH 8H 3H 9D 2D AH 6D
4D TC 9C 8D 7H TD KS TH KD 3C
JD 9H 8D QD AS KD 9D 2C 2S 9C
8D 3H 5C 7H KS 5H QH 2D 8C 9H
2D TH 6D QD 6C KC 3H 3S AD 4C
4H 3H JS 9D 3C TC 5H QH QC JC
3D 5C 6H 3S 3C JC 5S 7S 2S QH
AC 5C 8C 4D 5D 4H 2S QD 3C 3H
2C TD AH 9C KD JS 6S QD 4C QC
QS 8C 3S 4H TC JS 3H 7C JC AD
5H 4D 9C KS JC TD 9S TS 8S 9H
QD TS 7D AS AC 2C TD 6H 8H AH
6S AD 8C 4S 9H 8D 9D KH 8S 3C
QS 4D 2D 7S KH JS JC AD 4C 3C
QS 9S 7H KC TD TH 5H JS AC JH
6D AC 2S QS 7C AS KS 6S KH 5S
6D 8H KH 3C QS 2H 5C 9C 9D 6C
JS 2C 4C 6H 7D JC AC QD TD 3H
4H QC 8H JD 4C KD KS 5C KC 7S
6D 2D 3H 2S QD 5S 7H AS TH 6S
AS 6D 8D 2C 8S TD 8H QD JC AH
9C 9H 2D TD QH 2H 5C TC 3D 8H
KC 8S 3D KH 2S TS TC 6S 4D JH
9H 9D QS AC KC 6H 5D 4D 8D AH
9S 5C QS 4H 7C 7D 2H 8S AD JS
3D AC 9S AS 2C 2D 2H 3H JC KH
7H QH KH JD TC KS 5S 8H 4C 8D
2H 7H 3S 2S 5H QS 3C AS 9H KD
AD 3D JD 6H 5S 9C 6D AC 9S 3S
3D 5D 9C 2D AC 4S 2S AD 6C 6S
QC 4C 2D 3H 6S KC QH QD 2H JH
QC 3C 8S 4D 9S 2H 5C 8H QS QD
6D KD 6S 7H 3S KH 2H 5C JC 6C
3S 9S TC 6S 8H 2D AD 7S 8S TS
3C 6H 9C 3H 5C JC 8H QH TD QD
3C JS QD 5D TD 2C KH 9H TH AS
9S TC JD 3D 5C 5H AD QH 9H KC
TC 7H 4H 8H 3H TD 6S AC 7C 2S
QS 9D 5D 3C JC KS 4D 6C JH 2S
9S 6S 3C 7H TS 4C KD 6D 3D 9C
2D 9H AH AC 7H 2S JH 3S 7C QC
QD 9H 3C 2H AC AS 8S KD 8C KH
2D 7S TD TH 6D JD 8D 4D 2H 5S
8S QH KD JD QS JH 4D KC 5H 3S
3C KH QC 6D 8H 3S AH 7D TD 2D
5S 9H QH 4S 6S 6C 6D TS TH 7S
6C 4C 6D QS JS 9C TS 3H 8D 8S
JS 5C 7S AS 2C AH 2H AD 5S TC
KD 6C 9C 9D TS 2S JC 4H 2C QD
QS 9H TC 3H KC KS 4H 3C AD TH
KH 9C 2H KD 9D TC 7S KC JH 2D
7C 3S KC AS 8C 5D 9C 9S QH 3H
2D 8C TD 4C 2H QC 5D TC 2C 7D
KS 4D 6C QH TD KH 5D 7C AD 8D
2S 9S 8S 4C 8C 3D 6H QD 7C 7H
6C 8S QH 5H TS 5C 3C 4S 2S 2H
8S 6S 2H JC 3S 3H 9D 8C 2S 7H
QC 2C 8H 9C AC JD 4C 4H 6S 3S
3H 3S 7D 4C 9S 5H 8H JC 3D TC
QH 2S 2D 9S KD QD 9H AD 6D 9C
8D 2D KS 9S JC 4C JD KC 4S TH
KH TS 6D 4D 5C KD 5H AS 9H AD
QD JS 7C 6D 5D 5C TH 5H QH QS
9D QH KH 5H JH 4C 4D TC TH 6C
KH AS TS 9D KD 9C 7S 4D 8H 5S
KH AS 2S 7D 9D 4C TS TH AH 7C
KS 4D AC 8S 9S 8D TH QH 9D 5C
5D 5C 8C QS TC 4C 3D 3S 2C 8D
9D KS 2D 3C KC 4S 8C KH 6C JC
8H AH 6H 7D 7S QD 3C 4C 6C KC
3H 2C QH 8H AS 7D 4C 8C 4H KC
QD 5S 4H 2C TD AH JH QH 4C 8S
3H QS 5S JS 8H 2S 9H 9C 3S 2C
6H TS 7S JC QD AC TD KC 5S 3H
QH AS QS 7D JC KC 2C 4C 5C 5S
QH 3D AS JS 4H 8D 7H JC 2S 9C
5D 4D 2S 4S 9D 9C 2D QS 8H 7H
6D 7H 3H JS TS AC 2D JH 7C 8S
JH 5H KC 3C TC 5S 9H 4C 8H 9D
8S KC 5H 9H AD KS 9D KH 8D AH
JC 2H 9H KS 6S 3H QC 5H AH 9C
5C KH 5S AD 6C JC 9H QC 9C TD
5S 5D JC QH 2D KS 8H QS 2H TS
JH 5H 5S AH 7H 3C 8S AS TD KH
6H 3D JD 2C 4C KC 7S AH 6C JH
4C KS 9D AD 7S KC 7D 8H 3S 9C
7H 5C 5H 3C 8H QC 3D KH 6D JC
2D 4H 5D 7D QC AD AH 9H QH 8H
KD 8C JS 9D 3S 3C 2H 5D 6D 2S
8S 6S TS 3C 6H 8D 5S 3H TD 6C
KS 3D JH 9C 7C 9S QS 5S 4H 6H
7S 6S TH 4S KC KD 3S JC JH KS
7C 3C 2S 6D QH 2C 7S 5H 8H AH
KC 8D QD 6D KH 5C 7H 9D 3D 9C
6H 2D 8S JS 9S 2S 6D KC 7C TC
KD 9C JH 7H KC 8S 2S 7S 3D 6H
4H 9H 2D 4C 8H 7H 5S 8S 2H 8D
AD 7C 3C 7S 5S 4D 9H 3D JC KH
5D AS 7D 6D 9C JC 4C QH QS KH
KD JD 7D 3D QS QC 8S 6D JS QD
6S 8C 5S QH TH 9H AS AC 2C JD
QC KS QH 7S 3C 4C 5C KC 5D AH
6C 4H 9D AH 2C 3H KD 3D TS 5C
TD 8S QS AS JS 3H KD AC 4H KS
7D 5D TS 9H 4H 4C 9C 2H 8C QC
2C 7D 9H 4D KS 4C QH AD KD JS
QD AD AH KH 9D JS 9H JC KD JD
8S 3C 4S TS 7S 4D 5C 2S 6H 7C
JS 7S 5C KD 6D QH 8S TD 2H 6S
QH 6C TC 6H TD 4C 9D 2H QC 8H
3D TS 4D 2H 6H 6S 2C 7H 8S 6C
9H 9D JD JH 3S AH 2C 6S 3H 8S
2C QS 8C 5S 3H 2S 7D 3C AD 4S
5C QC QH AS TS 4S 6S 4C 5H JS
JH 5C TD 4C 6H JS KD KH QS 4H
TC KH JC 4D 9H 9D 8D KC 3C 8H
2H TC 8S AD 9S 4H TS 7H 2C 5C
4H 2S 6C 5S KS AH 9C 7C 8H KD
TS QH TD QS 3C JH AH 2C 8D 7D
5D KC 3H 5S AC 4S 7H QS 4C 2H
3D 7D QC KH JH 6D 6C TD TH KD
5S 8D TH 6C 9D 7D KH 8C 9S 6D
JD QS 7S QC 2S QH JC 4S KS 8D
7S 5S 9S JD KD 9C JC AD 2D 7C
4S 5H AH JH 9C 5D TD 7C 2D 6S
KC 6C 7H 6S 9C QD 5S 4H KS TD
6S 8D KS 2D TH TD 9H JD TS 3S
KH JS 4H 5D 9D TC TD QC JD TS
QS QD AC AD 4C 6S 2D AS 3H KC
4C 7C 3C TD QS 9C KC AS 8D AD
KC 7H QC 6D 8H 6S 5S AH 7S 8C
3S AD 9H JC 6D JD AS KH 6S JH
AD 3D TS KS 7H JH 2D JS QD AC
9C JD 7C 6D TC 6H 6C JC 3D 3S
QC KC 3S JC KD 2C 8D AH QS TS
AS KD 3D JD 8H 7C 8C 5C QD 6C
"A","ABILITY","ABLE","ABOUT","ABOVE","ABSENCE","ABSOLUTELY","ACADEMIC","ACCEPT","ACCESS","ACCIDENT","ACCOMPANY","ACCORDING","ACCOUNT","ACHIEVE","ACHIEVEMENT","ACID","ACQUIRE","ACROSS","ACT","ACTION","ACTIVE","ACTIVITY","ACTUAL","ACTUALLY","ADD","ADDITION","ADDITIONAL","ADDRESS","ADMINISTRATION","ADMIT","ADOPT","ADULT","ADVANCE","ADVANTAGE","ADVICE","ADVISE","AFFAIR","AFFECT","AFFORD","AFRAID","AFTER","AFTERNOON","AFTERWARDS","AGAIN","AGAINST","AGE","AGENCY","AGENT","AGO","AGREE","AGREEMENT","AHEAD","AID","AIM","AIR","AIRCRAFT","ALL","ALLOW","ALMOST","ALONE","ALONG","ALREADY","ALRIGHT","ALSO","ALTERNATIVE","ALTHOUGH","ALWAYS","AMONG","AMONGST","AMOUNT","AN","ANALYSIS","ANCIENT","AND","ANIMAL","ANNOUNCE","ANNUAL","ANOTHER","ANSWER","ANY","ANYBODY","ANYONE","ANYTHING","ANYWAY","APART","APPARENT","APPARENTLY","APPEAL","APPEAR","APPEARANCE","APPLICATION","APPLY","APPOINT","APPOINTMENT","APPROACH","APPROPRIATE","APPROVE","AREA","ARGUE","ARGUMENT","ARISE","ARM","ARMY","AROUND","ARRANGE","ARRANGEMENT","ARRIVE","ART","ARTICLE","ARTIST","AS","ASK","ASPECT","ASSEMBLY","ASSESS","ASSESSMENT","ASSET","ASSOCIATE","ASSOCIATION","ASSUME","ASSUMPTION","AT","ATMOSPHERE","ATTACH","ATTACK","ATTEMPT","ATTEND","ATTENTION","ATTITUDE","ATTRACT","ATTRACTIVE","AUDIENCE","AUTHOR","AUTHORITY","AVAILABLE","AVERAGE","AVOID","AWARD","AWARE","AWAY","AYE","BABY","BACK","BACKGROUND","BAD","BAG","BALANCE","BALL","BAND","BANK","BAR","BASE","BASIC","BASIS","BATTLE","BE","BEAR","BEAT","BEAUTIFUL","BECAUSE","BECOME","BED","BEDROOM","BEFORE","BEGIN","BEGINNING","BEHAVIOUR","BEHIND","BELIEF","BELIEVE","BELONG","BELOW","BENEATH","BENEFIT","BESIDE","BEST","BETTER","BETWEEN","BEYOND","BIG","BILL","BIND","BIRD","BIRTH","BIT","BLACK","BLOCK","BLOOD","BLOODY","BLOW","BLUE","BOARD","BOAT","BODY","BONE","BOOK","BORDER","BOTH","BOTTLE","BOTTOM","BOX","BOY","BRAIN","BRANCH","BREAK","BREATH","BRIDGE","BRIEF","BRIGHT","BRING","BROAD","BROTHER","BUDGET","BUILD","BUILDING","BURN","BUS","BUSINESS","BUSY","BUT","BUY","BY","CABINET","CALL","CAMPAIGN","CAN","CANDIDATE","CAPABLE","CAPACITY","CAPITAL","CAR","CARD","CARE","CAREER","CAREFUL","CAREFULLY","CARRY","CASE","CASH","CAT","CATCH","CATEGORY","CAUSE","CELL","CENTRAL","CENTRE","CENTURY","CERTAIN","CERTAINLY","CHAIN","CHAIR","CHAIRMAN","CHALLENGE","CHANCE","CHANGE","CHANNEL","CHAPTER","CHARACTER","CHARACTERISTIC","CHARGE","CHEAP","CHECK","CHEMICAL","CHIEF","CHILD","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUMSTANCE","CITIZEN","CITY","CIVIL","CLAIM","CLASS","CLEAN","CLEAR","CLEARLY","CLIENT","CLIMB","CLOSE","CLOSELY","CLOTHES","CLUB","COAL","CODE","COFFEE","COLD","COLLEAGUE","COLLECT","COLLECTION","COLLEGE","COLOUR","COMBINATION","COMBINE","COME","COMMENT","COMMERCIAL","COMMISSION","COMMIT","COMMITMENT","COMMITTEE","COMMON","COMMUNICATION","COMMUNITY","COMPANY","COMPARE","COMPARISON","COMPETITION","COMPLETE","COMPLETELY","COMPLEX","COMPONENT","COMPUTER","CONCENTRATE","CONCENTRATION","CONCEPT","CONCERN","CONCERNED","CONCLUDE","CONCLUSION","CONDITION","CONDUCT","CONFERENCE","CONFIDENCE","CONFIRM","CONFLICT","CONGRESS","CONNECT","CONNECTION","CONSEQUENCE","CONSERVATIVE","CONSIDER","CONSIDERABLE","CONSIDERATION","CONSIST","CONSTANT","CONSTRUCTION","CONSUMER","CONTACT","CONTAIN","CONTENT","CONTEXT","CONTINUE","CONTRACT","CONTRAST","CONTRIBUTE","CONTRIBUTION","CONTROL","CONVENTION","CONVERSATION","COPY","CORNER","CORPORATE","CORRECT","COS","COST","COULD","COUNCIL","COUNT","COUNTRY","COUNTY","COUPLE","COURSE","COURT","COVER","CREATE","CREATION","CREDIT","CRIME","CRIMINAL","CRISIS","CRITERION","CRITICAL","CRITICISM","CROSS","CROWD","CRY","CULTURAL","CULTURE","CUP","CURRENT","CURRENTLY","CURRICULUM","CUSTOMER","CUT","DAMAGE","DANGER","DANGEROUS","DARK","DATA","DATE","DAUGHTER","DAY","DEAD","DEAL","DEATH","DEBATE","DEBT","DECADE","DECIDE","DECISION","DECLARE","DEEP","DEFENCE","DEFENDANT","DEFINE","DEFINITION","DEGREE","DELIVER","DEMAND","DEMOCRATIC","DEMONSTRATE","DENY","DEPARTMENT","DEPEND","DEPUTY","DERIVE","DESCRIBE","DESCRIPTION","DESIGN","DESIRE","DESK","DESPITE","DESTROY","DETAIL","DETAILED","DETERMINE","DEVELOP","DEVELOPMENT","DEVICE","DIE","DIFFERENCE","DIFFERENT","DIFFICULT","DIFFICULTY","DINNER","DIRECT","DIRECTION","DIRECTLY","DIRECTOR","DISAPPEAR","DISCIPLINE","DISCOVER","DISCUSS","DISCUSSION","DISEASE","DISPLAY","DISTANCE","DISTINCTION","DISTRIBUTION","DISTRICT","DIVIDE","DIVISION","DO","DOCTOR","DOCUMENT","DOG","DOMESTIC","DOOR","DOUBLE","DOUBT","DOWN","DRAW","DRAWING","DREAM","DRESS","DRINK","DRIVE","DRIVER","DROP","DRUG","DRY","DUE","DURING","DUTY","EACH","EAR","EARLY","EARN","EARTH","EASILY","EAST","EASY","EAT","ECONOMIC","ECONOMY","EDGE","EDITOR","EDUCATION","EDUCATIONAL","EFFECT","EFFECTIVE","EFFECTIVELY","EFFORT","EGG","EITHER","ELDERLY","ELECTION","ELEMENT","ELSE","ELSEWHERE","EMERGE","EMPHASIS","EMPLOY","EMPLOYEE","EMPLOYER","EMPLOYMENT","EMPTY","ENABLE","ENCOURAGE","END","ENEMY","ENERGY","ENGINE","ENGINEERING","ENJOY","ENOUGH","ENSURE","ENTER","ENTERPRISE","ENTIRE","ENTIRELY","ENTITLE","ENTRY","ENVIRONMENT","ENVIRONMENTAL","EQUAL","EQUALLY","EQUIPMENT","ERROR","ESCAPE","ESPECIALLY","ESSENTIAL","ESTABLISH","ESTABLISHMENT","ESTATE","ESTIMATE","EVEN","EVENING","EVENT","EVENTUALLY","EVER","EVERY","EVERYBODY","EVERYONE","EVERYTHING","EVIDENCE","EXACTLY","EXAMINATION","EXAMINE","EXAMPLE","EXCELLENT","EXCEPT","EXCHANGE","EXECUTIVE","EXERCISE","EXHIBITION","EXIST","EXISTENCE","EXISTING","EXPECT","EXPECTATION","EXPENDITURE","EXPENSE","EXPENSIVE","EXPERIENCE","EXPERIMENT","EXPERT","EXPLAIN","EXPLANATION","EXPLORE","EXPRESS","EXPRESSION","EXTEND","EXTENT","EXTERNAL","EXTRA","EXTREMELY","EYE","FACE","FACILITY","FACT","FACTOR","FACTORY","FAIL","FAILURE","FAIR","FAIRLY","FAITH","FALL","FAMILIAR","FAMILY","FAMOUS","FAR","FARM","FARMER","FASHION","FAST","FATHER","FAVOUR","FEAR","FEATURE","FEE","FEEL","FEELING","FEMALE","FEW","FIELD","FIGHT","FIGURE","FILE","FILL","FILM","FINAL","FINALLY","FINANCE","FINANCIAL","FIND","FINDING","FINE","FINGER","FINISH","FIRE","FIRM","FIRST","FISH","FIT","FIX","FLAT","FLIGHT","FLOOR","FLOW","FLOWER","FLY","FOCUS","FOLLOW","FOLLOWING","FOOD","FOOT","FOOTBALL","FOR","FORCE","FOREIGN","FOREST","FORGET","FORM","FORMAL","FORMER","FORWARD","FOUNDATION","FREE","FREEDOM","FREQUENTLY","FRESH","FRIEND","FROM","FRONT","FRUIT","FUEL","FULL","FULLY","FUNCTION","FUND","FUNNY","FURTHER","FUTURE","GAIN","GAME","GARDEN","GAS","GATE","GATHER","GENERAL","GENERALLY","GENERATE","GENERATION","GENTLEMAN","GET","GIRL","GIVE","GLASS","GO","GOAL","GOD","GOLD","GOOD","GOVERNMENT","GRANT","GREAT","GREEN","GREY","GROUND","GROUP","GROW","GROWING","GROWTH","GUEST","GUIDE","GUN","HAIR","HALF","HALL","HAND","HANDLE","HANG","HAPPEN","HAPPY","HARD","HARDLY","HATE","HAVE","HE","HEAD","HEALTH","HEAR","HEART","HEAT","HEAVY","HELL","HELP","HENCE","HER","HERE","HERSELF","HIDE","HIGH","HIGHLY","HILL","HIM","HIMSELF","HIS","HISTORICAL","HISTORY","HIT","HOLD","HOLE","HOLIDAY","HOME","HOPE","HORSE","HOSPITAL","HOT","HOTEL","HOUR","HOUSE","HOUSEHOLD","HOUSING","HOW","HOWEVER","HUGE","HUMAN","HURT","HUSBAND","I","IDEA","IDENTIFY","IF","IGNORE","ILLUSTRATE","IMAGE","IMAGINE","IMMEDIATE","IMMEDIATELY","IMPACT","IMPLICATION","IMPLY","IMPORTANCE","IMPORTANT","IMPOSE","IMPOSSIBLE","IMPRESSION","IMPROVE","IMPROVEMENT","IN","INCIDENT","INCLUDE","INCLUDING","INCOME","INCREASE","INCREASED","INCREASINGLY","INDEED","INDEPENDENT","INDEX","INDICATE","INDIVIDUAL","INDUSTRIAL","INDUSTRY","INFLUENCE","INFORM","INFORMATION","INITIAL","INITIATIVE","INJURY","INSIDE","INSIST","INSTANCE","INSTEAD","INSTITUTE","INSTITUTION","INSTRUCTION","INSTRUMENT","INSURANCE","INTEND","INTENTION","INTEREST","INTERESTED","INTERESTING","INTERNAL","INTERNATIONAL","INTERPRETATION","INTERVIEW","INTO","INTRODUCE","INTRODUCTION","INVESTIGATE","INVESTIGATION","INVESTMENT","INVITE","INVOLVE","IRON","IS","ISLAND","ISSUE","IT","ITEM","ITS","ITSELF","JOB","JOIN","JOINT","JOURNEY","JUDGE","JUMP","JUST","JUSTICE","KEEP","KEY","KID","KILL","KIND","KING","KITCHEN","KNEE","KNOW","KNOWLEDGE","LABOUR","LACK","LADY","LAND","LANGUAGE","LARGE","LARGELY","LAST","LATE","LATER","LATTER","LAUGH","LAUNCH","LAW","LAWYER","LAY","LEAD","LEADER","LEADERSHIP","LEADING","LEAF","LEAGUE","LEAN","LEARN","LEAST","LEAVE","LEFT","LEG","LEGAL","LEGISLATION","LENGTH","LESS","LET","LETTER","LEVEL","LIABILITY","LIBERAL","LIBRARY","LIE","LIFE","LIFT","LIGHT","LIKE","LIKELY","LIMIT","LIMITED","LINE","LINK","LIP","LIST","LISTEN","LITERATURE","LITTLE","LIVE","LIVING","LOAN","LOCAL","LOCATION","LONG","LOOK","LORD","LOSE","LOSS","LOT","LOVE","LOVELY","LOW","LUNCH","MACHINE","MAGAZINE","MAIN","MAINLY","MAINTAIN","MAJOR","MAJORITY","MAKE","MALE","MAN","MANAGE","MANAGEMENT","MANAGER","MANNER","MANY","MAP","MARK","MARKET","MARRIAGE","MARRIED","MARRY","MASS","MASTER","MATCH","MATERIAL","MATTER","MAY","MAYBE","ME","MEAL","MEAN","MEANING","MEANS","MEANWHILE","MEASURE","MECHANISM","MEDIA","MEDICAL","MEET","MEETING","MEMBER","MEMBERSHIP","MEMORY","MENTAL","MENTION","MERELY","MESSAGE","METAL","METHOD","MIDDLE","MIGHT","MILE","MILITARY","MILK","MIND","MINE","MINISTER","MINISTRY","MINUTE","MISS","MISTAKE","MODEL","MODERN","MODULE","MOMENT","MONEY","MONTH","MORE","MORNING","MOST","MOTHER","MOTION","MOTOR","MOUNTAIN","MOUTH","MOVE","MOVEMENT","MUCH","MURDER","MUSEUM","MUSIC","MUST","MY","MYSELF","NAME","NARROW","NATION","NATIONAL","NATURAL","NATURE","NEAR","NEARLY","NECESSARILY","NECESSARY","NECK","NEED","NEGOTIATION","NEIGHBOUR","NEITHER","NETWORK","NEVER","NEVERTHELESS","NEW","NEWS","NEWSPAPER","NEXT","NICE","NIGHT","NO","NOBODY","NOD","NOISE","NONE","NOR","NORMAL","NORMALLY","NORTH","NORTHERN","NOSE","NOT","NOTE","NOTHING","NOTICE","NOTION","NOW","NUCLEAR","NUMBER","NURSE","OBJECT","OBJECTIVE","OBSERVATION","OBSERVE","OBTAIN","OBVIOUS","OBVIOUSLY","OCCASION","OCCUR","ODD","OF","OFF","OFFENCE","OFFER","OFFICE","OFFICER","OFFICIAL","OFTEN","OIL","OKAY","OLD","ON","ONCE","ONE","ONLY","ONTO","OPEN","OPERATE","OPERATION","OPINION","OPPORTUNITY","OPPOSITION","OPTION","OR","ORDER","ORDINARY","ORGANISATION","ORGANISE","ORGANIZATION","ORIGIN","ORIGINAL","OTHER","OTHERWISE","OUGHT","OUR","OURSELVES","OUT","OUTCOME","OUTPUT","OUTSIDE","OVER","OVERALL","OWN","OWNER","PACKAGE","PAGE","PAIN","PAINT","PAINTING","PAIR","PANEL","PAPER","PARENT","PARK","PARLIAMENT","PART","PARTICULAR","PARTICULARLY","PARTLY","PARTNER","PARTY","PASS","PASSAGE","PAST","PATH","PATIENT","PATTERN","PAY","PAYMENT","PEACE","PENSION","PEOPLE","PER","PERCENT","PERFECT","PERFORM","PERFORMANCE","PERHAPS","PERIOD","PERMANENT","PERSON","PERSONAL","PERSUADE","PHASE","PHONE","PHOTOGRAPH","PHYSICAL","PICK","PICTURE","PIECE","PLACE","PLAN","PLANNING","PLANT","PLASTIC","PLATE","PLAY","PLAYER","PLEASE","PLEASURE","PLENTY","PLUS","POCKET","POINT","POLICE","POLICY","POLITICAL","POLITICS","POOL","POOR","POPULAR","POPULATION","POSITION","POSITIVE","POSSIBILITY","POSSIBLE","POSSIBLY","POST","POTENTIAL","POUND","POWER","POWERFUL","PRACTICAL","PRACTICE","PREFER","PREPARE","PRESENCE","PRESENT","PRESIDENT","PRESS","PRESSURE","PRETTY","PREVENT","PREVIOUS","PREVIOUSLY","PRICE","PRIMARY","PRIME","PRINCIPLE","PRIORITY","PRISON","PRISONER","PRIVATE","PROBABLY","PROBLEM","PROCEDURE","PROCESS","PRODUCE","PRODUCT","PRODUCTION","PROFESSIONAL","PROFIT","PROGRAM","PROGRAMME","PROGRESS","PROJECT","PROMISE","PROMOTE","PROPER","PROPERLY","PROPERTY","PROPORTION","PROPOSE","PROPOSAL","PROSPECT","PROTECT","PROTECTION","PROVE","PROVIDE","PROVIDED","PROVISION","PUB","PUBLIC","PUBLICATION","PUBLISH","PULL","PUPIL","PURPOSE","PUSH","PUT","QUALITY","QUARTER","QUESTION","QUICK","QUICKLY","QUIET","QUITE","RACE","RADIO","RAILWAY","RAIN","RAISE","RANGE","RAPIDLY","RARE","RATE","RATHER","REACH","REACTION","READ","READER","READING","READY","REAL","REALISE","REALITY","REALIZE","REALLY","REASON","REASONABLE","RECALL","RECEIVE","RECENT","RECENTLY","RECOGNISE","RECOGNITION","RECOGNIZE","RECOMMEND","RECORD","RECOVER","RED","REDUCE","REDUCTION","REFER","REFERENCE","REFLECT","REFORM","REFUSE","REGARD","REGION","REGIONAL","REGULAR","REGULATION","REJECT","RELATE","RELATION","RELATIONSHIP","RELATIVE","RELATIVELY","RELEASE","RELEVANT","RELIEF","RELIGION","RELIGIOUS","RELY","REMAIN","REMEMBER","REMIND","REMOVE","REPEAT","REPLACE","REPLY","REPORT","REPRESENT","REPRESENTATION","REPRESENTATIVE","REQUEST","REQUIRE","REQUIREMENT","RESEARCH","RESOURCE","RESPECT","RESPOND","RESPONSE","RESPONSIBILITY","RESPONSIBLE","REST","RESTAURANT","RESULT","RETAIN","RETURN","REVEAL","REVENUE","REVIEW","REVOLUTION","RICH","RIDE","RIGHT","RING","RISE","RISK","RIVER","ROAD","ROCK","ROLE","ROLL","ROOF","ROOM","ROUND","ROUTE","ROW","ROYAL","RULE","RUN","RURAL","SAFE","SAFETY","SALE","SAME","SAMPLE","SATISFY","SAVE","SAY","SCALE","SCENE","SCHEME","SCHOOL","SCIENCE","SCIENTIFIC","SCIENTIST","SCORE","SCREEN","SEA","SEARCH","SEASON","SEAT","SECOND","SECONDARY","SECRETARY","SECTION","SECTOR","SECURE","SECURITY","SEE","SEEK","SEEM","SELECT","SELECTION","SELL","SEND","SENIOR","SENSE","SENTENCE","SEPARATE","SEQUENCE","SERIES","SERIOUS","SERIOUSLY","SERVANT","SERVE","SERVICE","SESSION","SET","SETTLE","SETTLEMENT","SEVERAL","SEVERE","SEX","SEXUAL","SHAKE","SHALL","SHAPE","SHARE","SHE","SHEET","SHIP","SHOE","SHOOT","SHOP","SHORT","SHOT","SHOULD","SHOULDER","SHOUT","SHOW","SHUT","SIDE","SIGHT","SIGN","SIGNAL","SIGNIFICANCE","SIGNIFICANT","SILENCE","SIMILAR","SIMPLE","SIMPLY","SINCE","SING","SINGLE","SIR","SISTER","SIT","SITE","SITUATION","SIZE","SKILL","SKIN","SKY","SLEEP","SLIGHTLY","SLIP","SLOW","SLOWLY","SMALL","SMILE","SO","SOCIAL","SOCIETY","SOFT","SOFTWARE","SOIL","SOLDIER","SOLICITOR","SOLUTION","SOME","SOMEBODY","SOMEONE","SOMETHING","SOMETIMES","SOMEWHAT","SOMEWHERE","SON","SONG","SOON","SORRY","SORT","SOUND","SOURCE","SOUTH","SOUTHERN","SPACE","SPEAK","SPEAKER","SPECIAL","SPECIES","SPECIFIC","SPEECH","SPEED","SPEND","SPIRIT","SPORT","SPOT","SPREAD","SPRING","STAFF","STAGE","STAND","STANDARD","STAR","START","STATE","STATEMENT","STATION","STATUS","STAY","STEAL","STEP","STICK","STILL","STOCK","STONE","STOP","STORE","STORY","STRAIGHT","STRANGE","STRATEGY","STREET","STRENGTH","STRIKE","STRONG","STRONGLY","STRUCTURE","STUDENT","STUDIO","STUDY","STUFF","STYLE","SUBJECT","SUBSTANTIAL","SUCCEED","SUCCESS","SUCCESSFUL","SUCH","SUDDENLY","SUFFER","SUFFICIENT","SUGGEST","SUGGESTION","SUITABLE","SUM","SUMMER","SUN","SUPPLY","SUPPORT","SUPPOSE","SURE","SURELY","SURFACE","SURPRISE","SURROUND","SURVEY","SURVIVE","SWITCH","SYSTEM","TABLE","TAKE","TALK","TALL","TAPE","TARGET","TASK","TAX","TEA","TEACH","TEACHER","TEACHING","TEAM","TEAR","TECHNICAL","TECHNIQUE","TECHNOLOGY","TELEPHONE","TELEVISION","TELL","TEMPERATURE","TEND","TERM","TERMS","TERRIBLE","TEST","TEXT","THAN","THANK","THANKS","THAT","THE","THEATRE","THEIR","THEM","THEME","THEMSELVES","THEN","THEORY","THERE","THEREFORE","THESE","THEY","THIN","THING","THINK","THIS","THOSE","THOUGH","THOUGHT","THREAT","THREATEN","THROUGH","THROUGHOUT","THROW","THUS","TICKET","TIME","TINY","TITLE","TO","TODAY","TOGETHER","TOMORROW","TONE","TONIGHT","TOO","TOOL","TOOTH","TOP","TOTAL","TOTALLY","TOUCH","TOUR","TOWARDS","TOWN","TRACK","TRADE","TRADITION","TRADITIONAL","TRAFFIC","TRAIN","TRAINING","TRANSFER","TRANSPORT","TRAVEL","TREAT","TREATMENT","TREATY","TREE","TREND","TRIAL","TRIP","TROOP","TROUBLE","TRUE","TRUST","TRUTH","TRY","TURN","TWICE","TYPE","TYPICAL","UNABLE","UNDER","UNDERSTAND","UNDERSTANDING","UNDERTAKE","UNEMPLOYMENT","UNFORTUNATELY","UNION","UNIT","UNITED","UNIVERSITY","UNLESS","UNLIKELY","UNTIL","UP","UPON","UPPER","URBAN","US","USE","USED","USEFUL","USER","USUAL","USUALLY","VALUE","VARIATION","VARIETY","VARIOUS","VARY","VAST","VEHICLE","VERSION","VERY","VIA","VICTIM","VICTORY","VIDEO","VIEW","VILLAGE","VIOLENCE","VISION","VISIT","VISITOR","VITAL","VOICE","VOLUME","VOTE","WAGE","WAIT","WALK","WALL","WANT","WAR","WARM","WARN","WASH","WATCH","WATER","WAVE","WAY","WE","WEAK","WEAPON","WEAR","WEATHER","WEEK","WEEKEND","WEIGHT","WELCOME","WELFARE","WELL","WEST","WESTERN","WHAT","WHATEVER","WHEN","WHERE","WHEREAS","WHETHER","WHICH","WHILE","WHILST","WHITE","WHO","WHOLE","WHOM","WHOSE","WHY","WIDE","WIDELY","WIFE","WILD","WILL","WIN","WIND","WINDOW","WINE","WING","WINNER","WINTER","WISH","WITH","WITHDRAW","WITHIN","WITHOUT","WOMAN","WONDER","WONDERFUL","WOOD","WORD","WORK","WORKER","WORKING","WORKS","WORLD","WORRY","WORTH","WOULD","WRITE","WRITER","WRITING","WRONG","YARD","YEAH","YEAR","YES","YESTERDAY","YET","YOU","YOUNG","YOUR","YOURSELF","YOUTH"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment