Deranged Rearrangements Your task is to write a computer program such that when it is cut up into lines (split on the newline character) every arrangement of the lines will output a different number between 1 and n! (where n is the total number of lines).  No number should be output by two different arrangements and every arrangement should output a number on this range. Since there are n! ways to arrange the lines of a program this means each number should be output by one rearrangement.

For example the python program

print 1;"""
print 2;"""


Has two arrangements

print 1;"""
print 2;"""


and 

print 2;"""
print 1;"""


The first outputs 1 and the second outputs 2.

You may use whatever output formats are standard in the language you are using.  You may not assume any sort of boilerplate. I think this challenge is more interesting if you have to work around whatever formats the language insists on.

Scoring

Your score will be the number of lines in your program with a higher score being better.  You may choose to output numbers from 0 to n!-1 if you would like.
CJam, score: ∞

Each line is of the form

];Lx+:L{__(f&lt;0+:+\,,(;1+:**\(;}h]:+


where x is a number from 0 to n-1. The result is in the range 0 to n!-1.

Try it online! (For n=3.)

Credits to jimmy23013 for the code that computes the actual permutation index. I've only replaced the bit that reads the input with ];Lx+:L which discards the result from the previous line and then adds the index of the current line to the variable L (which is initially an empty array).