import numpy.random as ran

adj1 = ['inverse', 'coupled', 'delocalized', 'localized', 'strained', 'canted', 'cyclodial',
       'optical', 'epitaxial', 'racetrack', 'twinned', 'commensurate',
       'incomensurate', 'soft', 'hard', 'giant', 'collosal']

adj2 = ['magnetoelectric', 'ferroelectric', 'ferromagnetic', 'multiferroic', 'piezoelectric',
        'ferroelastic', 'spintronic', 'antiferroic', 'photovoltaic', 'flexoelectric', 'pyroelectric',
        'topologically protected', 'spin-driven']

subst = ['spin', 'torque', 'domains', 'domain walls', 'crystals', 'thin films',
         'lattices', 'interactions', 'hysteresis', 'order', 'coupling', 'skyrmions', 'vortex']

effekt = ['magnetoresistance', 'morphotropic phase boundary-', 'Dzylovashinski-Moriya', 'spin-orbit', 'electron gas', 'RKKY',
          'superexchange-', 'direct exchange-', 'Heisenberg exchange-', 'optical strain']

bruk = ['spin valve', 'transistor', 'memory', 'spintronic', 'racetrack memory', 'second harmonic generation',
        'magnetoresistance', 'capacitor', 'electromagnon']

string = 'The '

string += ran.choice(adj1) + ' ' + ran.choice(adj2) + ' ' + ran.choice(effekt)
if string[-1] == '-':
    string = string[:-1]
    string += ' can give '
else:
    string += ' effect can give '

string += ran.choice(adj1) + ' ' + ran.choice(adj2) + ' ' + ran.choice(subst)
string += ' and open for '
string += ran.choice(adj2) + ' ' + ran.choice(bruk)
string += ' applications.'

print('#'*len(string), '\n')
print(string)
print('\n', '#'*len(string), sep='')