veikko turku 20february2007 presentation …web.abo.fi/fak/mnf/mate/cade2007/talks/veikko...in 1961...

42
Veikko Keränen, Rovaniemi University of Applied Sciences http://south.rotol.ramk.fi Mathematica in Research of Pattern Avoidance in Words CADE 2007, Åbo Akademi University Turku, 20 February 2007 Mathematica - interactive computations, visualisations - versatile structures, firm support for concept development - unified symbolic expressions, rule-based and dynamic programming Combinatorics on Words (Axel Thue, 1906) Abelian Pattern Avoidance (over 4 letters) Pure Mathematics, Big Experimental Part, Cryptography, Bioinformatics, Generation of Extreme Events Problem posed by Erdös (1961) Our solution 1992: V. Keränen. Abelian squares are avoidable on 4 letters. In W. Kuich, editor, Proc. ICALP '92, Lecture Notes in Comp. Sci., 623:4152. Springer-Verlag, Berlin, 1992.

Upload: others

Post on 15-Apr-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Veikko Keränen, Rovaniemi University of Applied Scienceshttp://south.rotol.ramk.fi

Mathematica in Research of Pattern Avoidance in Words

CADE 2007, Åbo Akademi UniversityTurku, 20 February 2007

Mathematica- interactive computations, visualisations- versatile structures, firm support for concept development- unified symbolic expressions, rule-based and dynamic programming

Combinatorics on Words (Axel Thue, 1906)Abelian Pattern Avoidance (over 4 letters)

Pure Mathematics, Big Experimental Part, Cryptography, Bioinformatics, Generation of Extreme Events

Problem posed by Erdös (1961)Our solution 1992: V. Keränen. Abelian squares are avoidable on 4 letters. In W. Kuich, editor, Proc. ICALP '92, Lecture Notes in Comp. Sci., 623:41–52. Springer-Verlag, Berlin, 1992.

g85HabcacdcbL

a b c a c d c b

Visualisation below by Erik Jensen:

2 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 3

Participating Students from 1990 to 2007:

Kari Tuovinen 1990

Minna Iivonen, Anja Keskinarkaus, Marko Manninen 1993

Abdeljalil Chabani, Tomi Laakso 1994

Mika Moilanen, Juha Särestöniemi 1996

Juho Alfthan 1999

Olli-Pentti Saira 2000

Marja Kenttä, Ville Mattila 2001

Lauri Autio, Marianna Mölläri 2002

Antti Eskola (GRID) 2003

Antti Karhu, Veli-Matti Lahtela, Olli-Pekka Siivola (FPGA) 2004

Esa Nyrhinen, Sami Vuolli 2005

Esa Taskila, Mikhail Kalkov, Antti Oja, Viet Pham Hoang (GRID) 2006

Avoiding Regularities in Words – preliminaries, history, some visualizations

à Introduction

The systematic study of structures in words (or strings)

was started by Axel Thue (1863-1922) in 1906:We consider the question whether, given words u and w,

there always exists a nonerasing morphism h : A* Ø B*

such that h(u) is a factor of w.

4 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

In 1961 Paul Erdös (1913 - 1996) posed the question:

Is it possible to avoid abelian squares (permutation or anagram repetitions) in arbi-trarily long words?

à Definitions

A word (string) is an element of a free monoid.

The generator (alphabet) is a finite non-empty set that consists of abstract symbols (letters).

A square (ordinary) is a repetition of the form u u.

Example: abcb´̈ ¨̈ ¨̈≠ ƨ¨̈u

abcb´̈ ¨̈ ¨̈≠ ƨ¨̈u

œ 8a, b, c<*.

{u__, u__}

An abelian square is a string of the form u v, where u and v are permutations (anagrams) of each other, i.e., their Parikh-vectors are the same:

y(u) = (#a, #b, #c, #d) = y(v).

Example: abcb´̈ ¨̈ ¨̈≠ ƨ¨̈u

cbab´̈ ¨̈ ¨̈≠ ƨ¨̈v

œ 8a, b, c<* ; y(u) = y(v) = (1, 2, 1)

or

abcbabd´̈ ¨¨¨̈ ¨̈ ¨̈ ≠ ƨ¨¨¨̈ ¨̈u

abacbdb´̈ ¨¨¨̈ ¨̈ ¨̈≠ ƨ¨¨¨̈ ¨̈v

œ 8a, b, c, d<*; y(u) = y(v) = (2, 3, 1, 1).

{u__, v__} /; Sort[{u}] Sort[{v}]

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 5

A string is square-free, if it does not contain any squares as a factor,

i.e., it avoids {___, u__, u__, ___} pattern.

A string is abelian square-free [a-2-free], if it does not contain any abelian squares as a factor,

i.e., it avoids {___, u__, v__, ___} /; Sort[{u}] Sort[{v}] pat-tern.

If it is possible to construct arbitrarily long (infinite) square-free (or other pattern-free) strings over a given alphabet X, then we say that squares (or those patterns) are avoidable over X.

Other kinds of examples of patterns by James D. Currie (Winnipeg):

mississippi = m i ssi ssi p p i encounters abbcca in abelian sense.

reproportioner = re pro por tion er encounters abbca in abelian sense.

à History and Basic Concepts

Axel Thue (1906, 1912)

$ cube-free (3-free), and even overlap-free, infinite strings over 8a, b<.Thue iterated the endomorphism g: {a, b}* Ø {a, b}* :

productions = 8"a" → "ab ", "b" → "ba "<;g@x_D := StringReplace@x, productionsD

6 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

NestList@g, "a", 5D êê TableForm

aabab baab ba ba abab ba ba ab ba ab ab baab ba ba ab ba ab ab ba ba ab ab ba ab ba ba ab

The limit t = lim n ض gn(a) is the so-called Prouhet(1851)–Thue(1912)–Morse(1921) sequence.

Theorem An infinite overlap-free binary word is a fixed point of a non-identity morphism if and only if it is equal to t, the (Prouhet-)Thue-Morse word, or its complement t

-.

$ square-free (2-free) infinite strings over {a, b, c}:

productions =

8"a" → "abc ", "b" → "ac ", "c" → "b ", " " → ""<;

NestList@g, "a", 5D êê TableForm

aabcabc ac babc ac b abc b acabc ac b abc b ac abc ac b ac abc babc ac b abc b ac abc ac b ac abc b abc ac b abc b ac abc b abc ac b ac

Remark: g(aba) = a b c a c a b c is not 2-free !

How long abelian square-free words are there over different alphabets?

{a}: a length = | w | = 1

{a, b}:ababab

| w | = 3

{a, b, c}: abacaba, ... | w | = 7

ô Let's try to extend abacaba:

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 7

abacaba With Mathematica:

patternFreeLists =

With@8n = 8, k = 3<, NestList@DeleteCases@Flatten@Map@Table@Append@#, i − 1D, 8i, k<D &,#D, 1D, 8___, u__, v__< ê;

Sort@8u<D Sort@8v<DD &, 88<<, nDD

988<<,i

k

jjjjjjjjj

012

y

{

zzzzzzzzz,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjj

0 10 21 01 22 02 1

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzz

,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 00 1 20 2 00 2 11 0 11 0 21 2 01 2 12 0 12 0 22 1 02 1 2

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 0 20 1 2 00 1 2 10 2 0 10 2 1 00 2 1 21 0 1 21 0 2 01 0 2 11 2 0 11 2 0 21 2 1 02 0 1 02 0 1 22 0 2 12 1 0 12 1 0 22 1 2 0

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 0 2 00 1 0 2 10 1 2 0 10 1 2 0 20 1 2 1 00 2 0 1 00 2 0 1 20 2 1 0 10 2 1 0 20 2 1 2 01 0 1 2 01 0 1 2 11 0 2 0 11 0 2 1 01 0 2 1 21 2 0 1 01 2 0 1 21 2 0 2 11 2 1 0 11 2 1 0 22 0 1 0 22 0 1 2 02 0 1 2 12 0 2 1 02 0 2 1 22 1 0 1 22 1 0 2 02 1 0 2 12 1 2 0 12 1 2 0 2

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 0 2 0 10 1 0 2 1 00 1 0 2 1 20 1 2 0 1 00 1 2 1 0 10 2 0 1 0 20 2 0 1 2 00 2 0 1 2 10 2 1 0 2 00 2 1 2 0 21 0 1 2 0 11 0 1 2 0 21 0 1 2 1 01 0 2 0 1 01 0 2 1 0 11 2 0 1 2 11 2 0 2 1 21 2 1 0 1 21 2 1 0 2 01 2 1 0 2 12 0 1 0 2 02 0 1 2 0 22 0 2 1 0 12 0 2 1 0 22 0 2 1 2 02 1 0 1 2 12 1 0 2 1 22 1 2 0 1 02 1 2 0 1 22 1 2 0 2 1

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 0 2 0 1 00 1 0 2 1 0 10 1 2 1 0 1 20 2 0 1 0 2 00 2 0 1 2 0 20 2 1 2 0 2 11 0 1 2 0 1 01 0 1 2 1 0 11 0 2 0 1 0 21 2 0 2 1 2 01 2 1 0 1 2 11 2 1 0 2 1 22 0 1 0 2 0 12 0 2 1 0 2 02 0 2 1 2 0 22 1 0 1 2 1 02 1 2 0 1 2 12 1 2 0 2 1 2

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

, 8<=

{a, b, c, d}: abcacdcbcdcadcdbdabacabadbabcbdbcbacbcdcacbabdabacadcbcdc ... | w | = ¶ (Keränen, 1990-1992)

8 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

g85a =

"abcacdcbcdcadcdbdabacabadbabcbdbcbacbcdcacbabdabacadcbcdcacdbcbacbcdcacdcbdcdadbdcbca";

cyclicPermutation =

8"a" → "b", "b" → "c", "c" → "d", "d" → "a"<;

g85b = StringReplace@g85a, cyclicPermutationDg85c = StringReplace@g85b, cyclicPermutationDg85d = StringReplace@g85c, cyclicPermutationD

s@x_StringD := Apply@Plus, Characters@xDD

s@ga85D

19 a + 21 b + 27 c + 18 d

Permutative reappearances, semi-mirror and -palindrome factors in g85

Other Results – especially Carpi's characterisation of a-n-free morphisms

Pleasants 1969

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 9

There exist infinite a-4-free words over 2 letters and infinite a-3-free words over 3 letters. (Dekking, 1978; arithmetic progression free groups).

10 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

During the years 1979 - 1986 k-free (ordinary k-freeness) morphisms and DOL-se-quences were quite sharply characterised: h: S* Ø D * is k-free if and only if h(w) is k-free for "short" strings w.

Short a-2-free words over 4 letters: words2 & words3 & words4

Carpi's characterisation of a-n-free morphisms:Given an integer n ¥ 2, two alphabets S and D, and a morphism h: S* Ø D*, let us denote by Gh the subgroup of D generated by y( h(S) ). Then, the morphism h is an abelian nth power-free (a-n-free) provided that the following conditions are satisfied:

(i) h(w) is a-n-free for every a-n-free word w œ S* of length 2,

(ii) h is commutatively bijective (i.e. the set y(h(S)) is linearly independent),

(iii) for all ai œ S, pi œ Pref( h(ai) ) (0 § i § n) such that

y(p j+1) – 2 y(p j) + y(p j-1) œ Gh, j = 1, 2 , ... , n–1,

there exists integers di œ {0,1} such that

y(p j+1) – 2 y(p j) + y(p j-1) =

d j+1y(h(a j+1)) – 2 d jy(h(a j) ) + d j-1y(h(a j-1)), j = 1, 2 , ... , n–1.

If Card(S) ¥ 6 then an a-n-free morphism h always satisfies conditions (i)–(iii).

Informally speaking, the condition (iii) above says that if h(w) contains an abelian square (as a subword) then there is an abelian square in the underlying word w, too.

Unfortunately, the above characterisation seems not to be very useful in finding new endomorphisms over 4 letters.

This has remained very hard, as there has not been any systematic way to find good candidates.

One may try to find images for letters {a, b, c, d} by using cyclic permutations of images:

{A, B = s(A), C = s(B), D = s(C)}.

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 11

AÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ BÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖAÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ CÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖAÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ DÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ

A more general setting:

a Ø AÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖb Ø BÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖc Ø CÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖd Ø DÑ ÜÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ

à Applications of Words Avoiding Repetitions

è unending games, symbolic dynamics (Morse, Hedlund 1921, 1938)

è group theory: Burnside problem (1902). Is every finitely generated periodic group infinite or not?

è number theory:

AN APPLICATION OF VAN DER WAERDEN'S THEOREM IN ADDITIVE NUMBER THEORY: In any infinite sequence on a finite set of integers one always finds arbitrary large finite sets of adjacent segments, such that all these seg-ments have the same sum . (J. Justin, G. Pirillo and S. Varricchio (1983); Halbeisen, Hungerbühler, 2000)

Open problem: Is it possible to construct an infinite sequence on a finite set of integers such that no two adjacent segments of the same length have the same sum?

VAN DER WAERDEN'S THEOREM:

For any coloring of with finitely many colors, and for each m in , there is a mono-chromatic arithmetic progression of length m.

Not an open problem: Is it possible to construct an infinite word (on a finite alpha-bet) without factors that contain an even amount of letters?

12 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

» −−−−−−−−−−−−−−−−−−− » −−−−−−−−−−−−−−−−− » −−−−−−−−−−−−

↑⏐⏐ ↑⏐⏐H0, 1, 0, 0, 1L H0, 1, 0, 0, 1L

0 : even number of the specific letter1 : odd number of the specific letter

è ergodic theory

è searching and compression algorithms

è DNA / biochemistry (visualisations over 4 letters)

Jean Cognet ([email protected], CNRS / BioMoCeti)

... A T C G T T T C G A T ...

... T A G C A A A G C A T ...

Loop: 5' Ø A T C G T

| | | | T

3' Ø T A G C T

è Wolfram's randomness undecidability (A New Kind of Science)

è algorithmic music (abelian square-free words)

è cryptography (abelian square-free words)

-- Ronald L. Rivest: Abelian Square-Free Dithering for Iterated Hash functions.

http://theory.csail.mit.edu/~rivest/Rivest-AbelianSquareFreeDitheringForIterated-HashFunctions.pdf

è civil engineering (abelian square-free words in generation of extreme events)

à Some More Details

The number of a-2-free words

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 13

A strange structure in g85

Coloured factors are cyclic permutations of each other

ga = "abcacdcbcdcadcdbdaba cabadbabcbdbcbacbcdcacbabd abacadcbcdcacdbcbacbcdcacdcbdcdadbdcbca";

gb = "bcdbdadcdadbadacabcb dbcbacbcdcacdcbdcdadbdcbca bcbdbadcdadbdacdcbdcdadbdadcadabacadcdb";

gc = "cdacabadabacbabdbcdc acdcbdcdadbdadcadabacadcdb cdcacbadabacabdadcadabacabadbabcbdbadac";

gd = "dabdbcbabcbdcbcacdad bdadcadabacabadbabcbdbadac dadbdcbabcbdb cabadbabcbdbcbacbcdcacbabd";

Grey factors: all letters occur equally many times

ga = "abc acdcbcdcadcdbdabacabadbabcbd bcbacbc dcacbabd abac adcb cdc acdb cbacbcdcacdcbdcd adbdcbca";

ga = "abc acdcbcdcadcdbdabacabadbabcbd bcbacbcdcacba bdabacadcbcd c acdb cbacbcdcacdcbdcd adbdcbca";

14 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

Hg98L2(a) with the complement {b,d} letters:

Something Strange and Nice from 2006 – insight of why these structures are so very rare,

or at least have looked like that.

ô … … ——w6 … ——w4 … ——w2 …——————————given word for the test … ——w1 … ——w3 … ——w5 …»–—————––»

s»———»

w

… ö

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 15

30 40 50 60 70 80

Lengthof words

200

400

600

800

1000

Numberof words

Extendabcdbdadcbcadabdadcbto right and left - step 1 at a time

Right Left

30 40 50 60 70 80

Lengthof words

20000

40000

60000

80000

Numberof words

Extendabcbdbcbacbdcdacbdacto right and left - step 1 at a time

16 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

30 40 50 60 70 80 90

Lengthof words

20000

40000

60000

80000

100000

120000

Numberof words

Extendabacadbcbacbdcdacbabalternately to right and left - step 1 letter at a time

30 40 50 60 70 80 90

Lengthof words

1000

2000

3000

4000

5000

Numberof words

Extendabacadbdadcacbadcbabalternately to right and left - step 1 letter at a time

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 17

40 60 80 100

Lengthof words

5000

10000

15000

20000

Numberof words

Extendabacdbacbcdcbadacdabalternately to right and left - step 1 letter at a time

The case of abcdacbabdabacdacbcdad :

40 60 80 100 120

Leof

2× 106

4× 106

6× 106

8× 106

1× 107

1.2× 107

Numberof words

Extend the wordabcdacbabdabacdacbcdadof length 22alternately to right and leftstep one letter at a time

Let us study (zoom into) also the beginning:

18 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

20 40 60 80 100 120

Lenof

200000

400000

600000

800000

1× 106

Numberof words

Extend the wordabcdacbabdabacdacbcdadof length 22alternately to right and leftstep one letter at a time

40 60 80 100 120

Lenof

20000

40000

60000

80000

100000

120000

140000

Numberof words

Extend the wordabcdacbabdabacdacbcdadof length 22alternately to right and leftstep one letter at a time

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 19

40 60 80 100 120

Lenof w

2000

4000

6000

8000

10000

12000

Numberof words

Extend the wordabcdacbabdabacdacbcdadof length 22alternately to right and leftstep one letter at a time

Counting Binary Overlap-Free Words, Julien Cassaigne (Rovaniemi, October 2002)

An overlap: ......................... » ----------------------------- »w

....................................

................................................ » ----------------------------- »w

............

2500 5000 7500 10000 12500 15000

200000

400000

600000

800000

« ≈ 1 of 1

20 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

We have found something really new during the last few weeks (more about it will be published later)

Image words of letters:

a → A

b → B

c → C

d → D

Some Mathematica Examples

Dynamic programming:

Clear@fD;f@n_D := f@nD = f@n − 1D + f@n − 2D;f@0D = 0; f@1D = 1;

?f

Global`f

f@0D = 0

f@1D = 1

f@n_D := f@nD = f@n − 1D + f@n − 2D

f@10D

55

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 21

?f

Global`f

f@0D = 0

f@1D = 1

f@2D = 1

f@3D = 2

f@4D = 3

f@5D = 5

f@6D = 8

f@7D = 13

f@8D = 21

f@9D = 34

f@10D = 55

f@n_D := f@nD = f@n − 1D + f@n − 2D

Small footprint is really wonderful.

Examples of interactive usage – really seeing what is going on

(lists with a mixture of strings & formal sums & vectors; set operations: Complement, Intersection, MemberQ):

Some symbolic computations (showing that at least one component is diverging as the number of blocks of L and R grow):

... X .. L.. Y .. R ..

Z ...u

»−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− v»−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−»

m109

i

k

jjjjjjjjjjjjjj

21 31 29 2828 21 31 2929 28 21 3131 29 28 21

y

{

zzzzzzzzzzzzzz

22 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

Transpose@m109symbD

i

k

jjjjjjjjjjjjjj

a a + 7 a + 8 a + 10a + 10 a a + 7 a + 8a + 8 a + 10 a a + 7a + 7 a + 8 a + 10 a

y

{

zzzzzzzzzzzzzz

vecA$BCD = [email protected]

k

jjjjjjjjjjjj

+m−Hj2L−Hj3L

−Hn − j2 − j3L

y

{

zzzzzzzzzzzzêê Simplify

883 j2 + 2 j3 − 10 n + m α − n α<, 88 j2 + j3 + 10 m − 8 n + m α − n α<,8−3 j2 + 7 j3 + 8 m − 7 n + m α − n α<, 8−8 j2 − 10 j3 + 7 m + m α − n α<<

vecAB$CD = [email protected]

k

jjjjjjjjjjjj

+i1+Hm − i1L

−Hj3L−Hn − j3L

y

{

zzzzzzzzzzzzêê Simplify

88−7 i1 + 2 j3 + 7 m − 10 n + m α − n α<, 810 i1 + j3 − 8 n + m α − n α<,8−2 i1 + 7 j3 + 10 m − 7 n + m α − n α<, 8−i1 − 10 j3 + 8 m + m α − n α<<

vecAC$BD = [email protected]

k

jjjjjjjjjjjj

+i1−j2

+Hm − i1L−Hn − j2L

y

{

zzzzzzzzzzzzêê Simplify

88−8 i1 + 3 j2 + 8 m − 10 n + m α − n α<, 83 i1 + 8 j2 + 7 m − 8 n + m α − n α<,88 i1 − 3 j2 − 7 n + m α − n α<, 8−3 i1 − 8 j2 + 10 m + m α − n α<<

vecAD$BC = [email protected]

k

jjjjjjjjjjjj

+i1−j2

−Hn − j2L+Hm − i1L

y

{

zzzzzzzzzzzzêê Simplify

88−10 i1 + j2 + 10 m − 8 n + m α − n α<, 82 i1 + 7 j2 + 8 m − 7 n + m α − n α<,8i1 − 10 j2 + 7 m + m α − n α<, 87 i1 + 2 j2 − 10 n + m α − n α<<

More details (omitted here):

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 23

Abelian Square-Free Dithering and Recoding for Iterated Hash Functions (Ronald L. Rivest, 2005)

http://theory.lcs.mit.edu/~rivest/publications.html

"Abelian square-free sequences seem to be a very inexpensive way to prevent repeti-tive inputs from causing vulnerabilites in hash functions."

Computational Intelligence for Security and Emergency Management

(TEKES, Finnish Funding Agency for Technology and Innovation)

A Basic Framefork for Intelligent Civil Infrastructure Systems (Gautam Dasgupta, CU),

Bayesian updating, extreme value statistics, fuzzy logic (Lofti Zadeh, UCB; Masao Arakawa, KU),

cellular automata model for evacuation (Haruki Aritomo, KU), ...

Turvajärjestelmien ja hätätilanteiden dynaaminen hallinta

Computational Intelligence for Security and Emergency Management

24 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

Morphisms in Visual Form

productions = 8"a" → "abc", "b" → "ac", "c" → "b"<;

aabcabc ac babc ac b abc b acabc ac b abc b ac abc ac b ac abc babc ac b abc b ac abc ac b ac abc b abc ac b abc b ac abc b abc ac b ac

Image words of letters:

a → A

b → B

c → C

d → D

... X ... Y ... Z ...

u»−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

v»−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−»

Words and Experimental Mathematics

Infinite A-2-Free L-Sequences over 4 Letters (g98)

(* Computer Algebra Examples *)

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 25

More

Good, Bad, and Unknown Factors

Quad Trees

0.5 1 1.5 2

0.5

1

1.5

2

ab

c d

Quad Tree Development with Sparse Arrays

2nd Trial

{words1, words2, words3, words4} & words12 & some words of length 24 – Coloured According to the Last Letter

Code Development

words1 = {"a","b","c","d"} – graphics has been moved up.

words2 = {"ab","ac","ad","ba","bc","bd","ca","cb","cd","da","db","dc"}

26 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

words3 = {"aba","abc","abd","aca","acb","acd","ada","adb","adc","bab","bac",

"bad","bca","bcb","bcd","bda","bdb","bdc","cab","cac","cad","cba","cbc","cbd",

"cda","cdb","cdc","dab","dac","dad","dba","dbc","dbd","dca","dcb","dcd"}

myQuadMatr = quadMatrix@3D;replacePositionWithLastLetterColor ê@ words3

Normal@myQuadMatrD

showQuadTree

Graphics has been moved up from here!

Graphics

words4

Notice the forbidden white border district in the following quad-tree:

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 27

myQuadMatr = quadMatrix@4D;replacePositionWithLastLetterColor ê@ words4;

showQuadTree := Show@Graphics@RasterArray@Transpose@myQuadMatrDDD,AspectRatio → 1, PlotRange → AllD;

Notice the forbidden white border district in the following quad-tree:

showQuadTree

Graphics

words8 & words12 & even words24

Evaluate the following cell consisting of all the a-2-free words over 4 letters of lengt 8:

28 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

words8 = 8"abacabad", "abacabda", "abacabdb", "abacabdc", "abacadab", "abacadac", "abacadba", "abacadbc", "abacadbd", "abacadca", "abacadcb", "abacadcd", "abacbabd", "abacbada", "abacbadb", "abacbadc", "abacbcda", "abacbcdb", "abacbcdc", "abacbdab", "abacbdac", "abacbdad", "abacbdba", "abacbdbc", "abacbdca", "abacbdcb", "abacbdcd", "abacdaba", "abacdabc", "abacdabd","abacdaca", "abacdacb", "abacdadb", "abacdbab", "abacdbac", "abacdbad", "abacdbca", "abacdbcb", "abacdbcd", "abacdbda", "abacdbdc", "abacdcab", "abacdcac", "abacdcba", "abacdcbc", "abacdcbd", "abadabac", "abadabca", "abadabcb", "abadabcd", "abadacab", "abadacad", "abadacba", "abadacbc", "abadacbd", "abadacda", "abadacdb", "abadacdc","abadbabc", "abadbaca", "abadbacb", "abadbacd", "abadbcab", "abadbcac", "abadbcad", "abadbcba", "abadbcbd", "abadbcda", "abadbcdb", "abadbcdc", "abadbdca", "abadbdcb", "abadbdcd", "abadcaba", "abadcabc", "abadcabd", "abadcacb", "abadcada", "abadcadb", "abadcbab", "abadcbac", "abadcbad", "abadcbca", "abadcbcd", "abadcbda", "abadcbdb","abadcbdc", "abadcdab", "abadcdad", "abadcdba", "abadcdbc", "abadcdbd", "abcabada", "abcabadb", "abcabadc", "abcabdab", "abcabdac", "abcabdad", "abcabdba", "abcabdbc", "abcabdca", "abcabdcb", "abcabdcd", "abcacdab", "abcacdac", "abcacdad", "abcacdba", "abcacdbc", "abcacdbd", "abcacdca", "abcacdcb", "abcadaba", "abcadabc", "abcadabd","abcadaca", "abcadacb", "abcadbab", "abcadbac", "abcadbad", "abcadbca", "abcadbcb", "abcadbcd", "abcadbda", "abcadbdc", "abcadcab", "abcadcac", "abcadcba", "abcadcbc", "abcadcbd", "abcadcdb", "abcbabcd", "abcbabda", "abcbabdb", "abcbabdc", "abcbadab", "abcbadac", "abcbadba", "abcbadbc", "abcbadbd", "abcbadca", "abcbadcb", "abcbadcd","abcbdaba", "abcbdabc", "abcbdabd", "abcbdaca", "abcbdacb", "abcbdacd", "abcbdadb", "abcbdadc", "abcbdbab", "abcbdbac", "abcbdbad", "abcbdbca", "abcbdbcb", "abcbdcab", "abcbdcac", "abcbdcad", "abcbdcba", "abcbdcbc", "abcbdcda", "abcdabac", "abcdabad", "abcdabca", "abcdabcb", "abcdabda", "abcdabdb", "abcdacab", "abcdacba", "abcdacbc","abcdacdc", "abcdadba", "abcdadbd", "abcdadcd", "abcdbabc", "abcdbabd", "abcdbaca", "abcdbacb", "abcdbada", "abcdbadb", "abcdbcab", "abcdbcac", "abcdbcba", "abcdbdab", "abcdbdad", "abcdcaba", "abcdcabc", "abcdcacb", "abcdcacd", "abcdcada", "abcdcadc", "abcdcbab", "abcdcbac", "abcdcbca", "abcdcbcd", "abdabaca", "abdabacb", "abdabacd","abdabcab", "abdabcac", "abdabcad", "abdabcba", "abdabcbd", "abdabcda", "abdabcdb", "abdabcdc", "abdacaba", "abdacabc", "abdacabd", "abdacada", "abdacadb", "abdacbab", "abdacbac", "abdacbad", "abdacbca", "abdacbcd", "abdacbda", "abdacbdb", "abdacbdc", "abdacdab", "abdacdad", "abdacdba", "abdacdbc", "abdacdbd", "abdacdcb", "abdadcab","abdadcac", "abdadcad", "abdadcba", "abdadcbc", "abdadcbd", "abdadcda", "abdadcdb", "abdbabca", "abdbabcb", "abdbabcd", "abdbabdc", "abdbacab", "abdbacad", "abdbacba", "abdbacbc", "abdbacbd", "abdbacda", "abdbacdb", "abdbacdc", "abdbcaba", "abdbcabc", "abdbcabd", "abdbcacb", "abdbcacd", "abdbcada", "abdbcadb", "abdbcadc", "abdbcbab","abdbcbac", "abdbcbad", "abdbcbda", "abdbcbdb", "abdbcdab", "abdbcdac", "abdbcdad", "abdbcdba", "abdbcdbd", "abdbcdca", "abdcabac", "abdcabad", "abdcabca", "abdcabcb", "abdcabda", "abdcabdb", "abdcacba", "abdcacbc", "abdcacdc", "abdcadab", "abdcadba", "abdcadbd", "abdcadcd", "abdcbabc", "abdcbabd", "abdcbaca", "abdcbacb", "abdcbada","abdcbadb", "abdcbcab", "abdcbcac", "abdcbdab", "abdcbdad", "abdcbdba", "abdcdaba", "abdcdabd", "abdcdaca", "abdcdacd", "abdcdadb", "abdcdadc", "abdcdbab", "abdcdbad", "abdcdbda", "abdcdbdc", "acabacad", "acabacda", "acabacdb", "acabacdc", "acabadab", "acabadac", "acabadba", "acabadbc", "acabadbd", "acabadca", "acabadcb", "acabadcd","acabcacd", "acabcada", "acabcadb", "acabcadc", "acabcbda", "acabcbdb", "acabcbdc", "acabcdab", "acabcdac", "acabcdad", "acabcdba", "acabcdbc", "acabcdbd", "acabcdca", "acabcdcb", "acabdaba", "acabdabc", "acabdaca", "acabdacb", "acabdacd", "acabdadc", "acabdbab", "acabdbac", "acabdbca", "acabdbcb", "acabdbcd", "acabdcab", "acabdcac","acabdcad", "acabdcba", "acabdcbc", "acabdcbd", "acabdcda", "acabdcdb", "acadabac", "acadabad", "acadabca", "acadabcb", "acadabcd", "acadabda", "acadabdb", "acadabdc", "acadacab", "acadacba", "acadacbc", "acadacbd", "acadbabc", "acadbaca", "acadbacb", "acadbacd", "acadbada", "acadbadc", "acadbcab", "acadbcac", "acadbcad", "acadbcba","acadbcbd", "acadbcda", "acadbcdb", "acadbcdc", "acadbdac", "acadbdad", "acadbdca", "acadbdcb", "acadbdcd", "acadcaba", "acadcabc", "acadcabd", "acadcacb", "acadcbab", "acadcbac", "acadcbad", "acadcbca", "acadcbcd", "acadcbda", "acadcbdb", "acadcbdc", "acadcdba", "acadcdbc", "acadcdbd", "acbabdab", "acbabdac", "acbabdad", "acbabdba","acbabdbc", "acbabdca", "acbabdcb", "acbabdcd", "acbacada", "acbacadb", "acbacadc", "acbacdab", "acbacdac", "acbacdad", "acbacdba", "acbacdbc", "acbacdbd", "acbacdca", "acbacdcb", "acbadaba", "acbadabc", "acbadaca", "acbadacb", "acbadacd", "acbadbab", "acbadbac", "acbadbca", "acbadbcb", "acbadbcd", "acbadbdc", "acbadcab", "acbadcac","acbadcad", "acbadcba", "acbadcbc", "acbadcbd", "acbadcda", "acbadcdb", "acbcacbd", "acbcacda", "acbcacdb", "acbcacdc", "acbcadab", "acbcadac", "acbcadba", "acbcadbc", "acbcadbd", "acbcadca", "acbcadcb", "acbcadcd", "acbcdaba", "acbcdabc", "acbcdabd", "acbcdaca", "acbcdacb", "acbcdacd", "acbcdadb", "acbcdadc", "acbcdbab", "acbcdbac","acbcdbad", "acbcdbca", "acbcdbcb", "acbcdbda", "acbcdcab", "acbcdcac", "acbcdcad", "acbcdcba", "acbcdcbc", "acbdabac", "acbdabca", "acbdabcb", "acbdabdb", "acbdacab", "acbdacad", "acbdacba", "acbdacbc", "acbdacda", "acbdacdc", "acbdadbd", "acbdadca", "acbdadcd", "acbdbabc", "acbdbabd", "acbdbaca", "acbdbacb", "acbdbada", "acbdbadb","acbdbcab", "acbdbcac", "acbdbcba", "acbdbcbd", "acbdcaba", "acbdcabc", "acbdcacb", "acbdcacd", "acbdcada", "acbdcadc", "acbdcbab", "acbdcbac", "acbdcbca", "acbdcdac", "acbdcdad", "acdabaca", "acdabacb", "acdabacd", "acdabada", "acdabadc", "acdabcab", "acdabcac", "acdabcad", "acdabcba", "acdabcbd", "acdabcda", "acdabcdb", "acdabcdc","acdabdac", "acdabdad", "acdabdbc", "acdabdca", "acdabdcb", "acdabdcd", "acdacaba", "acdacabc", "acdacabd", "acdacbab", "acdacbac", "acdacbad", "acdacbca", "acdacbcd", "acdacbda", "acdacbdb", "acdacbdc", "acdadbab", "acdadbac", "acdadbad", "acdadbca", "acdadbcb", "acdadbcd", "acdadbda", "acdadbdc", "acdbabca", "acdbabcb", "acdbabdb","acdbacab", "acdbacad", "acdbacba", "acdbacbc", "acdbacda", "acdbacdc", "acdbadac", "acdbadbd", "acdbadca", "acdbadcd", "acdbcaba", "acdbcabc", "acdbcacb", "acdbcacd", "acdbcada", "acdbcadc", "acdbcbab", "acdbcbac", "acdbcdac", "acdbcdad", "acdbcdca", "acdbdaba", "acdbdabd", "acdbdaca", "acdbdacd", "acdbdadb", "acdbdadc", "acdbdcac","acdbdcad", "acdbdcda", "acdbdcdb", "acdcabac", "acdcabad", "acdcabca", "acdcabcb", "acdcabcd", "acdcabda", "acdcabdb", "acdcabdc", "acdcacba", "acdcacbc", "acdcacbd", "acdcacdb", "acdcbabc", "acdcbabd", "acdcbaca", "acdcbacb", "acdcbacd", "acdcbada", "acdcbadb", "acdcbadc", "acdcbcab", "acdcbcac", "acdcbcad", "acdcbcda", "acdcbcdc","acdcbdab", "acdcbdac", "acdcbdad", "acdcbdba", "acdcbdca", "acdcbdcd", "adabacab", "adabacad", "adabacba", "adabacbc", "adabacbd", "adabacda", "adabacdb", "adabacdc", "adabadac", "adabadca", "adabadcb", "adabadcd", "adabcaba", "adabcabd", "adabcacd", "adabcada", "adabcadb", "adabcadc", "adabcbab", "adabcbad", "adabcbda", "adabcbdb","adabcbdc", "adabcdab", "adabcdac", "adabcdad", "adabcdba", "adabcdbc", "adabcdbd", "adabcdca", "adabcdcb", "adabdaca", "adabdacb", "adabdacd", "adabdadc", "adabdbca", "adabdbcb", "adabdbcd", "adabdcab", "adabdcac", "adabdcad", "adabdcba", "adabdcbc", "adabdcbd", "adabdcda", "adabdcdb", "adacabac", "adacabad", "adacabca", "adacabcb","adacabcd", "adacabda", "adacabdb", "adacabdc", "adacadab", "adacadba", "adacadbc", "adacadbd", "adacbabd", "adacbaca", "adacbacd", "adacbada", "adacbadb", "adacbadc", "adacbcac", "adacbcad", "adacbcda", "adacbcdb", "adacbcdc", "adacbdab", "adacbdac", "adacbdad", "adacbdba", "adacbdbc", "adacbdca", "adacbdcb", "adacbdcd", "adacdaba","adacdabc", "adacdabd", "adacdadb", "adacdbab", "adacdbac", "adacdbad", "adacdbca", "adacdbcb", "adacdbcd", "adacdbda", "adacdbdc", "adacdcba", "adacdcbc", "adacdcbd", "adbabcab", "adbabcac", "adbabcad", "adbabcba", "adbabcbd", "adbabcda", "adbabcdb", "adbabcdc", "adbacaba", "adbacabd", "adbacada", "adbacadb", "adbacadc", "adbacbab","adbacbad", "adbacbcd", "adbacbda", "adbacbdb", "adbacbdc", "adbacdab", "adbacdac", "adbacdad", "adbacdba", "adbacdbc", "adbacdbd", "adbacdca", "adbacdcb", "adbadaca", "adbadacb", "adbadacd", "adbadcab", "adbadcac", "adbadcad", "adbadcba", "adbadcbc", "adbadcbd", "adbadcda", "adbadcdb", "adbcabad", "adbcabcb", "adbcabda", "adbcabdb","adbcacbc", "adbcacda", "adbcacdc", "adbcadab", "adbcadac", "adbcadba", "adbcadbd", "adbcadca", "adbcadcd", "adbcbabc", "adbcbabd", "adbcbaca", "adbcbacb", "adbcbada", "adbcbadb", "adbcbdab", "adbcbdad", "adbcbdba", "adbcbdbc", "adbcdaba", "adbcdabd", "adbcdaca", "adbcdacd", "adbcdadb", "adbcdadc", "adbcdbab", "adbcdbad", "adbcdbda","adbcdcac", "adbcdcad", "adbdacab", "adbdacad", "adbdacba", "adbdacbc", "adbdacbd", "adbdacda", "adbdacdb", "adbdacdc", "adbdadbc", "adbdadca", "adbdadcb", "adbdadcd", "adbdcaba", "adbdcabc", "adbdcabd", "adbdcacb", "adbdcacd", "adbdcada", "adbdcadb", "adbdcadc", "adbdcbab", "adbdcbac", "adbdcbad", "adbdcbca", "adbdcbda", "adbdcbdb","adbdcdab", "adbdcdac", "adbdcdad", "adbdcdba", "adbdcdbd", "adcabaca", "adcabacd", "adcabada", "adcabadb", "adcabadc", "adcabcac", "adcabcad", "adcabcbd", "adcabcda", "adcabcdb", "adcabcdc", "adcabdab", "adcabdac", "adcabdad", "adcabdba", "adcabdbc", "adcabdca", "adcabdcb", "adcabdcd", "adcacbab", "adcacbac", "adcacbad", "adcacbca","adcacbcd", "adcacbda", "adcacbdb", "adcacbdc", "adcadaba", "adcadabc", "adcadabd", "adcadbab", "adcadbac", "adcadbad", "adcadbca", "adcadbcb", "adcadbcd", "adcadbda", "adcadbdc", "adcbabcb", "adcbabda", "adcbabdb", "adcbacad", "adcbacbc", "adcbacda", "adcbacdc", "adcbadab", "adcbadac", "adcbadba", "adcbadbd", "adcbadca", "adcbadcd","adcbcaba", "adcbcabc", "adcbcacb", "adcbcacd", "adcbcada", "adcbcadc", "adcbcdac", "adcbcdad", "adcbcdca", "adcbcdcb", "adcbdaba", "adcbdabd", "adcbdaca", "adcbdacd", "adcbdadb", "adcbdadc", "adcbdbab", "adcbdbad", "adcbdcac", "adcbdcad", "adcbdcda", "adcdabac", "adcdabad", "adcdabca", "adcdabcb", "adcdabcd", "adcdabda", "adcdabdb","adcdabdc", "adcdadba", "adcdadbc", "adcdadbd", "adcdadcb", "adcdbabc", "adcdbabd", "adcdbaca", "adcdbacb", "adcdbacd", "adcdbada", "adcdbadb", "adcdbadc", "adcdbcab", "adcdbcac", "adcdbcad", "adcdbcba", "adcdbcda", "adcdbcdc", "adcdbdab", "adcdbdac", "adcdbdad", "adcdbdca", "adcdbdcd", "babcabad", "babcabda", "babcabdb", "babcabdc","babcacda", "babcacdb", "babcacdc", "babcadab", "babcadac", "babcadba", "babcadbc", "babcadbd", "babcadca", "babcadcb", "babcadcd", "babcbabd", "babcbada", "babcbadb", "babcbadc", "babcbdab", "babcbdac", "babcbdad", "babcbdba", "babcbdbc", "babcbdca", "babcbdcb", "babcbdcd", "babcdaba", "babcdabc", "babcdabd", "babcdaca", "babcdacb","babcdacd", "babcdadb", "babcdadc", "babcdbab", "babcdbac", "babcdbad", "babcdbca", "babcdbcb", "babcdbda", "babcdcab", "babcdcac", "babcdcad", "babcdcba", "babcdcbc", "babdabac", "babdabca", "babdabcb", "babdabcd", "babdacab", "babdacad", "babdacba", "babdacbc", "babdacbd", "babdacda", "babdacdb", "babdacdc", "babdadca", "babdadcb","babdadcd", "babdbabc", "babdbaca", "babdbacb", "babdbacd", "babdbcab", "babdbcac", "babdbcad", "babdbcba", "babdbcbd", "babdbcda", "babdbcdb", "babdbcdc", "babdcaba", "babdcabc", "babdcabd", "babdcacb", "babdcacd", "babdcada", "babdcadb", "babdcadc", "babdcbab", "babdcbac", "babdcbad", "babdcbca", "babdcbda", "babdcbdb", "babdcdab","babdcdac", "babdcdad", "babdcdba", "babdcdbd", "bacabacd", "bacabada", "bacabadb", "bacabadc", "bacabdab", "bacabdac", "bacabdad", "bacabdba", "bacabdbc", "bacabdca", "bacabdcb", "bacabdcd", "bacadaba", "bacadabc", "bacadabd", "bacadaca", "bacadacb", "bacadbab", "bacadbac", "bacadbad", "bacadbca", "bacadbcb", "bacadbcd", "bacadbda","bacadbdc", "bacadcab", "bacadcac", "bacadcba", "bacadcbc", "bacadcbd", "bacadcdb", "bacbabda", "bacbabdb", "bacbabdc", "bacbadab", "bacbadac", "bacbadba", "bacbadbc", "bacbadbd", "bacbadca", "bacbadcb", "bacbadcd", "bacbcdab", "bacbcdac", "bacbcdad", "bacbcdba", "bacbcdbc", "bacbcdbd", "bacbcdca", "bacbcdcb", "bacbdaba", "bacbdabc","bacbdabd", "bacbdaca", "bacbdacb", "bacbdacd", "bacbdadb", "bacbdadc", "bacbdbab", "bacbdbac", "bacbdbad", "bacbdbca", "bacbdbcb", "bacbdcab", "bacbdcac", "bacbdcad", "bacbdcba", "bacbdcbc", "bacbdcda", "bacdabac", "bacdabad", "bacdabca", "bacdabcb", "bacdabda", "bacdabdb", "bacdacab", "bacdacba", "bacdacbc", "bacdadba", "bacdadbd","bacdbabc", "bacdbabd", "bacdbaca", "bacdbacb", "bacdbada", "bacdbadb", "bacdbcab", "bacdbcac", "bacdbcba", "bacdbcdc", "bacdbdab", "bacdbdad", "bacdbdcd", "bacdcaba", "bacdcabc", "bacdcacb", "bacdcacd", "bacdcbab", "bacdcbac", "bacdcbca", "bacdcbcd", "bacdcbdb", "bacdcbdc", "badabaca", "badabacb", "badabacd", "badabadc", "badabcab","badabcac", "badabcad", "badabcba", "badabcbd", "badabcda", "badabcdb", "badabcdc", "badacaba", "badacabc", "badacabd", "badacada", "badacadb", "badacbab", "badacbac", "badacbad", "badacbca", "badacbcd", "badacbda", "badacbdb", "badacbdc", "badacdab", "badacdad", "badacdba", "badacdbc", "badacdbd", "badacdcb", "badbabca", "badbabcb","badbabcd", "badbacab", "badbacad", "badbacba", "badbacbc", "badbacbd", "badbacda", "badbacdb", "badbacdc", "badbcaba", "badbcabc", "badbcabd", "badbcacb", "badbcacd", "badbcada", "badbcadb", "badbcadc", "badbcbab", "badbcbac", "badbcbad", "badbcbda", "badbcbdb", "badbcdab", "badbcdac", "badbcdad", "badbcdba", "badbcdbd", "badbcdca","badbdcab", "badbdcac", "badbdcad", "badbdcba", "badbdcbc", "badbdcbd", "badbdcda", "badbdcdb", "badcabac", "badcabad", "badcabca", "badcabcb", "badcabda", "badcabdb", "badcacba", "badcacbc", "badcadab", "badcadba", "badcadbd", "badcbabc", "badcbabd", "badcbaca", "badcbacb", "badcbada", "badcbadb", "badcbcab", "badcbcac", "badcbcdc","badcbdab", "badcbdad", "badcbdba", "badcbdcd", "badcdaba", "badcdabd", "badcdadb", "badcdadc", "badcdbab", "badcdbad", "badcdbcb", "badcdbcd", "badcdbda", "badcdbdc", "bcabadab", "bcabadac", "bcabadba", "bcabadbc", "bcabadbd", "bcabadca", "bcabadcb", "bcabadcd", "bcabcbda", "bcabcbdb", "bcabcbdc", "bcabcdab", "bcabcdac", "bcabcdad","bcabcdba", "bcabcdbc", "bcabcdbd", "bcabcdca", "bcabcdcb", "bcabdaba", "bcabdabc", "bcabdaca", "bcabdacb", "bcabdacd", "bcabdadc", "bcabdbab", "bcabdbac", "bcabdbca", "bcabdbcb", "bcabdbcd", "bcabdcab", "bcabdcac", "bcabdcad", "bcabdcba", "bcabdcbc", "bcabdcbd", "bcabdcda", "bcabdcdb", "bcacbcad", "bcacbcda", "bcacbcdb", "bcacbcdc","bcacbdab", "bcacbdac", "bcacbdad", "bcacbdba", "bcacbdbc", "bcacbdca", "bcacbdcb", "bcacbdcd", "bcacdaba", "bcacdabc", "bcacdabd", "bcacdaca", "bcacdacb", "bcacdadb", "bcacdbab", "bcacdbac", "bcacdbad", "bcacdbca", "bcacdbcb", "bcacdbcd", "bcacdbda", "bcacdbdc", "bcacdcab", "bcacdcac", "bcacdcba", "bcacdcbc", "bcacdcbd", "bcadabac","bcadabad", "bcadabca", "bcadabcb", "bcadabda", "bcadabdb", "bcadacab", "bcadacad", "bcadacba", "bcadacbc", "bcadbabc", "bcadbaca", "bcadbacb", "bcadbada", "bcadbcab", "bcadbcac", "bcadbcba", "bcadbcbd", "bcadbcdb", "bcadbcdc", "bcadbdad", "bcadbdcb", "bcadbdcd", "bcadcaba", "bcadcabc", "bcadcacb", "bcadcbab", "bcadcbac", "bcadcbca","bcadcbcd", "bcadcbdb", "bcadcbdc", "bcadcdbc", "bcadcdbd", "bcbabcbd", "bcbabcda", "bcbabcdb", "bcbabcdc", "bcbabdab", "bcbabdac", "bcbabdad", "bcbabdba", "bcbabdbc", "bcbabdca", "bcbabdcb", "bcbabdcd", "bcbacada", "bcbacadb", "bcbacadc", "bcbacbcd", "bcbacbda", "bcbacbdb", "bcbacbdc", "bcbacdab", "bcbacdac", "bcbacdad", "bcbacdba","bcbacdbc", "bcbacdbd", "bcbacdca", "bcbacdcb", "bcbadaba", "bcbadabc", "bcbadaca", "bcbadacb", "bcbadacd", "bcbadbab", "bcbadbac", "bcbadbca", "bcbadbcb", "bcbadbcd", "bcbadbdc", "bcbadcab", "bcbadcac", "bcbadcad", "bcbadcba", "bcbadcbc", "bcbadcbd", "bcbadcda", "bcbadcdb", "bcbdabac", "bcbdabca", "bcbdabcb", "bcbdabcd", "bcbdabdb","bcbdabdc", "bcbdacab", "bcbdacad", "bcbdacba", "bcbdacbc", "bcbdacbd", "bcbdacda", "bcbdacdb", "bcbdacdc", "bcbdadbc", "bcbdadbd", "bcbdadca", "bcbdadcb", "bcbdadcd", "bcbdbabc", "bcbdbabd", "bcbdbaca", "bcbdbacb", "bcbdbacd", "bcbdbada", "bcbdbadb", "bcbdbadc", "bcbdbcab", "bcbdbcac", "bcbdbcad", "bcbdbcba", "bcbdcaba", "bcbdcabc","bcbdcabd", "bcbdcacb", "bcbdcacd", "bcbdcada", "bcbdcadb", "bcbdcadc", "bcbdcbab", "bcbdcbac", "bcbdcbad", "bcbdcbca", "bcbdcdab", "bcbdcdac", "bcbdcdad", "bcdabaca", "bcdabacb", "bcdabada", "bcdabcab", "bcdabcac", "bcdabcba", "bcdabcbd", "bcdabcdb", "bcdabcdc", "bcdabdad", "bcdabdbc", "bcdabdcb", "bcdabdcd", "bcdacaba", "bcdacabc","bcdacbab", "bcdacbac", "bcdacbca", "bcdacbcd", "bcdacbdb", "bcdacbdc", "bcdacdbc", "bcdacdbd", "bcdacdcb", "bcdadbab", "bcdadbad", "bcdadbcb", "bcdadbcd", "bcdadbda", "bcdadbdc", "bcdadcbc", "bcdadcbd", "bcdadcda", "bcdadcdb", "bcdbabca", "bcdbabcb", "bcdbabcd", "bcdbabdb", "bcdbabdc", "bcdbacab", "bcdbacad", "bcdbacba", "bcdbacbc","bcdbacbd", "bcdbacda", "bcdbacdb", "bcdbacdc", "bcdbadac", "bcdbadbc", "bcdbadbd", "bcdbadca", "bcdbadcb", "bcdbadcd", "bcdbcaba", "bcdbcabc", "bcdbcabd", "bcdbcacb", "bcdbcacd", "bcdbcada", "bcdbcadb", "bcdbcadc", "bcdbcbab", "bcdbcbac", "bcdbcbad", "bcdbdaba", "bcdbdabc", "bcdbdabd", "bcdbdaca", "bcdbdacb", "bcdbdacd", "bcdbdadb","bcdbdadc", "bcdcabac", "bcdcabad", "bcdcabca", "bcdcabcb", "bcdcabcd", "bcdcabda", "bcdcabdb", "bcdcabdc", "bcdcacba", "bcdcacbc", "bcdcacbd", "bcdcacdb", "bcdcacdc", "bcdcadab", "bcdcadba", "bcdcadbc", "bcdcadbd", "bcdcadcb", "bcdcadcd", "bcdcbabc", "bcdcbabd", "bcdcbaca", "bcdcbacb", "bcdcbacd", "bcdcbada", "bcdcbadb", "bcdcbadc","bcdcbcab", "bcdcbcac", "bcdcbcad", "bcdcbcda", "bdabacab", "bdabacad", "bdabacba", "bdabacbc", "bdabacbd", "bdabacda", "bdabacdb", "bdabacdc", "bdabcaba", "bdabcabd", "bdabcacd", "bdabcada", "bdabcadb", "bdabcadc", "bdabcbab", "bdabcbad", "bdabcbda", "bdabcbdb", "bdabcbdc", "bdabcdab", "bdabcdac", "bdabcdad", "bdabcdba", "bdabcdbc","bdabcdbd", "bdabcdca", "bdabcdcb", "bdabdbca", "bdabdbcb", "bdabdbcd", "bdabdcab", "bdabdcac", "bdabdcad", "bdabdcba", "bdabdcbc", "bdabdcbd", "bdabdcda", "bdabdcdb", "bdacabac", "bdacabad", "bdacabca", "bdacabcb", "bdacabda", "bdacabdb", "bdacadab", "bdacadac", "bdacadba", "bdacadbd", "bdacbabd", "bdacbaca", "bdacbada", "bdacbadb","bdacbcac", "bdacbcdb", "bdacbcdc", "bdacbdab", "bdacbdad", "bdacbdba", "bdacbdbc", "bdacbdcb", "bdacbdcd", "bdacdaba", "bdacdabd", "bdacdadb", "bdacdbab", "bdacdbad", "bdacdbcb", "bdacdbcd", "bdacdbda", "bdacdbdc", "bdacdcbc", "bdacdcbd", "bdadbcab", "bdadbcac", "bdadbcad", "bdadbcba", "bdadbcbd", "bdadbcda", "bdadbcdb", "bdadbcdc","bdadbdac", "bdadbdca", "bdadbdcb", "bdadbdcd", "bdadcaba", "bdadcabc", "bdadcabd", "bdadcacb", "bdadcada", "bdadcadb", "bdadcbab", "bdadcbac", "bdadcbad", "bdadcbca", "bdadcbcd", "bdadcbda", "bdadcbdb", "bdadcbdc", "bdadcdab", "bdadcdad", "bdadcdba", "bdadcdbc", "bdadcdbd", "bdbabcab", "bdbabcac", "bdbabcad", "bdbabcba", "bdbabcbd","bdbabcda", "bdbabcdb", "bdbabcdc", "bdbabdbc", "bdbabdca", "bdbabdcb", "bdbabdcd", "bdbacaba", "bdbacabd", "bdbacada", "bdbacadb", "bdbacadc", "bdbacbab", "bdbacbad", "bdbacbcd", "bdbacbda", "bdbacbdb", "bdbacbdc", "bdbacdab", "bdbacdac", "bdbacdad", "bdbacdba", "bdbacdbc", "bdbacdbd", "bdbacdca", "bdbacdcb", "bdbadaca", "bdbadacb","bdbadacd", "bdbadbca", "bdbadbcb", "bdbadbcd", "bdbadbdc", "bdbadcab", "bdbadcac", "bdbadcad", "bdbadcba", "bdbadcbc", "bdbadcbd", "bdbadcda", "bdbadcdb", "bdbcabad", "bdbcabcb", "bdbcabcd", "bdbcabda", "bdbcabdb", "bdbcabdc", "bdbcacbc", "bdbcacbd", "bdbcacda", "bdbcacdb", "bdbcacdc", "bdbcadab", "bdbcadac", "bdbcadba", "bdbcadbc","bdbcadbd", "bdbcadca", "bdbcadcb", "bdbcadcd", "bdbcbabc", "bdbcbabd", "bdbcbaca", "bdbcbacb", "bdbcbacd", "bdbcbada", "bdbcbadb", "bdbcbadc", "bdbcbdab", "bdbcbdac", "bdbcbdad", "bdbcbdba", "bdbcdaba", "bdbcdabc", "bdbcdabd", "bdbcdaca", "bdbcdacb", "bdbcdacd", "bdbcdadb", "bdbcdadc", "bdbcdbab", "bdbcdbac", "bdbcdbad", "bdbcdbda","bdbcdcab", "bdbcdcac", "bdbcdcad", "bdcabaca", "bdcabada", "bdcabadb", "bdcabcac", "bdcabcbd", "bdcabcdb", "bdcabcdc", "bdcabdab", "bdcabdad", "bdcabdba", "bdcabdbc", "bdcabdcb", "bdcabdcd", "bdcacbab", "bdcacbac", "bdcacbca", "bdcacbcd", "bdcacbdb", "bdcacbdc", "bdcacdbc", "bdcacdbd", "bdcacdca", "bdcacdcb", "bdcadaba", "bdcadabd","bdcadbab", "bdcadbad", "bdcadbcb", "bdcadbcd", "bdcadbda", "bdcadbdc", "bdcadcbc", "bdcadcbd", "bdcadcdb", "bdcbabcb", "bdcbabcd", "bdcbabda", "bdcbabdb", "bdcbabdc", "bdcbacad", "bdcbacbc", "bdcbacbd", "bdcbacda", "bdcbacdb", "bdcbacdc", "bdcbadab", "bdcbadac", "bdcbadba", "bdcbadbc", "bdcbadbd", "bdcbadca", "bdcbadcb", "bdcbadcd","bdcbcaba", "bdcbcabc", "bdcbcabd", "bdcbcacb", "bdcbcacd", "bdcbcada", "bdcbcadb", "bdcbcadc", "bdcbdaba", "bdcbdabc", "bdcbdabd", "bdcbdaca", "bdcbdacb", "bdcbdacd", "bdcbdadb", "bdcbdadc", "bdcbdbab", "bdcbdbac", "bdcbdbad", "bdcdabac", "bdcdabad", "bdcdabca", "bdcdabcb", "bdcdabcd", "bdcdabda", "bdcdabdb", "bdcdabdc", "bdcdacab","bdcdacba", "bdcdacbc", "bdcdacbd", "bdcdacdb", "bdcdacdc", "bdcdadba", "bdcdadbc", "bdcdadbd", "bdcdadcb", "bdcdadcd", "bdcdbabc", "bdcdbabd", "bdcdbaca", "bdcdbacb", "bdcdbacd", "bdcdbada", "bdcdbadb", "bdcdbadc", "bdcdbdab", "bdcdbdac", "bdcdbdad", "bdcdbdca", "cabacabd", "cabacada", "cabacadb", "cabacadc", "cabacdab", "cabacdac","cabacdad", "cabacdba", "cabacdbc", "cabacdbd", "cabacdca", "cabacdcb", "cabadaba", "cabadabc", "cabadaca", "cabadacb", "cabadacd", "cabadbab", "cabadbac", "cabadbca", "cabadbcb", "cabadbcd", "cabadbdc", "cabadcab", "cabadcac", "cabadcad", "cabadcba", "cabadcbc", "cabadcbd", "cabadcda", "cabadcdb", "cabcacda", "cabcacdb", "cabcacdc","cabcadab", "cabcadac", "cabcadba", "cabcadbc", "cabcadbd", "cabcadca", "cabcadcb", "cabcadcd", "cabcbdab", "cabcbdac", "cabcbdad", "cabcbdba", "cabcbdbc", "cabcbdca", "cabcbdcb", "cabcbdcd", "cabcdaba", "cabcdabc", "cabcdabd", "cabcdaca", "cabcdacb", "cabcdacd", "cabcdadb", "cabcdadc", "cabcdbab", "cabcdbac", "cabcdbad", "cabcdbca","cabcdbcb", "cabcdbda", "cabcdcab", "cabcdcac", "cabcdcad", "cabcdcba", "cabcdcbc", "cabdabac", "cabdabca", "cabdabcb", "cabdacab", "cabdacad", "cabdacba", "cabdacbc", "cabdacda", "cabdacdc", "cabdadca", "cabdadcd", "cabdbabc", "cabdbabd", "cabdbaca", "cabdbacb", "cabdbcab", "cabdbcac", "cabdbcba", "cabdbcbd", "cabdbcdb", "cabdbcdc","cabdcaba", "cabdcabc", "cabdcacb", "cabdcacd", "cabdcada", "cabdcadc", "cabdcbab", "cabdcbac", "cabdcbca", "cabdcbdb", "cabdcdac", "cabdcdad", "cabdcdbd", "cacbabda", "cacbabdb", "cacbabdc", "cacbacad", "cacbacda", "cacbacdb", "cacbacdc", "cacbadab", "cacbadac", "cacbadba", "cacbadbc", "cacbadbd", "cacbadca", "cacbadcb", "cacbadcd","cacbcacd", "cacbcada", "cacbcadb", "cacbcadc", "cacbcdab", "cacbcdac", "cacbcdad", "cacbcdba", "cacbcdbc", "cacbcdbd", "cacbcdca", "cacbcdcb", "cacbdaba", "cacbdabc", "cacbdabd", "cacbdaca", "cacbdacb", "cacbdacd", "cacbdadb", "cacbdadc", "cacbdbab", "cacbdbac", "cacbdbad", "cacbdbca", "cacbdbcb", "cacbdcab", "cacbdcac", "cacbdcad","cacbdcba", "cacbdcbc", "cacbdcda", "cacdabac", "cacdabad", "cacdabca", "cacdabcb", "cacdabcd", "cacdabda", "cacdabdb", "cacdabdc", "cacdacab", "cacdacba", "cacdacbc", "cacdacbd", "cacdadba", "cacdadbc", "cacdadbd", "cacdbabc", "cacdbabd", "cacdbaca", "cacdbacb", "cacdbacd", "cacdbada", "cacdbadb", "cacdbadc", "cacdbcab", "cacdbcac","cacdbcad", "cacdbcba", "cacdbcda", "cacdbcdc", "cacdbdab", "cacdbdac", "cacdbdad", "cacdbdca", "cacdbdcd", "cacdcaba", "cacdcabc", "cacdcabd", "cacdcacb", "cacdcbab", "cacdcbac", "cacdcbad", "cacdcbca", "cacdcbcd", "cacdcbda", "cacdcbdb", "cacdcbdc", "cadabaca", "cadabacb", "cadabacd", "cadabada", "cadabadc", "cadabcab", "cadabcac","cadabcad", "cadabcba", "cadabcbd", "cadabcda", "cadabcdb", "cadabcdc", "cadabdac", "cadabdad", "cadabdbc", "cadabdca", "cadabdcb", "cadabdcd", "cadacaba", "cadacabc", "cadacabd", "cadacadb", "cadacbab", "cadacbac", "cadacbad", "cadacbca", "cadacbcd", "cadacbda", "cadacbdb", "cadacbdc", "cadbabca", "cadbabcb", "cadbacab", "cadbacad","cadbacba", "cadbacbc", "cadbacda", "cadbacdc", "cadbadac", "cadbadca", "cadbadcd", "cadbcaba", "cadbcabc", "cadbcacb", "cadbcacd", "cadbcada", "cadbcadc", "cadbcbab", "cadbcbac", "cadbcbdb", "cadbcdac", "cadbcdad", "cadbcdbd", "cadbcdca", "cadbdaca", "cadbdacd", "cadbdadb", "cadbdadc", "cadbdcac", "cadbdcad", "cadbdcbc", "cadbdcbd","cadbdcda", "cadbdcdb", "cadcabac", "cadcabad", "cadcabca", "cadcabcb", "cadcabcd", "cadcabda", "cadcabdb", "cadcabdc", "cadcacba", "cadcacbc", "cadcacbd", "cadcbabc", "cadcbabd", "cadcbaca", "cadcbacb", "cadcbacd", "cadcbada", "cadcbadb", "cadcbadc", "cadcbcab", "cadcbcac", "cadcbcad", "cadcbcda", "cadcbcdc", "cadcbdab", "cadcbdac","cadcbdad", "cadcbdba", "cadcbdca", "cadcbdcd", "cadcdbab", "cadcdbac", "cadcdbad", "cadcdbca", "cadcdbcb", "cadcdbcd", "cadcdbda", "cadcdbdc", "cbabcbad", "cbabcbda", "cbabcbdb", "cbabcbdc", "cbabcdab", "cbabcdac", "cbabcdad", "cbabcdba", "cbabcdbc", "cbabcdbd", "cbabcdca", "cbabcdcb", "cbabdaba", "cbabdabc", "cbabdaca", "cbabdacb","cbabdacd", "cbabdadc", "cbabdbab", "cbabdbac", "cbabdbca", "cbabdbcb", "cbabdbcd", "cbabdcab", "cbabdcac", "cbabdcad", "cbabdcba", "cbabdcbc", "cbabdcbd", "cbabdcda", "cbabdcdb", "cbacadab", "cbacadac", "cbacadba", "cbacadbc", "cbacadbd", "cbacadca", "cbacadcb", "cbacadcd", "cbacbcda", "cbacbcdb", "cbacbcdc", "cbacbdab", "cbacbdac","cbacbdad", "cbacbdba", "cbacbdbc", "cbacbdca", "cbacbdcb", "cbacbdcd", "cbacdaba", "cbacdabc", "cbacdabd", "cbacdaca", "cbacdacb", "cbacdadb", "cbacdbab", "cbacdbac", "cbacdbad", "cbacdbca", "cbacdbcb", "cbacdbcd", "cbacdbda", "cbacdbdc", "cbacdcab", "cbacdcac", "cbacdcba", "cbacdcbc", "cbacdcbd", "cbadabac", "cbadabad", "cbadabca","cbadabcb", "cbadacab", "cbadacad", "cbadacba", "cbadacbc", "cbadacda", "cbadacdc", "cbadbabc", "cbadbaca", "cbadbacb", "cbadbcab", "cbadbcac", "cbadbcba", "cbadbcbd", "cbadbcdb", "cbadbcdc", "cbadbdcb", "cbadbdcd", "cbadcaba", "cbadcabc", "cbadcacb", "cbadcada", "cbadcbab", "cbadcbac", "cbadcbca", "cbadcbcd", "cbadcbdb", "cbadcbdc","cbadcdad", "cbadcdbc", "cbadcdbd", "cbcabada", "cbcabadb", "cbcabadc", "cbcabcbd", "cbcabcda", "cbcabcdb", "cbcabcdc", "cbcabdab", "cbcabdac", "cbcabdad", "cbcabdba", "cbcabdbc", "cbcabdca", "cbcabdcb", "cbcabdcd", "cbcacbcd", "cbcacbda", "cbcacbdb", "cbcacbdc", "cbcacdab", "cbcacdac", "cbcacdad", "cbcacdba", "cbcacdbc", "cbcacdbd","cbcacdca", "cbcacdcb", "cbcadaba", "cbcadabc", "cbcadabd", "cbcadaca", "cbcadacb", "cbcadbab", "cbcadbac", "cbcadbad", "cbcadbca", "cbcadbcb", "cbcadbcd", "cbcadbda", "cbcadbdc", "cbcadcab", "cbcadcac", "cbcadcba", "cbcadcbc", "cbcadcbd", "cbcadcdb", "cbcdabac", "cbcdabad", "cbcdabca", "cbcdabcb", "cbcdabcd", "cbcdabda", "cbcdabdb","cbcdabdc", "cbcdacab", "cbcdacba", "cbcdacbc", "cbcdacbd", "cbcdacdb", "cbcdacdc", "cbcdadba", "cbcdadbc", "cbcdadbd", "cbcdadcb", "cbcdadcd", "cbcdbabc", "cbcdbabd", "cbcdbaca", "cbcdbacb", "cbcdbacd", "cbcdbada", "cbcdbadb", "cbcdbadc", "cbcdbcab", "cbcdbcac", "cbcdbcad", "cbcdbcba", "cbcdbdab", "cbcdbdac", "cbcdbdad", "cbcdcaba","cbcdcabc", "cbcdcabd", "cbcdcacb", "cbcdcacd", "cbcdcada", "cbcdcadb", "cbcdcadc", "cbcdcbab", "cbcdcbac", "cbcdcbad", "cbcdcbca", "cbdabaca", "cbdabacb", "cbdabcab", "cbdabcac", "cbdabcba", "cbdabcbd", "cbdabcdb", "cbdabcdc", "cbdabdbc", "cbdabdcb", "cbdabdcd", "cbdacaba", "cbdacabc", "cbdacada", "cbdacbab", "cbdacbac", "cbdacbca","cbdacbcd", "cbdacbdb", "cbdacbdc", "cbdacdad", "cbdacdbc", "cbdacdbd", "cbdacdcb", "cbdadbcb", "cbdadbcd", "cbdadbda", "cbdadbdc", "cbdadcac", "cbdadcad", "cbdadcbc", "cbdadcbd", "cbdadcda", "cbdadcdb", "cbdbabca", "cbdbabcb", "cbdbabcd", "cbdbabdb", "cbdbabdc", "cbdbacab", "cbdbacad", "cbdbacba", "cbdbacbc", "cbdbacbd","cbdbacda", "cbdbacdb", "cbdbacdc", "cbdbadac", "cbdbadbc", "cbdbadbd", "cbdbadca", "cbdbadcb", "cbdbadcd", "cbdbcaba", "cbdbcabc", "cbdbcabd", "cbdbcacb", "cbdbcacd", "cbdbcada", "cbdbcadb", "cbdbcadc", "cbdbcbab", "cbdbcbac", "cbdbcbad", "cbdbcbda", "cbdcabac", "cbdcabad", "cbdcabca", "cbdcabcb", "cbdcabcd", "cbdcabda", "cbdcabdb","cbdcabdc", "cbdcacba", "cbdcacbc", "cbdcacbd", "cbdcacdb", "cbdcacdc", "cbdcadab", "cbdcadba", "cbdcadbc", "cbdcadbd", "cbdcadcb", "cbdcadcd", "cbdcbabc", "cbdcbabd", "cbdcbaca", "cbdcbacb", "cbdcbacd", "cbdcbada", "cbdcbadb", "cbdcbadc", "cbdcbcab", "cbdcbcac", "cbdcbcad", "cbdcdaba", "cbdcdabc", "cbdcdabd", "cbdcdaca", "cbdcdacb","cbdcdacd", "cbdcdadb", "cbdcdadc", "cdabacab", "cdabacad", "cdabacba", "cdabacbc", "cdabacda", "cdabacdc", "cdabadab", "cdabadac", "cdabadca", "cdabadcd", "cdabcaba", "cdabcacd", "cdabcada", "cdabcadc", "cdabcbab", "cdabcbdb", "cdabcbdc", "cdabcdac", "cdabcdad", "cdabcdbc", "cdabcdbd", "cdabcdca", "cdabcdcb", "cdabdaca", "cdabdacd","cdabdadc", "cdabdbcb", "cdabdbcd", "cdabdcac", "cdabdcad", "cdabdcbc", "cdabdcbd", "cdabdcda", "cdabdcdb", "cdacabac", "cdacabad", "cdacabca", "cdacabcb", "cdacabcd", "cdacabda", "cdacabdb", "cdacabdc", "cdacbabd", "cdacbaca", "cdacbacd", "cdacbada", "cdacbadb", "cdacbadc", "cdacbcac", "cdacbcad", "cdacbcda", "cdacbcdb","cdacbcdc", "cdacbdab", "cdacbdac", "cdacbdad", "cdacbdba", "cdacbdbc", "cdacbdca", "cdacbdcb", "cdacbdcd", "cdacdbab", "cdacdbac", "cdacdbad", "cdacdbca", "cdacdbcb", "cdacdbcd", "cdacdbda", "cdacdbdc", "cdacdcba", "cdacdcbc", "cdacdcbd", "cdadbabc", "cdadbaca", "cdadbacb", "cdadbacd", "cdadbada", "cdadbadc", "cdadbcab", "cdadbcac","cdadbcad", "cdadbcba", "cdadbcbd", "cdadbcda", "cdadbcdb", "cdadbcdc", "cdadbdac", "cdadbdad", "cdadbdca", "cdadbdcb", "cdadbdcd", "cdadcbab", "cdadcbac", "cdadcbad", "cdadcbca", "cdadcbcd", "cdadcbda", "cdadcbdb", "cdadcbdc", "cdadcdab", "cdadcdba", "cdadcdbc", "cdadcdbd", "cdbabcab", "cdbabcac", "cdbabcba", "cdbabcbd", "cdbabcdb","cdbabcdc", "cdbabdba", "cdbabdbc", "cdbabdcb", "cdbabdcd", "cdbacaba", "cdbacada", "cdbacadc", "cdbacbab", "cdbacbcd", "cdbacbdb", "cdbacbdc", "cdbacdac", "cdbacdad", "cdbacdbc", "cdbacdbd", "cdbacdca", "cdbacdcb", "cdbadaca", "cdbadacd", "cdbadbcb", "cdbadbcd", "cdbadbdc", "cdbadcac", "cdbadcad", "cdbadcbc", "cdbadcbd","cdbadcda", "cdbadcdb", "cdbcabad", "cdbcabcb", "cdbcabcd", "cdbcabda", "cdbcabdb", "cdbcabdc", "cdbcacbc", "cdbcacbd", "cdbcacda", "cdbcacdb", "cdbcacdc", "cdbcadab", "cdbcadac", "cdbcadba", "cdbcadbc", "cdbcadbd", "cdbcadca", "cdbcadcb", "cdbcadcd", "cdbcbabc", "cdbcbabd", "cdbcbaca", "cdbcbacb", "cdbcbacd", "cdbcbada","cdbcbadb", "cdbcbadc", "cdbcdaba", "cdbcdabc", "cdbcdabd", "cdbcdaca", "cdbcdacb", "cdbcdacd", "cdbcdadb", "cdbcdadc", "cdbcdcab", "cdbcdcac", "cdbcdcad", "cdbdabac", "cdbdabca", "cdbdabcb", "cdbdabcd", "cdbdabdb", "cdbdabdc", "cdbdacab", "cdbdacad", "cdbdacba", "cdbdacbc", "cdbdacbd", "cdbdacda", "cdbdacdb", "cdbdacdc", "cdbdadbc","cdbdadbd", "cdbdadca", "cdbdadcb", "cdbdadcd", "cdbdcaba", "cdbdcabc", "cdbdcabd", "cdbdcacb", "cdbdcacd", "cdbdcada", "cdbdcadb", "cdbdcadc", "cdbdcdab", "cdbdcdac", "cdbdcdad", "cdbdcdba", "cdcabaca", "cdcabacd", "cdcabada", "cdcabadb", "cdcabadc", "cdcabcac", "cdcabcad", "cdcabcbd", "cdcabcda", "cdcabcdb", "cdcabcdc","cdcabdab", "cdcabdac", "cdcabdad", "cdcabdba", "cdcabdbc", "cdcabdca", "cdcabdcb", "cdcabdcd", "cdcacbab", "cdcacbac", "cdcacbad", "cdcacbca", "cdcacbcd", "cdcacbda", "cdcacbdb", "cdcacbdc", "cdcacdba", "cdcacdbc", "cdcacdbd", "cdcacdcb", "cdcadaba", "cdcadabc", "cdcadabd", "cdcadbab", "cdcadbac", "cdcadbad", "cdcadbca", "cdcadbcb","cdcadbcd", "cdcadbda", "cdcadbdc", "cdcadcba", "cdcadcbc", "cdcadcbd", "cdcadcdb", "cdcbabcb", "cdcbabcd", "cdcbabda", "cdcbabdb", "cdcbabdc", "cdcbacad", "cdcbacbc", "cdcbacbd", "cdcbacda", "cdcbacdb", "cdcbacdc", "cdcbadab", "cdcbadac", "cdcbadba", "cdcbadbc", "cdcbadbd", "cdcbadca", "cdcbadcb", "cdcbadcd", "cdcbcaba", "cdcbcabc","cdcbcabd", "cdcbcacb", "cdcbcacd", "cdcbcada", "cdcbcadb", "cdcbcadc", "cdcbcdab", "cdcbcdac", "cdcbcdad", "cdcbcdca", "cdcbdaba", "cdcbdabc", "cdcbdabd", "cdcbdaca", "cdcbdacb", "cdcbdacd", "cdcbdadb", "cdcbdadc", "cdcbdbab", "cdcbdbac", "cdcbdbad", "cdcbdcab", "cdcbdcac", "cdcbdcad", "cdcbdcda", "dabacaba", "dabacabd","dabacada", "dabacadb", "dabacadc", "dabacbab", "dabacbad", "dabacbcd", "dabacbda", "dabacbdb", "dabacbdc", "dabacdab", "dabacdac", "dabacdad", "dabacdba", "dabacdbc", "dabacdbd", "dabacdca", "dabacdcb", "dabadabc", "dabadaca", "dabadacb", "dabadacd", "dabadcab", "dabadcac", "dabadcad", "dabadcba", "dabadcbc", "dabadcbd", "dabadcda","dabadcdb", "dabcabad", "dabcabda", "dabcabdb", "dabcacda", "dabcacdc", "dabcadab", "dabcadac", "dabcadba", "dabcadbd", "dabcadca", "dabcadcd", "dabcbabc", "dabcbabd", "dabcbada", "dabcbadb", "dabcbdab", "dabcbdad", "dabcbdba", "dabcbdbc", "dabcbdcb", "dabcbdcd", "dabcdaba", "dabcdabd", "dabcdaca", "dabcdacd", "dabcdadb","dabcdadc", "dabcdbab", "dabcdbad", "dabcdbcb", "dabcdbda", "dabcdcac", "dabcdcad", "dabcdcbc", "dabdacab", "dabdacad", "dabdacba", "dabdacbc", "dabdacbd", "dabdacda", "dabdacdb", "dabdacdc", "dabdadca", "dabdadcb", "dabdadcd", "dabdbcab", "dabdbcac", "dabdbcad", "dabdbcba", "dabdbcbd", "dabdbcda", "dabdbcdb", "dabdbcdc","dabdcaba", "dabdcabc", "dabdcabd", "dabdcacb", "dabdcacd", "dabdcada", "dabdcadb", "dabdcadc", "dabdcbab", "dabdcbac", "dabdcbad", "dabdcbca", "dabdcbda", "dabdcbdb", "dabdcdab", "dabdcdac", "dabdcdad", "dabdcdba", "dabdcdbd", "dacabaca", "dacabacd", "dacabada", "dacabadb", "dacabadc", "dacabcac", "dacabcad", "dacabcbd","dacabcda", "dacabcdb", "dacabcdc", "dacabdab", "dacabdac", "dacabdad", "dacabdba", "dacabdbc", "dacabdca", "dacabdcb", "dacabdcd", "dacadaba", "dacadabc", "dacadabd", "dacadacb", "dacadbab", "dacadbac", "dacadbad", "dacadbca", "dacadbcb", "dacadbcd", "dacadbda", "dacadbdc", "dacbabda", "dacbabdb", "dacbacad", "dacbacda","dacbacdc", "dacbadab", "dacbadac", "dacbadba", "dacbadbd", "dacbadca", "dacbadcd", "dacbcacb", "dacbcacd", "dacbcada", "dacbcadc", "dacbcdac", "dacbcdad", "dacbcdbc", "dacbcdbd", "dacbcdca", "dacbcdcb", "dacbdaba", "dacbdabd", "dacbdaca", "dacbdacd", "dacbdadb", "dacbdadc", "dacbdbab", "dacbdbad", "dacbdbcb", "dacbdcac","dacbdcad", "dacbdcbc", "dacbdcda", "dacdabac", "dacdabad", "dacdabca", "dacdabcb", "dacdabcd", "dacdabda", "dacdabdb", "dacdabdc", "dacdadba", "dacdadbc", "dacdadbd", "dacdbabc", "dacdbabd", "dacdbaca", "dacdbacb", "dacdbacd", "dacdbada", "dacdbadb", "dacdbadc", "dacdbcab", "dacdbcac", "dacdbcad", "dacdbcba", "dacdbcda","dacdbcdc", "dacdbdab", "dacdbdac", "dacdbdad", "dacdbdca", "dacdbdcd", "dacdcbab", "dacdcbac", "dacdcbad", "dacdcbca", "dacdcbcd", "dacdcbda", "dacdcbdb", "dacdcbdc", "dadbabca", "dadbabcb", "dadbabcd", "dadbacab", "dadbacad", "dadbacba", "dadbacbc", "dadbacbd", "dadbacda", "dadbacdb", "dadbacdc", "dadbadac", "dadbadca","dadbadcb", "dadbadcd", "dadbcaba", "dadbcabc", "dadbcabd", "dadbcacb", "dadbcacd", "dadbcada", "dadbcadb", "dadbcadc", "dadbcbab", "dadbcbac", "dadbcbad", "dadbcbda", "dadbcbdb", "dadbcdab", "dadbcdac", "dadbcdad", "dadbcdba", "dadbcdbd", "dadbcdca", "dadbdaca", "dadbdacb", "dadbdacd", "dadbdadc", "dadbdcab", "dadbdcac","dadbdcad", "dadbdcba", "dadbdcbc", "dadbdcbd", "dadbdcda", "dadbdcdb", "dadcabac", "dadcabad", "dadcabca", "dadcabcb", "dadcabcd", "dadcabda", "dadcabdb", "dadcabdc", "dadcacba", "dadcacbc", "dadcacbd", "dadcadab", "dadcadba", "dadcadbc", "dadcadbd", "dadcbabc", "dadcbabd", "dadcbaca", "dadcbacb", "dadcbacd", "dadcbada","dadcbadb", "dadcbadc", "dadcbcab", "dadcbcac", "dadcbcad", "dadcbcda", "dadcbcdc", "dadcbdab", "dadcbdac", "dadcbdad", "dadcbdba", "dadcbdca", "dadcbdcd", "dadcdaba", "dadcdabc", "dadcdabd", "dadcdadb", "dadcdbab", "dadcdbac", "dadcdbad", "dadcdbca", "dadcdbcb", "dadcdbcd", "dadcdbda", "dadcdbdc", "dbabcaba", "dbabcabd","dbabcacd", "dbabcada", "dbabcadb", "dbabcadc", "dbabcbab", "dbabcbad", "dbabcbda", "dbabcbdb", "dbabcbdc", "dbabcdab", "dbabcdac", "dbabcdad", "dbabcdba", "dbabcdbc", "dbabcdbd", "dbabcdca", "dbabcdcb", "dbabdbac", "dbabdbca", "dbabdbcb", "dbabdbcd", "dbabdcab", "dbabdcac", "dbabdcad", "dbabdcba", "dbabdcbc", "dbabdcbd","dbabdcda", "dbabdcdb", "dbacabac", "dbacabad", "dbacabda", "dbacabdb", "dbacadab", "dbacadac", "dbacadba", "dbacadbd", "dbacadca", "dbacadcd", "dbacbabd", "dbacbada", "dbacbadb", "dbacbcdb", "dbacbcdc", "dbacbdab", "dbacbdad", "dbacbdba", "dbacbdbc", "dbacbdcb", "dbacbdcd", "dbacdaba", "dbacdabd", "dbacdaca", "dbacdadb","dbacdbab", "dbacdbad", "dbacdbcb", "dbacdbcd", "dbacdbda", "dbacdbdc", "dbacdcac", "dbacdcbc", "dbacdcbd", "dbadacab", "dbadacad", "dbadacba", "dbadacbc", "dbadacbd", "dbadacda", "dbadacdb", "dbadacdc", "dbadbcab", "dbadbcac", "dbadbcad", "dbadbcba", "dbadbcbd", "dbadbcda", "dbadbcdb", "dbadbcdc", "dbadbdca", "dbadbdcb","dbadbdcd", "dbadcaba", "dbadcabc", "dbadcabd", "dbadcacb", "dbadcada", "dbadcadb", "dbadcbab", "dbadcbac", "dbadcbad", "dbadcbca", "dbadcbcd", "dbadcbda", "dbadcbdb", "dbadcbdc", "dbadcdab", "dbadcdad", "dbadcdba", "dbadcdbc", "dbadcdbd", "dbcabada", "dbcabadb", "dbcabcbd", "dbcabcdb", "dbcabcdc", "dbcabdab", "dbcabdad","dbcabdba", "dbcabdbc", "dbcabdcb", "dbcabdcd", "dbcacbca", "dbcacbcd", "dbcacbdb", "dbcacbdc", "dbcacdac", "dbcacdad", "dbcacdbc", "dbcacdbd", "dbcacdca", "dbcacdcb", "dbcadaba", "dbcadabd", "dbcadaca", "dbcadbab", "dbcadbad", "dbcadbcb", "dbcadbcd", "dbcadbda", "dbcadbdc", "dbcadcac", "dbcadcbc", "dbcadcbd", "dbcadcdb","dbcbabcb", "dbcbabcd", "dbcbabda", "dbcbabdb", "dbcbabdc", "dbcbacad", "dbcbacbc", "dbcbacbd", "dbcbacda", "dbcbacdb", "dbcbacdc", "dbcbadab", "dbcbadac", "dbcbadba", "dbcbadbc", "dbcbadbd", "dbcbadca", "dbcbadcb", "dbcbadcd", "dbcbdaba", "dbcbdabc", "dbcbdabd", "dbcbdaca", "dbcbdacb", "dbcbdacd", "dbcbdadb", "dbcbdadc","dbcbdbab", "dbcbdbac", "dbcbdbad", "dbcbdbca", "dbcdabac", "dbcdabad", "dbcdabca", "dbcdabcb", "dbcdabcd", "dbcdabda", "dbcdabdb", "dbcdabdc", "dbcdacab", "dbcdacba", "dbcdacbc", "dbcdacbd", "dbcdacdb", "dbcdacdc", "dbcdadba", "dbcdadbc", "dbcdadbd", "dbcdadcb", "dbcdadcd", "dbcdbabc", "dbcdbabd", "dbcdbaca", "dbcdbacb","dbcdbacd", "dbcdbada", "dbcdbadb", "dbcdbadc", "dbcdbdab", "dbcdbdac", "dbcdbdad", "dbcdcaba", "dbcdcabc", "dbcdcabd", "dbcdcacb", "dbcdcacd", "dbcdcada", "dbcdcadb", "dbcdcadc", "dbdabaca", "dbdabacb", "dbdabacd", "dbdabcab", "dbdabcac", "dbdabcad", "dbdabcba", "dbdabcbd", "dbdabcda", "dbdabcdb", "dbdabcdc", "dbdabdbc","dbdabdca", "dbdabdcb", "dbdabdcd", "dbdacaba", "dbdacabc", "dbdacabd", "dbdacada", "dbdacadb", "dbdacbab", "dbdacbac", "dbdacbad", "dbdacbca", "dbdacbcd", "dbdacbda", "dbdacbdb", "dbdacbdc", "dbdacdab", "dbdacdad", "dbdacdba", "dbdacdbc", "dbdacdbd", "dbdacdcb", "dbdadbca", "dbdadbcb", "dbdadbcd", "dbdadbdc", "dbdadcab","dbdadcac", "dbdadcad", "dbdadcba", "dbdadcbc", "dbdadcbd", "dbdadcda", "dbdadcdb", "dbdcabac", "dbdcabad", "dbdcabca", "dbdcabcb", "dbdcabcd", "dbdcabda", "dbdcabdb", "dbdcabdc", "dbdcacba", "dbdcacbc", "dbdcacbd", "dbdcacdb", "dbdcacdc", "dbdcadab", "dbdcadba", "dbdcadbc", "dbdcadbd", "dbdcadcb", "dbdcadcd", "dbdcbabc","dbdcbabd", "dbdcbaca", "dbdcbacb", "dbdcbacd", "dbdcbada", "dbdcbadb", "dbdcbadc", "dbdcbcab", "dbdcbcac", "dbdcbcad", "dbdcbdab", "dbdcbdac", "dbdcbdad", "dbdcbdba", "dbdcdaba", "dbdcdabc", "dbdcdabd", "dbdcdaca", "dbdcdacb", "dbdcdacd", "dbdcdadb", "dbdcdadc", "dbdcdbab", "dbdcdbac", "dbdcdbad", "dbdcdbda", "dcabacab","dcabacad", "dcabacda", "dcabacdc", "dcabadab", "dcabadac", "dcabadba", "dcabadbd", "dcabadca", "dcabadcd", "dcabcacd", "dcabcada", "dcabcadc", "dcabcbdb", "dcabcbdc", "dcabcdac", "dcabcdad", "dcabcdbc", "dcabcdbd", "dcabcdca", "dcabcdcb", "dcabdaba", "dcabdaca", "dcabdacd", "dcabdadc", "dcabdbab", "dcabdbcb", "dcabdbcd","dcabdcac", "dcabdcad", "dcabdcbc", "dcabdcbd", "dcabdcda", "dcabdcdb", "dcacbabd", "dcacbaca", "dcacbacd", "dcacbada", "dcacbadb", "dcacbadc", "dcacbcac", "dcacbcad", "dcacbcda", "dcacbcdb", "dcacbcdc", "dcacbdab", "dcacbdac", "dcacbdad", "dcacbdba", "dcacbdbc", "dcacbdca", "dcacbdcb", "dcacbdcd", "dcacdbab", "dcacdbac","dcacdbad", "dcacdbca", "dcacdbcb", "dcacdbcd", "dcacdbda", "dcacdbdc", "dcacdcab", "dcacdcba", "dcacdcbc", "dcacdcbd", "dcadabac", "dcadabad", "dcadabca", "dcadabcb", "dcadabcd", "dcadabda", "dcadabdb", "dcadabdc", "dcadbabc", "dcadbaca", "dcadbacb", "dcadbacd", "dcadbada", "dcadbadc", "dcadbcab", "dcadbcac", "dcadbcad","dcadbcba", "dcadbcbd", "dcadbcda", "dcadbcdb", "dcadbcdc", "dcadbdac", "dcadbdad", "dcadbdca", "dcadbdcb", "dcadbdcd", "dcadcbab", "dcadcbac", "dcadcbad", "dcadcbca", "dcadcbcd", "dcadcbda", "dcadcbdb", "dcadcbdc", "dcadcdba", "dcadcdbc", "dcadcdbd", "dcbabcba", "dcbabcbd", "dcbabcdb", "dcbabcdc", "dcbabdab", "dcbabdad","dcbabdba", "dcbabdbc", "dcbabdcb", "dcbabdcd", "dcbacada", "dcbacadc", "dcbacbcd", "dcbacbdb", "dcbacbdc", "dcbacdac", "dcbacdad", "dcbacdbc", "dcbacdbd", "dcbacdca", "dcbacdcb", "dcbadaba", "dcbadaca", "dcbadacd", "dcbadbab", "dcbadbcb", "dcbadbcd", "dcbadbdc", "dcbadcac", "dcbadcad", "dcbadcbc", "dcbadcbd", "dcbadcda","dcbadcdb", "dcbcabad", "dcbcabcb", "dcbcabcd", "dcbcabda", "dcbcabdb", "dcbcabdc", "dcbcacbc", "dcbcacbd", "dcbcacda", "dcbcacdb", "dcbcacdc", "dcbcadab", "dcbcadac", "dcbcadba", "dcbcadbc", "dcbcadbd", "dcbcadca", "dcbcadcb", "dcbcadcd", "dcbcdaba", "dcbcdabc", "dcbcdabd", "dcbcdaca", "dcbcdacb", "dcbcdacd", "dcbcdadb","dcbcdadc", "dcbcdcab", "dcbcdcac", "dcbcdcad", "dcbcdcba", "dcbdabac", "dcbdabca", "dcbdabcb", "dcbdabcd", "dcbdabdb", "dcbdabdc", "dcbdacab", "dcbdacad", "dcbdacba", "dcbdacbc", "dcbdacbd", "dcbdacda", "dcbdacdb", "dcbdacdc", "dcbdadbc", "dcbdadbd", "dcbdadca", "dcbdadcb", "dcbdadcd", "dcbdbabc", "dcbdbabd", "dcbdbaca","dcbdbacb", "dcbdbacd", "dcbdbada", "dcbdbadb", "dcbdbadc", "dcbdcaba", "dcbdcabc", "dcbdcabd", "dcbdcacb", "dcbdcacd", "dcbdcada", "dcbdcadb", "dcbdcadc", "dcbdcdab", "dcbdcdac", "dcbdcdad", "dcdabaca", "dcdabacb", "dcdabacd", "dcdabada", "dcdabadc", "dcdabcab", "dcdabcac", "dcdabcad", "dcdabcba", "dcdabcbd", "dcdabcda","dcdabcdb", "dcdabcdc", "dcdabdac", "dcdabdad", "dcdabdbc", "dcdabdca", "dcdabdcb", "dcdabdcd", "dcdacaba", "dcdacabc", "dcdacabd", "dcdacbab", "dcdacbac", "dcdacbad", "dcdacbca", "dcdacbcd", "dcdacbda", "dcdacbdb", "dcdacbdc", "dcdacdba", "dcdacdbc", "dcdacdbd", "dcdacdcb", "dcdadbab", "dcdadbac", "dcdadbad", "dcdadbca","dcdadbcb", "dcdadbcd", "dcdadbda", "dcdadbdc", "dcdadcba", "dcdadcbc", "dcdadcbd", "dcdadcdb", "dcdbabca", "dcdbabcb", "dcdbabcd", "dcdbabdb", "dcdbabdc", "dcdbacab", "dcdbacad", "dcdbacba", "dcdbacbc", "dcdbacbd", "dcdbacda", "dcdbacdb", "dcdbacdc", "dcdbadac", "dcdbadbc", "dcdbadbd", "dcdbadca", "dcdbadcb", "dcdbadcd","dcdbcaba", "dcdbcabc", "dcdbcabd", "dcdbcacb", "dcdbcacd", "dcdbcada", "dcdbcadb", "dcdbcadc", "dcdbcbab", "dcdbcbac", "dcdbcbad", "dcdbcdab", "dcdbcdac", "dcdbcdad", "dcdbcdca", "dcdbdaba", "dcdbdabc", "dcdbdabd", "dcdbdaca", "dcdbdacb", "dcdbdacd", "dcdbdadb", "dcdbdadc", "dcdbdcab", "dcdbdcac", "dcdbdcad", "dcdbdcda"<;

words8 êê Length

3576

myQuadMatr = quadMatrix@8D;replacePositionWithLastLetterColor ê@ words8;

showQuadTree := Show@Graphics@RasterArray@Transpose@myQuadMatrDDD,AspectRatio → 1, PlotRange → AllD;

Notice the forbidden white border district in the following quad tree showing all a-2-free words over 4 letters of lengt 8:

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 29

showQuadTree

Counting Binary Overlap-Free Words by Julien Cassaigne (Rovaniemi, October 2002)

2D Walks (a: left, b: right, c: down, d: up)The length of the word g85

4HaL producing the walk below is 854 = 52200625:

30 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

The length of the word g984HaL producing the walk below is 984 = 92236816:

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 31

Interactive 3D Visualizations

Sami Vuolli (pLAB, Rovaniemi Polytechnic, 2005)

D:\_IAS2005\Sami\exe>show.exe -f g98short.txt -n 99 -r 30 -d 2 -res 640 480

D:\_IAS2005\Sami\exe>show.exe -f 3letters_2040first.txt -n 151 -r 40 -d 2 -res 640 480

32 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 33

4 Letter Walks in Diamond Lattice (LiveGraphics3D)

a

b

c

d

g85aPath

34 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

Beginning

Ending

Note the loops:

"abc"<>"acdcbcdcadcdbdabacabadbabcbd"<>"bcb"

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 35

Beginning

Ending

<< RealTime3D` H∗ Use mouse and CTRL to rotate and zoom ∗L

Hg98L2 HaL

36 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

LiveGraphics3D (Java Applet) representations:

g98(a)

http://south.rotol.ramk.fi/keranen/JavaApplet/4LetterWalksInDiamondLattice.html

Semipalindrome structure of

"dcdadbdcbdbabdbcbacbcdbabdcdbdcacdbcbacbcdcacdcbdcdadbd"

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 37

Beginning

Ending

38 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

Open three letter problems (by Sami Mäkelä, Turku)

à Open three letter problems (by Sami Mäkelä, Turku, 2001):

1)

Can you avoid abelian squares of the form uv, where |u| ≥ 2, over three letters?

(So here we allow xx and xxx for a letter x)

– You can for (some) words of length 3151

(as found by Narad Rampersad, Waterloo, Ontario, Canada,

September 2004, by a randomized search).

2)

Can you avoid abelian cubes of the form uvw, where |u| ≥ 2, over two letters?

– You can for (some) words of length over 250.

à Three letters. Allow xx for a letter x,but do not allow xxx or other abelian squares.Longest word is of length 52. None of length 53.Perhaps all of the 3*4 = 12 words of length 52 can appear as a proper factor when xxx is allowed in extensions to left and right.

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 39

10 20 30 40 50

1000

2000

3000

4000

First string of length 2040 over 3 letters & Narad Rampersad random string of length 3151

Erik Jensen's result on Prouhet(1851)–Thue(1912)–Morse(1921) sequence

Conclusionsg85 and g98 seemed to crop up (for no apparent reason).

Only exhaustive searches have been fruitful (even though most of them have found nothing before 2007)

Applications:

Music, Group and Number Theory, Cryptography, Civil Engineering, ...

Future plans for study:

Experimental problem: Investigation of unfavourable factors

Formalization problem: Some Enhancements of Carpi's test for morphisms

40 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb

Task: Check independently the properties of g98 and the 124 new cases !

Future interest:

Bioinformatics (DNA), AIT & NKS (philosophical aspect), Cryptography, Genera-tion of Extreme Events, ...

Events

Algorithmic Information Theory in Vaasa, Finland, May 16 – 18, 2005

Main speakers: Bruno Buchberger, Gregory Chaitin, Jarkko Kari,

Heinz Langer, Markus Rosenkranz, Henk de Snoo, …

http://www.uwasa.fi/ait05/

Workshop on Technical Computing in Rovaniemi, Finland, May 20, 2005 Main speakers: Tore Jonassen, Markus Rosenkranz, …

6th International Arctic Seminar in Murmansk, Russia, May 24 – 27, 2005 Main speakers: Tore Jonassen, Markus Rosenkranz, …

7th International Mathematica Symposium IMS 2005, The University Of Western Australia, Perth, Australia August 5 – 8, 2005 http://InternationalMathematicaSymposium.org

___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb 41

8th International Mathematica Symposium IMS 2006, Palais des Papes, Avignon, France June 19 – 23, 2006 http://InternationalMathematicaSymposium.org

Optimal Synergy of Engineering and Life Sciences OSELS 2006, Palais des Papes, Avignon, France June 26 – 30, 2006 http://www.columbia.edu/~gd18/

2nd Algorithmic Information Theory AIT 2007, Castle of Hagenberg, Austria June 25 – 26, 2007 http://www.risc.uni-linz.ac.at/about/conferences

2nd International Conference on Algebraic Biology AB 2007, Castle of Hagenberg, Austria July 2 – 4, 2007 http://www.risc.uni-linz.ac.at/about/conferences/ab2007

9th International Mathematica Symposium IMS 2008, Maastricht University, Maastricht, the Netherlands June 20 (Friday) – June 24 (Tuesday), 2008 http://InternationalMathematicaSymposium.org

42 ___Veikko_Turku_20February2007_Presentation_CADE2007_forPDF.nb