#!/usr/bin/perl -w

use strict;

my $separate;
($separate = $ARGV[0] eq 's') && shift;

my @fields = map {$_>0 ? $_-1 : $_} @ARGV;

unless (@fields) {
	die "syntax: $0 fields...\n";
}

my @F;
my @slice;
my $slice;

my @rsf = reverse sort @fields;

while (defined ($_ = <STDIN>)) {
	chomp;
	@F = split /\t/, $_, -1;

	@slice = @F[@fields];
	$slice = join "\t", @slice;

	for (@rsf) { splice @F, $_, 1 }

	for (@F) {
		print $slice, "\t", $_, "\n";
	}
	print "\n" if $separate;
}
