Cryptarithmetic is the science and art of creating and solving cryptarithms.

A cryptarithm is a genre of mathematical puzzle in which the digits are replaced by letters of the alphabet or other symbols.

The invention of Cryptarithmetic has been ascribed to ancient China. This art was originally known as letter arithmetic or verbal arithmetic. In India, during the Middle Ages, were developed the arithmetical restorations or "skeletons" a type of cryptarithms in which most or all of the digits have been replaced by asterisks.

In 1864 the first cryptarithm appeared in the USA, in American Agriculturist.

The word cryptarithmetic ("cryptarithmie" in French) was introduced by M. Vatriquant, writing under the pseudonym Minos, in the May 1931 issue of Sphinx, a Belgian magazine of recreational mathematics published in French from 1931 to 1939.

A type of alphametic addition puzzle termed "doubly-true" was introduced in 1945 by Alan Wayne. It is made up of "number words" that, when read, also form a valid sum.

In 1955, J. A. H. Hunter coined the word alphametic to designate a cryptarithm whose letters form sensible words or phrases.

The world's best known alphametic puzzle is undoubtedly SEND + MORE = MONEY. It was created by H. E. Dudeney and first published in the July 1924 issue of Strand Magazine associated with the story of a kidnapper's ransom demand.

Modernization by introducing innovations such as computers and the Internet is making quite an impact on cryptarithmetic. If you are interested in knowing more about this revolution read the article Will cryptarithmetic survive innovation?

Rewrite the problem, expanding the interlinear space to make room for
trial numbers that will be written under the letters.

For example, the puzzle SEND + MORE = MONEY, after solving, will appear like
this:

** S E N D
9 5 6 7
+ M O R E
1 0 8 5
---------
M O N E Y
1 0 6 5 2
**

- Each letter or symbol represents only one digit throughout the
problem;
- When letters are replaced by their digits, the resultant arithmetical
operation must be correct;
- The numerical base, unless specifically stated, is 10;
- Numbers must not begin with a zero;
- There must be only one solution to the problem.

Ease the analysis of subtractions by reading them as upside-down
additions. Remember that you can check a subtraction by adding the
difference and the subtracter to get the subtrahend: it's the
same thing.
This subtraction:

** C O U N T
- C O I N
---------
S N U B
**

must be read from the bottom to the top and from the right
to the left, as if it were this series of additions:

B + N = T + C1
U + I = N + C2
N + O = U + C3
S + C = O + C4

C1, C2, C3 and C4 are the carry-overs of "0" or "1" that are to be
added to the next column to the left.

A good hint to find zero or 9 is to look for columns containing
two or three identical letters.

Look at these additions:

** * * * A * * * B
+ * * * A + * * * A
------- -------
* * * A * * * B
**

The columns A+A=A and B+A=B indicate that A=zero. In math this is called
the "additive identity property of zero"; it says that you add "0" to
anything and it doesn't change, therefore it stays the same.
Now look at those same additions in the body of the cryptarithm:

** * A * * * B * *
+ * A * * + * A * *
------- -------
* A * * * B * *
**

In these cases, we may have A=zero or A=9. It depends whether or not
"carry 1" is received from the previous column. In other words,
the "9" mimics zero every time it gets a carry-over of "1".

Look for left hand digits. If single, they are probably "1".

Take the world's most famous cryptarithm:

** S E N D
+ M O R E
---------
M O N E Y
**

"M" can only equal 1, because it is the "carry 1" from the column
S+M=O (+10). In other words, every time an addition of "n" digits
gives a total of "n+1" digits, the left hand digit of the total must
be "1".
In this Madachy's subtraction problem, "C" stands for the digit "1":

** C O U N T
- C O I N
---------
S N U B
**

In this multiplication:

** M A D
B E
-------
M A D
R A E
-------
A M I D
**

The first partial product is E x MAD = MAD. Hence "E" must equal "1".
In math jargon this is called the "identity" property of "1" in multiplication;
you multiply anything by "1" and it doesn't change, therefore it remains the same.
Look this division:

** K T
--------
N E T / L I N K
N E T
-------
K E K K
K T E C
-------
K E Y
**

In the first subtraction, we see K x NET = NET. Then K=1.

Any number multiplied by "1" is the number itself. Also, any even number
multiplied by "6" is the number itself:

** 4 x 1 = 4
7 x 1 = 7
2 x 6 = 2 (+10)
8 x 6 = 8 (+40)
**

Looking at right hand digits of multiplications and divisions,
can help you spot digits "1" and "6".
Those findings will show like these ones:
C B
----------
* * A * * A / * * * * *
B C * * * C
------ ---------
* * * C * * * *
* * * B * * * B
--------- -------
* * * * * * * *

The logic is: if C x * * A = * * * C
B x * * A = * * * B

then A=1 or A=6.

Any number multiplied by zero is zero. Also, any odd number
multiplied by "5" is "5":

** 3 x 0 = 0
6 x 0 = 0
7 x 5 = 5 (+30)
9 x 5 = 5 (+40)
**

Looking at right hand digits of multiplications and divisions,
can help you spot digits "0" and "5".
Those findings will show like these ones:
C B
----------
* * A * * A / * * * * *
B C * * * A
------- ---------
* * * A * * * *
* * * A * * * A
--------- -------
* * * * * * * *

The logic is: if C x * * A = * * * A
B x * * A = * * * A

then A=0 or A=5

Matching is the process of assigning potential values to a variable and
testing whether they match the current state of the problem.

To see how this works, let's attack this long-hand division:

** K M
----------
A K A / D A D D Y
D Y N A
---------
A R M Y
A R K A
-------
R A
**

To facilitate the analysis, let's break it down to its basic
components, i.e., 2 multiplications and 2 subtractions:
I. K x A K A = D Y N A
II. M x A K A = A R K A
III. D A D D
- D Y N A
---------
A R M
IV. A R M Y
- A R K A
---------
R A

From I and II we get:
K x * * A = * * * A
M x * * A = * * * A

This pattern suggests A=0 or A=5. But a look at the divisor
"A K A" reveals that A=0 is impossible, because leading letters cannot
be zero. Hence A=5.
Replacing all A's with "5", subtraction IV becomes:

** 5 R M Y
- 5 R K 5
---------
R 5
**

From column Y-5=5 we get Y=0.

Replacing all Y's with zero, multiplication I will be:
K x 5 K 5 = D 0 N 5

Now, matching can help us make some progress. Digits 1, 2, 3, 4, 6, 7, 8
and 9 are still unidentified. Let's assign all these values to the variable
K, one by one, and check which of them matches the above pattern.

Tabulating all data, we would come to:
K x 5K5 = D0N5
----------------------
1 515 515
2 525 1050
3 535 1605
4 545 2180
6 565 3390
SOLUTION --> 7 575 4025 <-- SOLUTION
8 585 4680
9 595 5355
----------------------

You can see that K=7 is the only viable solution that matches the
current pattern of multiplication I, yielding:
K x A K A = D Y N A
7 5 7 5 4 0 2 5

This solution also identifies two other variables: D=4 and N=2.

Usually we start solving a cryptarithm by searching for 0, 1, and 9. Then
if we are dealing with an easy problem there is enough material to proceed
decoding the other digits until a solution is found.

This is the exception and not the rule. Most frequently after
decoding 1 or 2 letters (and sometimes none) you get stuck. To make progress
we must apply the **generate-and-test** method, which consists of
the following procedures:

- 1. List all digits still unidentified;
- 2. Select a base variable (letter) to start generation;
- 3. Do a cycle of generation and testing: from the list of still
unidentified digits (procedure 1) get one and assign it to
the base variable; eliminate it from the list; proceed guessing values for
the other variables; test consistency; if not consistent, go to perform the
next cycle (procedure 3); if consistent, stop: you have found the solution
to the problem.

To demonstrate how this method works, let's tackle this J. A. H. Hunter's addition:

** T A K E
A
+ C A K E
----------
K A T E
**

The column AAA suggests A=0 or A=9.

But column EAEE indicates that A+E=10, hence the only acceptable value
for "A" is 9, with E=1.

Replacing all "A's" with 9 and all "E's" with 1, we get
T 9 K 1
9
+ C 9 K 1
----------
K 9 T 1

Letter repetition in columns KKT and TCK allows us to set up the
following algebraic system of equations:
C1 + K + K = T + 10
C3 + T + C = K

Obviously C1=1 and C3=1. Solving the equation system we get K+C=8:
not much, but we discovered a relationship between the values of "K" and "C"
that will help us later.

But now we are stuck!
It's time to use the **"generate-and-test"** method.

Procedure 1: digits 2,3,4,5,6,7 and 8 are still unidentified;

Procedure 2: we select "K" as the base variable;

**CYCLE #1**, procedure 3: column TCK shows that T+C=K and no carry, hence
"K" must be a high valued digit. So we enter the list obtained through procedure
1 from the high side, assigning "8" to the base variable "K".

Knowing that K+C=8, if K=8 then C=0. But this is an unacceptable
value for "C", because the addend "CAKE" would become "0981" and
cryptarithmetic conventions say that no number can start with zero. So,
we must close this cycle and begin cycle #2.

By now, the addition layout and the table summarizing current variable data
would look like this:

** T 9 8 1 CYCLE A E K C T
9 ========================
+ 0 9 8 1 #1 9 1 8 [0]
----------
8 9 T 1
**

Conflicting values for variables are noted within square brackets.
**CYCLE #2**, procedure 3: assigning "7" to the letter "K" we get C=1
because K+C=8. This is an unacceptable value for "C" considering that we
have already fixed E=1. Again we have to close the current cycle and go to cycle #3,
with the setup and table showing:

** T 9 7 1 CYCLE A E K C T
9 ========================
+ 1 9 7 1 #1 9 1 8 [0]
---------- #2 9 1 7 [1]
7 9 T 1
**

**CYCLE #3**, procedure 3: assigning "6" to the letter "K" we get C=2
because K+C=8.
Testing these values for "K" and "C" in the column TCK,
we get C3+T+2+=6 making T=3.
Now, testing T in column KKT, we would obtain C1+K+K=T+10 or
1+6+6=T+10, making T=3. This is an acceptable value for T, confirming
the previous value T=3 we had already found.

So, we have got the final solution to the problem, stopping the
routine **"generate-and-test"**.

The final layout and table would read

** 3 9 6 1 CYCLE A E K C T
9 ========================
+ 2 9 6 1 #1 9 1 8 [0]
---------- #2 9 1 7 [1]
6 9 3 1 #3 9 1 6 2 3
**

__1. Geoffrey Mott-Smith__

In "Mathematical Puzzles for Beginners
& Enthusiasts"©

**
S E N D
+ M O R E
------------
M O N E Y
**

We see at once that M in the total must be 1**,
**since the total of the column SM cannot
reach as high as 20**. **Now if M in this
column is replaced by 1, how can we make this
column total as much as 10 to provide the 1**
**carried over to the left below? Only by
making S very large: 9 or 8. In either case
the letter O must stand for zero: the
summation of SM could produce only 10 or 11**,
**but we cannot use 1 for letter O as we
have already used it for M**.**

If letter O is zero, then in column EO we
cannot reach a total as high as 10**, **so
that there will be no 1** **to carry over
from this column to SM. Hence S must
positively be 9.

Since the summation EO gives N, and letter O
is zero, N must be 1** **greater than E
and the column NR must total over 10. To put
it into an equation: E + 1 = N

From the NR column we can derive the
equation: N + R + (+ 1) = E + 10

We have to insert the expression (+ 1)
because we don’t know yet whether 1** **is
carried over from column DE. But we do know
that 1 has to be carried over from column NR
to EO.

Subtract the first equation from the second:
R + (+1) = 9

We cannot let R equal 9, since we already
have S equal to** **9. Therefore we will
have to make R equal to 8; hence we know that
1** **has to be carried over from column
DE.

Column DE must total at least 12**, **since
Y cannot be 1 or zero. What values can we
give D and E to reach this total? We have
already used 9 and 8 elsewhere. The only
digits left that are high enough are 7, 6 and
7, 5. But remember that one of these has to
be E, and N is 1** **greater than E. Hence
E must be 5, N must be 6, while D is 7. Then
Y turns out to be 2**, **and the puzzle is
completely solved.

© Copyright Dover
Publications, Inc., New York, 1954, ISBN
0-486-20198-8.

__2. Steven Kahan__

In "Take a Look at a Good Book"©

**
E A T
+ T H A T
------------
A P P L E
**

Since every four-digit
number is less than 10,000 and every
three-digit number is less than 1,000, the
sum of two such numbers is necessarily less
than 11,000. This sum, though, is a
five-digit number, hence is greater than
10,000. Consequently, A must be 1 and P must
be 0. Further, we can conclude that T = 9.
Otherwise, we would be adding a number less
than 1,000 to one less than 9,000, leaving us
short of the requisite total. The units
column then produces E = 8 while generating a
carryover of 1 into the tens column. Together
with the previously found value of A, we learn
from the tens column that L = 3. Finally, the
hundreds column yields the equation E + H = P
+ 10, where the "10" is required to
accommodate the needed carryover into the
thousands column. When the values of E and P
are substituted into this relationship, we
get 8 + H = 10, from which it follows that H
= 2. Therefore, the unique solution of the
puzzle turns out to be 819 + 9219 = 10038.

© Copyright Baywood Publishing
Company, Inc., Amityville, New York, 1996,
ISBN 0-89503-142-6.

__3. J. A. H.
Hunter__

In "Entertaining Mathematical Teasers
and How to Solve Them"©

**
N O
G U N
+ N O
----------
H U N T
**

Obviously H = 1.

From the NUNN column we must have "carry
1," so G = 9, U = zero.

Since we have "carry" zero or 1 or
2 from the ONOT column, correspondingly we
have N + U = 10 or 9 or 8. But duplication is
not allowed, so N = 8 with "carry
2" from ONOT.

Hence, O + O = T + 20 -
8 = T + 12. Testing for
T = 2, 4 or 6, we find only T = 2 acceptable,
O = 7.

So we have 87 + 908 + 87 = 1082.

© Copyright Dover
Publications, Inc., New York, 1983, ISBN
0-486-24500-4.

__4. Maxey Brooke__

In "150 Puzzles In Crypt-Arithmetic"©

**
A B C
x D E
----------
F E C
D E C
----------
H G B C**

In the second partial
product we see D x A = D, hence A = 1.

D x C and E x C both end in C, hence C = 5.

D and E must be odd. Since both partial
products have only three digits, neither can
be 9. This leaves only 3 and 7. In the first
partial product E x B is a number of two
digits while in the second partial product D
x B is a number of only one digit. Thus E is
larger than D, so E = 7 and D = 3.

Since D x B has only one digit, B must be 3
or less. The only two possibilities are 0 and
2. B cannot be zero because 7B is a two-digit
number. Thus B = 2.

By completing the multiplication, F = 8, E =
7, and G = 6. The answer is 125 x 37 = 4625

© Copyright Dover
Publications, Inc., New York, 1963.

__5. Joseph S.
Madachy__

In "Madachy´s Mathematical
Recreations"©

**
(B E) (B E) = M O B
**

Here a 3-digit number is
the product of a 2-digit number multiplied by
itself. Basic knowledge of the laws of
multiplication will immediately force the
conclusion that B cannot be greater than 3.
For if B is 4, and the lowest possible value,
0, is assigned to E then BE = 40. However,
(40)(40) = 1,600, a 4-digit number, and the
product in the puzzle to be solved has but 3
digits. Convention demands that the initial
letters or symbols of alphametics cannot be
0, so B is either 1, 2, or 3. Another
convention demands that 2 different letters
cannot be substituted for the same digit.
That is, if B turns out to be 3, then no
other letter in this alphametic could stand
for 3. Attention can be directed to E since
much can be deduced from the fact that (E)(E)
ends in B. If E equals 0, 1, 5, or 6, then
the product would be a number ending in 0, 1,
5, or 6, respectively. Since the product,
MOB, does not end in E, these numbers for E
are eliminated. 2, 3, 4, 7, and 8 can also be
eliminated as values for E, since they would
yield the terminal digits of 4, 6, or 9 for
MOB, and B has been established as being 1,
2, or 3. Only one value for E, 9, remains:
(9) (9) = 81 so B = 1, and the alphametic is
solved: (BE) (BE) = MOB is (19) (19) = 361.

© Copyright Dover
Publications, Inc., New York, 1979, ISBN
0-486-23762-1.

**
A L E
x R U M
----------
W I N E
W U W L
E W W E
-------------
E R M P N E
**

To systematize our work we
first write in a row the different letters
appearing in the problem:

**
A L E R U M W I N P**

Over each letter we will
write its numerical equivalent when we
discover it. In the columns under the various
letters we will record clues and tentative
hypotheses, being careful to put all related
inferences on the same horizontal line.

In problems of this sort the digits 0 and 1
can often be found, or at least restricted to
a very few possibilities, by simple
inspection. For instance, 0 can never occur
as the leftmost digit of an integer, and when
any number is multiplied by zero the result
consists exclusively of zeros. Moreover when
any number is multiplied by 1 the result is
that number itself. In the present problem,
however, we can identify 0 by an even simpler
observation. For in the second column from
the right, N plus L equals N, with nothing
carried over from the column on the right.
Hence L must be zero.

In our search for 1 we can eliminate R, U,
and M at once, since none of these, as
multipliers in the second row, reproduces A L
E. Moreover E cannot be 1 since U times E
does not yield a product ending in U. At
present, however, we have no further clues as
to whether 1 is A, I, N, P, or W.

Now the partial product W U W L ends in L,
which we know to be 0. Hence one of the two
letters U and E must be 5. Looking at the
units digits of the other partial products,
we see that both M x E and R x E are numbers
ending in E. A moment’s reflection (or a
glance at a multiplication table) shows that
E must therefore be 5.

But if E is 5, then both R and M must be odd,
since an even number multiplied by 5 would
yield a product ending in 0, which is not the
case in either the first or third partial
product. Moreover, by similar reasoning it is
clear that U is an even number.

At this point it is convenient to return to
our array and list under U the various possibilities,
namely 2, 4, 6, and 8. Opposite each of these
we record the corresponding value of W as
read from the partial product W U W L, whose
last two digits are now determined since the
factor A L E is known to be _05. These values
of W are easily seen to be 1, 2, 3, and 4.

From an inspection of the second column from
the left we can now deduce the corresponding
possibilities for R. As we have already
noted, R must be odd; hence its value is
twice W plus 1 (the 1 being necessarily
carried over from the column on the right).
The possible values for R are then 3, 5, 7,
and 9, and our array looks like this:

**
0 5
A L E R U M W I N P
3 2 1
5 4 2
7 6 3
9 8 4**

Now in the third column
from the left in the example the sum of the
digits W, U, and W must be more than 9, since
1 had to be carried over from this column
into the column on the left. The values in
the first two rows of the array are too low
for this, however, hence we can cross out
both of these lines.

A further consideration of the sum of the
digits W, U, and W in the third column from
the left, coupled with the fact that M is
known to be odd, shows that in the third row
of the array M must be 3 while in the fourth
row it must be 7. This permits us to reject
the third row of the array also, for it
contains 3 for both M and W, which is
impossible. The correct solution must
therefore be the one contained in the fourth
row. Hence R is 9, U is 8, M is 7, and W is
4. Substituting these into the problem it is
a simple matter to determine that A is 6, I
is 2, N is 3, and P is 1. This completes the
solution.

© Copyright Dover
Publications, Inc., New York, 1957, ISBN
0-486-20367-0.

There is an incredibly useful Web resource where you can get
a complete course on cryptarithm solving: **Introduction to Cryptarithms
I, II and III** by LEDGE. These lectures are included in the Classical
Cryptography Course by Lanaki, sponsored by the American Cryptogram
Association (ACA).

LEDGE is the pseudonym of Dr. Gerhard D. Linz who has produced some of
the best contributions known on cryptarithm solving for beginners.

Here you have summaries and links to Dr. Gerhard's lessons:

**LECTURE 8 - INTRODUCTION TO CRYPTARITHMS I**
*(http://www.und.nodak.edu/org/crypto/crypto/lanaki.crypt.class/
lessons/lesson08.zip)*

Definition; keys; problem statement; modulo arithmetic; digital
characteristics; making inferences; extracting square roots.

**LECTURE 14 - INTRODUCTION TO CRYPTARITHMS II**
*(http://www.und.nodak.edu/org/crypto/crypto/lanaki.crypt.class/
lessons/lesson14.zip)*

Unique solution; multiplication; problems in bases 11 and 12;
multiplicative structures; tables for multiplication and
addition on bases 11 and 12.

**LECTURE 18 - INTRODUCTION TO CRYPTARITHMS III**
*(http://www.und.nodak.edu/org/crypto/crypto/lanaki.crypt.class/
lessons/lesson18.zip)*

Nomenclature and symbols; square roots; duodecimal square root;
cube roots; undecimal cube root; fourth root problem, base 15;
exponentiation; more difficult addition; double key division.

**ALPHAMETIC**

A cryptarithm in which the letters, which represent distinct digits,
form related words or meaningful phrases. The word "alphametic" was
coined by J. A. H. Hunter in 1955.

**CIPHER**

To write in code. Same as to encode.

**CRYPT or CRYPTO**

Prefix denoting hidden [from Greek *kryptein* to hide].

**CRYPTANALYSIS**

The steps and operations performed in deciphering a cryptarithm
without initial knowledge of the key employed in the encryption.

**CRYPTARITHM**

A number puzzle in which an indicated arithmetical operation has
some or all of its digits replaced by letters or symbols, and where
the restoration of the original digits is required. Each letter
represents a unique digit.

**CRYPTARITHMETIC**

The science and art of studying cryptarithms, known centuries ago
as "letter arithmetic" or "verbal arithmetic". The term "crypt-arithmetic"
was first introduced by M. Vatriquant, writing under the pseudonym "Minos",
in the May 1931 issue of Sphinx, a Belgian magazine on recreational
mathematics.

**DECIPHER**

To convert from a coded form to ordinary language; decode.

**DIGIMETIC**

A cryptarithm in which digits represent other digits.

**DIGIT**

In the decimal system, one of the numbers 0,1,2,3,4,5,6,7,8,9.

**DOUBLY-TRUE**

A type of alphametic addition puzzle introduced in 1945 by Alan Wayne.
It is made up of "number words" that, when read, also form a valid sum.
Example: ONE + TWO + FIVE = EIGHT is a "doubly-true".

**DUODECIMAL NUMBER SYSTEM**

The system of numeration with base 12.

**ENCIPHER**

To write something in code. Same as encode.

**ENCRYPTION**

The translation of a cryptarithm into a code.

**EVEN NUMBER**

An integer that is divisible by 2.

**INTEGER**

One of the numbers ..., -3, -2, -1, 0, 1, 2, 3, ...

**KEY**

A table consisting of each of the letters used in a cryptarithm, paired
with its numerical equivalent.

**ODD NUMBER**

An integer that is not divisible by 2.

**SKELETONS**

Puzzles in which most or all of the digits have been
replaced by asterisks to form a cryptarithm. Also termed **arithmetical restorations**, they were probably invented
in India during the Middle Ages.

**UNDECIMAL NUMBER SYSTEM**

The system of numeration with base 11.

**Ball, W. W. Rouse** and **Coxeter, H. S. M.**, *Mathematical Recreations and Essays*, Dover, New York, 1987,
ISBN 0-486-25357-0.

**Brooke, Maxey**, *150 Puzzles in Crypt-Arithmetic*, Dover, New York, 1963.

**Hunter, J. A. H.**, *Challenging Mathematical Teasers
*, Dover, New York, 1986, ISBN 0-486-23852-0.

**Hunter, J. A. H.**, *Entertaining Mathematical Teasers and How
to Solve Them*, Dover, New York, 1983, ISBN 0-486-24500-4.

**Hunter, J. A. H.**, *Mathematical Brain-Teasers*, Dover, New York,
1976, ISBN 0-486-23347-2.

**Kahan, Steven**, *Have Some Sums To Solve - The Compleat
Alphametics Book*, Baywood, New York, 1978, ISBN 0-89503-007-1.

**Linz, Gerhard D. (LEDGE)**, "Introduction to Cryptarithms I, II and III"
in *Classical Cryptography Course by Lanaki*, American Cryptogram
Association, 1996.

**Madachy, Joseph S.**, *Madachy's Mathematical Recreations*,
Dover, New York, 1979, ISBN 0-486-23762-1.

**MathPro Press**,
*On-Line Mathematics Dictionary.*

**Rich, Elaine**, *Artificial Intelligence*, McGraw-Hill Intl. Book Co.,
1984, ISBN 0-07-052261-8.

[ Home ]

[ My Cryptarithms ]

[ Crack a Puzzle Online! ]

[ The *Sphinx* Collection ]

[ A Primer on Cryptarithmetic ]

[ Alphametic Puzzle Solver ]

[ Alphametic Puzzle Generator ]

[ Books on Cryptarithmetic ]

[ Links to Cryptarithm Sites on the Web ]

[ Sphinx memorial ]