40 Numbers in 9 Bytes There are 40 ways a directed Hamiltonian path can be arranged on a 3×3 grid:

This graphic (thanks Sp3000!) shows only the 20 undirected paths. Traverse each colored line in both directions for the 40 directed paths.
Challenge
Using only printable ASCII, write a 3×3 grid of characters, such as:
ABC
DEF
GHI

When each of the 40 directed paths are read from this grid as 40 single-line, 9-character programs, the goal is to have each program output a unique integer from 1 to 40. Doing this for all 40 paths seems difficult and unlikely, so you only need to make it work for as many paths as you can.
The submission whose 40 path-programs output the most distinct numbers from 1 to 40 will be the winner. Tiebreaker goes to the earlier submission.
Path-programs that error or do not output an integer from 1 to 40 or output an integer that another path-program already covered are not counted. Specifically:

Programs that error while compiling, running, or exiting are not counted. Warnings are ok.
Programs that don't output an integer from 1 to 40 or output something slightly malformed such as -35 or 35 36 are not counted.
Programs that require user input to produce the output are not counted.
Programs that never end are not counted.
From now on, programs that aren't deterministic aren't counted.
Otherwise valid programs that output an integer from 1 to 40 that another valid program has already output are not counted. (The first program is counted.)
Only programs that output integer representations of numbers from 1 to 40 (inclusive) are counted towards your total. The numbers are expected to be in the usual 1, 2, ..., 39, 40 format, unless that is not the norm for your language. (A trailing newline in the output is fine.)
Which numbers your programs output and what order they are in does not matter. Only the number of distinct integers from valid programs matters.

All path-programs must be run in the same language. However, the &quot;programs&quot; may in fact be functions (with no required arguments) or REPL commands, as well as full programs, that print or return their target integer. You may mix and match between functions, REPL commands, and full programs.
Your 9 printable ASCII characters do not need to be distinct.
Example
If your 3×3 grid were
ABC
DEF
GHI

and your 40 programs and outputs looked like this
ABCFEDGHI -&gt; 26
ABCFIHEDG -&gt; 90
ABCFIHGDE -&gt; 2
ABEDGHIFC -&gt; syntax error
ADEBCFIHG -&gt; prints 40 but then errors
ADGHEBCFI -&gt; 6
ADGHIFCBE -&gt; 6
ADGHIFEBC -&gt; 6
CBADEFIHG -&gt; runtime error
CBADGHEFI -&gt; 3
CBADGHIFE -&gt; 4
CFEBADGHI -&gt; -32
CFIHEBADG -&gt; 38.0
CFIHGDABE -&gt; &quot;36&quot;
EDABCFIHG -&gt; 33
EFCBADGHI -&gt; no output
EHGDABCFI -&gt; compilation error
EHIFCBADG -&gt; 8
GDABCFEHI -&gt; 22
GHEDABCFI -&gt; 41
IHGDEFCBA -&gt; 0
GDEHIFCBA -&gt; '9'
EDGHIFCBA -&gt; +10
CFIHGDEBA -&gt; 11
GHIFCBEDA -&gt; error
IFCBEHGDA -&gt; error
EBCFIHGDA -&gt; prints 23 but then loops infinitely
CBEFIHGDA -&gt; randomly prints either 24 or 44
GHIFEDABC -&gt; error
IFEHGDABC -&gt; 30
EFIHGDABC -&gt; 39
IHGDABEFC -&gt; 7
GDABEHIFC -&gt; 29
EBADGHIFC -&gt; -1
GHIFCBADE -&gt; 26
IHGDABCFE -&gt; 1
IFCBADGHE -&gt; error
GDABCFIHE -&gt; no output
IHEFCBADG -&gt; no output
IFCBADEHG -&gt; &quot;quack&quot;

your score would be 14, because there are 14 distinct integers from 1 to 40 validly output, namely 26 2 6 3 4 33 8 22 11 30 39 7 29 1.
Deadfish, 18

This was actually the first language I tried before I considered infix operators. I'm posting it now for the sheer hilarity of the idea that Deadfish could be useful for something.

iii
ios
sii


For those who don't know Deadfish, i is increment, s is square and o is output, with the accumulator starting at 0 (there's also a 4th instruction d for decrement not used here). The fact that we don't have automatic printing and need to use o is a major drawback, but surprisingly Deadfish doesn't do too terribly here, all things considered. It turns out that the optimal placement of the output operator is in the middle.

iiisoisii 9
iiisiiois 11
iiisiisio 122
iioisiisi 2
iioiisiis 2
iisioiisi 5
iisiisiio 38
iisiisoii 36
iiiiosiis 4
iiiisiosi 17
iiiisiiso 324
isoiiisii 1
isiioiiis 3
isiisiiio 12
oiiiisiis 0
osiiiisii 0
oisiiiisi 0
oiisiiiis 0
siiiisoii 16
sioiiiisi 1
iisiosiii 5
sioiisiii 1
oisiisiii 0
isiisioii 10
siisiioii 6
isiioisii 3
oiisiisii 0
iiosiisii 2
siisoiiii 4
isoisiiii 1
osiisiiii 0
iisiiiosi 7
siiioiisi 3
oiiisiisi 0
siisiiiio 8
iisiiiiso 64
isiiiisio 26
siiiisiio 18
iiosiiiis 2
isiiiiois 5