# Java 1.8, <s>96</s> 91 bytes I managed to flatten everything into one for-loop with a single print statement. Nothing Java 1.8 specific - just happens to be the version I compiled the code with. <s> void f(){for(int i=-1,j=0,k=i;++i<702;k=(i+1)%27)System.out.write(k>25?++j-j+10:65+(k>j?k:j));} </s> Surprisingly, removing variable `k` and introducing `Math.max()` skimmed off 5 bytes: void f(){for(int i=-1,j=0;++i<702;)System.out.write(i%27>25?++j-j+10:65+Math.max(i%27,j));} Or ungolf'ed: interface C { static void main(String[] a) { f(); } static void f() { for (int i = -1, j = 0; ++i < 702;) { System.out.write(i%27 > 25 ? ++j - j + 10 : 65 + Math.max(i%27,j)); } } } [Try it here.](https://ideone.com/yWJr9Z) Approach is based on my [Tabula Recta answer](http://codegolf.stackexchange.com/questions/86986/print-a-tabula-recta/87202#87202). This leverages the fact that the `System.out` stream is line-buffered, causing an auto-flush whenever a line feed character (`10`) is written. I have a feeling this can be golf'ed down further, mainly because of the way the values of certain variable are juggled with (i.e. `j`). *Note to self: I was right!*.